5.0 KiB
Розшифровка GPS-даних - Віртуальне IoT обладнання та Raspberry Pi
У цій частині уроку ви розшифруєте повідомлення NMEA, отримані з GPS-сенсора за допомогою Raspberry Pi або Віртуального IoT-пристрою, і витягнете широту та довготу.
Розшифровка GPS-даних
Після того, як необроблені дані NMEA були зчитані з послідовного порту, їх можна розшифрувати за допомогою бібліотеки NMEA з відкритим кодом.
Завдання - розшифрувати GPS-дані
Програмуйте пристрій для розшифровки GPS-даних.
-
Відкрийте проєкт додатка
gps-sensor
, якщо він ще не відкритий. -
Встановіть пакет Pip
pynmea2
. Цей пакет містить код для розшифровки повідомлень NMEA.pip3 install pynmea2
-
Додайте наступний код до імпортів у файлі
app.py
, щоб імпортувати модульpynmea2
:import pynmea2
-
Замініть вміст функції
print_gps_data
наступним кодом:msg = pynmea2.parse(line) if msg.sentence_type == 'GGA': lat = pynmea2.dm_to_sd(msg.lat) lon = pynmea2.dm_to_sd(msg.lon) if msg.lat_dir == 'S': lat = lat * -1 if msg.lon_dir == 'W': lon = lon * -1 print(f'{lat},{lon} - from {msg.num_sats} satellites')
Цей код використовує бібліотеку
pynmea2
для аналізу рядка, зчитаного з послідовного порту UART.Якщо тип речення повідомлення - це
GGA
, то це повідомлення про фіксацію позиції, і воно обробляється. Значення широти та довготи зчитуються з повідомлення і конвертуються у десяткові градуси з формату NMEA(d)ddmm.mmmm
. Функціяdm_to_sd
виконує це перетворення.Потім перевіряється напрямок широти, і якщо широта знаходиться на південь, значення перетворюється на від’ємне число. Те ж саме стосується довготи: якщо вона знаходиться на захід, то перетворюється на від’ємне число.
Нарешті, координати виводяться на консоль разом із кількістю супутників, використаних для визначення місцезнаходження.
-
Запустіть код. Якщо ви використовуєте віртуальний IoT-пристрій, переконайтеся, що додаток CounterFit запущений і GPS-дані передаються.
pi@raspberrypi:~/gps-sensor $ python3 app.py 47.6423109,-122.1390293 - from 3 satellites
💁 Ви можете знайти цей код у папці code-gps-decode/virtual-device або code-gps-decode/pi.
😀 Ваш додаток для GPS-сенсора з розшифровкою даних успішно працює!
Відмова від відповідальності:
Цей документ був перекладений за допомогою сервісу автоматичного перекладу Co-op Translator. Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ на його рідній мові слід вважати авторитетним джерелом. Для критичної інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникають у результаті використання цього перекладу.