You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/bg/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md

8.9 KiB

Четене на GPS данни - Wio Terminal

В тази част от урока ще добавите GPS сензор към вашия Wio Terminal и ще четете стойности от него.

Хардуер

Wio Terminal се нуждае от GPS сензор.

Сензорът, който ще използвате, е Grove GPS Air530 сензор. Този сензор може да се свърже с множество GPS системи за бързо и точно позициониране. Сензорът се състои от две части - основната електроника на сензора и външна антена, свързана с тънък кабел, която улавя радиовълните от сателитите.

Това е UART сензор, който изпраща GPS данни през UART.

Свързване на GPS сензора

Grove GPS сензорът може да бъде свързан към Wio Terminal.

Задача - свържете GPS сензора

Свържете GPS сензора.

Grove GPS сензор

  1. Поставете единия край на Grove кабела в гнездото на GPS сензора. Той ще влезе само в една посока.

  2. С изключен Wio Terminal от вашия компютър или друг източник на захранване, свържете другия край на Grove кабела към лявото гнездо на Wio Terminal, когато гледате екрана. Това е гнездото, което е най-близо до бутона за захранване.

    Grove GPS сензор, свързан към лявото гнездо

  3. Позиционирайте GPS сензора така, че прикрепената антена да има видимост към небето - най-добре до отворен прозорец или навън. По-лесно е да получите ясен сигнал, когато няма препятствия пред антената.

  4. Сега можете да свържете Wio Terminal към вашия компютър.

  5. GPS сензорът има 2 светодиода - син светодиод, който мига, когато се предават данни, и зелен светодиод, който мига всяка секунда, когато получава данни от сателити. Уверете се, че синият светодиод мига, когато включите Wio Terminal. След няколко минути зеленият светодиод ще започне да мига - ако не, може да се наложи да пренаредите антената.

Програмиране на GPS сензора

Сега Wio Terminal може да бъде програмиран за използване на свързания GPS сензор.

Задача - програмирайте GPS сензора

Програмирайте устройството.

  1. Създайте нов проект за Wio Terminal, използвайки PlatformIO. Наречете този проект gps-sensor. Добавете код във функцията setup, за да конфигурирате серийния порт.

  2. Добавете следната директива за включване в началото на файла main.cpp. Това включва заглавен файл с функции за конфигуриране на лявото Grove гнездо за UART.

    #include <wiring_private.h>
    
  3. Под това добавете следния ред код, за да декларирате серийна връзка към UART порта:

    static Uart Serial3(&sercom3, PIN_WIRE_SCL, PIN_WIRE_SDA, SERCOM_RX_PAD_1, UART_TX_PAD_0);
    
  4. Трябва да добавите код за пренасочване на някои вътрешни обработчици на сигнали към този сериен порт. Добавете следния код под декларацията на Serial3:

    void SERCOM3_0_Handler()
    {
        Serial3.IrqHandler();
    }
    
    void SERCOM3_1_Handler()
    {
        Serial3.IrqHandler();
    }
    
    void SERCOM3_2_Handler()
    {
        Serial3.IrqHandler();
    }
    
    void SERCOM3_3_Handler()
    {
        Serial3.IrqHandler();
    }
    
  5. Във функцията setup, под мястото, където се конфигурира серийният порт Serial, конфигурирайте UART серийния порт със следния код:

    Serial3.begin(9600);
    
    while (!Serial3)
        ; // Wait for Serial3 to be ready
    
    delay(1000);
    
  6. Под този код във функцията setup добавете следния код, за да свържете Grove пина към серийния порт:

    pinPeripheral(PIN_WIRE_SCL, PIO_SERCOM_ALT);
    
  7. Добавете следната функция преди функцията loop, за да изпращате GPS данните към серийния монитор:

    void printGPSData()
    {
        Serial.println(Serial3.readStringUntil('\n'));
    }
    
  8. Във функцията loop добавете следния код, за да четете от UART серийния порт и да отпечатвате изхода на серийния монитор:

    while (Serial3.available() > 0)
    {
        printGPSData();
    }
    
    delay(1000);
    

    Този код чете от UART серийния порт. Функцията readStringUntil чете до символ за край, в този случай нов ред. Това ще прочете цял NMEA ред (NMEA редовете завършват с нов ред). Докато има данни за четене от UART серийния порт, те се четат и изпращат към серийния монитор чрез функцията printGPSData. Когато няма повече данни за четене, loop изчаква 1 секунда (1,000ms).

  9. Компилирайте и качете кода на Wio Terminal.

  10. След като качите, можете да наблюдавате GPS данните чрез серийния монитор.

    > Executing task: platformio device monitor <
    
    --- Available filters and text transformations: colorize, debug, default, direct, hexlify, log2file, nocontrol, printable, send_on_enter, time
    --- More details at http://bit.ly/pio-monitor-filters
    --- Miniterm on /dev/cu.usbmodem1201  9600,8,N,1 ---
    --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
    $GNGGA,020604.001,4738.538654,N,12208.341758,W,1,3,,164.7,M,-17.1,M,,*67
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E
    $BDGSA,A,1,,,,,,,,,,,,,,,*0F
    $GPGSV,1,1,00*79
    $BDGSV,1,1,00*68
    

💁 Можете да намерите този код в папката code-gps/wio-terminal.

😀 Вашата програма за GPS сензора беше успешна!


Отказ от отговорност:
Този документ е преведен с помощта на AI услуга за превод Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматичните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия изходен език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален превод от човек. Ние не носим отговорност за каквито и да е недоразумения или погрешни интерпретации, произтичащи от използването на този превод.