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/uk/3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md

9.3 KiB

Зчитування даних GPS - Wio Terminal

У цій частині уроку ви додасте GPS-сенсор до вашого Wio Terminal і зчитуватимете з нього дані.

Апаратне забезпечення

Для Wio Terminal потрібен GPS-сенсор.

Сенсор, який ви використовуватимете, це Grove GPS Air530 sensor. Цей сенсор може підключатися до кількох GPS-систем для швидкого та точного визначення місця розташування. Сенсор складається з двох частин: основної електроніки сенсора та зовнішньої антени, яка підключається тонким дротом для прийому радіохвиль від супутників.

Це UART-сенсор, тому він передає GPS-дані через UART.

Підключення GPS-сенсора

Сенсор Grove GPS можна підключити до Wio Terminal.

Завдання - підключення GPS-сенсора

Підключіть GPS-сенсор.

Сенсор Grove GPS

  1. Вставте один кінець кабелю Grove у роз'єм на GPS-сенсорі. Він вставляється лише в одному напрямку.

  2. Вимкнувши Wio Terminal від комп’ютера або іншого джерела живлення, підключіть інший кінець кабелю Grove до лівого роз'єму 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,000 мс).

  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-сенсора пройшло успішно!


Відмова від відповідальності:
Цей документ було перекладено за допомогою сервісу автоматичного перекладу Co-op Translator. Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ на його рідній мові слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу.