4.9 KiB
Декодиране на GPS данни - Wio Terminal
В тази част на урока ще декодирате NMEA съобщенията, прочетени от GPS сензора на Wio Terminal, и ще извлечете географската ширина и дължина.
Декодиране на GPS данни
След като суровите NMEA данни бъдат прочетени от серийния порт, те могат да бъдат декодирани с помощта на библиотека с отворен код за NMEA.
Задача - декодиране на GPS данни
Програмирайте устройството да декодира GPS данните.
-
Отворете проекта на приложението
gps-sensor
, ако вече не е отворен. -
Добавете зависимост към библиотеката TinyGPSPlus в
platformio.ini
файла на проекта. Тази библиотека съдържа код за декодиране на NMEA данни.lib_deps = mikalhart/TinyGPSPlus @ 1.0.2
-
В
main.cpp
добавете директива за включване на библиотеката TinyGPSPlus:#include <TinyGPS++.h>
-
Под декларацията на
Serial3
декларирайте обект TinyGPSPlus за обработка на NMEA съобщенията:TinyGPSPlus gps;
-
Променете съдържанието на функцията
printGPSData
със следното:if (gps.encode(Serial3.read())) { if (gps.location.isValid()) { Serial.print(gps.location.lat(), 6); Serial.print(F(",")); Serial.print(gps.location.lng(), 6); Serial.print(" - from "); Serial.print(gps.satellites.value()); Serial.println(" satellites"); } }
Този код чете следващия символ от серийния порт на UART в декодера
gps
за NMEA. След всеки символ проверява дали декодерът е прочел валидно съобщение, след което проверява дали е прочел валидно местоположение. Ако местоположението е валидно, то се изпраща към серийния монитор заедно с броя на сателитите, които са допринесли за това определяне. -
Компилирайте и качете кода на Wio Terminal.
-
След като качите, можете да наблюдавате данните за 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 --- 47.6423109,-122.1390293 - from 3 satellites
💁 Можете да намерите този код в папката code-gps-decode/wio-terminal.
😀 Вашата програма за GPS сензора с декодиране на данни беше успешна!
Отказ от отговорност:
Този документ е преведен с помощта на AI услуга за превод Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматичните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия изходен език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален превод от човек. Ние не носим отговорност за каквито и да е недоразумения или погрешни интерпретации, произтичащи от използването на този превод.