3.4 KiB
Dekódování GPS dat - Wio Terminal
V této části lekce budete dekódovat zprávy NMEA přečtené ze senzoru GPS pomocí Wio Terminalu a extrahovat zeměpisnou šířku a délku.
Dekódování GPS dat
Jakmile jsou surová data NMEA přečtena ze sériového portu, mohou být dekódována pomocí open source knihovny NMEA.
Úkol - dekódování GPS dat
Naprogramujte zařízení tak, aby dekódovalo GPS data.
-
Otevřete projekt aplikace
gps-sensor
, pokud již není otevřený. -
Přidejte závislost na knihovnu TinyGPSPlus do souboru
platformio.ini
projektu. Tato knihovna obsahuje kód pro dekódování dat NMEA.lib_deps = mikalhart/TinyGPSPlus @ 1.0.2
-
V souboru
main.cpp
přidejte direktivu pro zahrnutí knihovny TinyGPSPlus:#include <TinyGPS++.h>
-
Pod deklarací
Serial3
deklarujte objekt TinyGPSPlus pro zpracování vět NMEA:TinyGPSPlus gps;
-
Změňte obsah funkce
printGPSData
na následující: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"); } }
Tento kód čte další znak ze sériového portu UART do dekodéru NMEA
gps
. Po každém znaku zkontroluje, zda dekodér přečetl platnou větu, a poté ověří, zda přečetl platnou polohu. Pokud je poloha platná, odešle ji do sériového monitoru spolu s počtem satelitů, které přispěly k této fixaci. -
Sestavte a nahrajte kód do Wio Terminalu.
-
Po nahrání můžete sledovat data GPS polohy pomocí sériového monitoru.
> 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
💁 Tento kód najdete ve složce code-gps-decode/wio-terminal.
😀 Váš program pro senzor GPS s dekódováním dat byl úspěšný!
Prohlášení:
Tento dokument byl přeložen pomocí služby pro automatický překlad Co-op Translator. Ačkoli se snažíme o přesnost, mějte prosím na paměti, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro důležité informace doporučujeme profesionální lidský překlad. Neodpovídáme za žádná nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.