3.5 KiB
Dekoduokite GPS duomenis - Wio Terminal
Šioje pamokos dalyje jūs dekoduosite NMEA pranešimus, gautus iš GPS jutiklio naudojant Wio Terminal, ir ištrauksite platumos bei ilgumos koordinates.
GPS duomenų dekodavimas
Kai neapdoroti NMEA duomenys yra nuskaityti iš nuosekliojo prievado, juos galima dekoduoti naudojant atvirojo kodo NMEA biblioteką.
Užduotis - dekoduoti GPS duomenis
Užprogramuokite įrenginį, kad jis galėtų dekoduoti GPS duomenis.
-
Atidarykite
gps-sensor
programos projektą, jei jis dar neatidarytas. -
Pridėkite bibliotekos priklausomybę TinyGPSPlus bibliotekai į projekto
platformio.ini
failą. Ši biblioteka turi kodą, skirtą NMEA duomenų dekodavimui.lib_deps = mikalhart/TinyGPSPlus @ 1.0.2
-
Faile
main.cpp
pridėkiteinclude
direktyvą TinyGPSPlus bibliotekai:#include <TinyGPS++.h>
-
Po
Serial3
deklaracijos, deklaruokite TinyGPSPlus objektą, skirtą NMEA sakinių apdorojimui:TinyGPSPlus gps;
-
Pakeiskite
printGPSData
funkcijos turinį į šį: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"); } }
Šis kodas nuskaito kitą simbolį iš UART nuosekliojo prievado į
gps
NMEA dekoderį. Po kiekvieno simbolio jis patikrina, ar dekoderis perskaitė galiojantį sakinį, tada patikrina, ar buvo perskaityta galiojanti vieta. Jei vieta yra galiojanti, ji siunčiama į nuoseklųjį monitorių kartu su palydovų, kurie prisidėjo prie šio fiksavimo, skaičiumi. -
Sukurkite ir įkelkite kodą į Wio Terminal.
-
Kai kodas bus įkeltas, galite stebėti GPS vietos duomenis naudodami nuoseklųjį monitorių.
> 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
💁 Šį kodą galite rasti code-gps-decode/wio-terminal aplanke.
😀 Jūsų GPS jutiklio programa su duomenų dekodavimu buvo sėkminga!
Atsakomybės apribojimas:
Šis dokumentas buvo išverstas naudojant AI vertimo paslaugą Co-op Translator. Nors siekiame tikslumo, prašome atkreipti dėmesį, kad automatiniai vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas jo gimtąja kalba turėtų būti laikomas autoritetingu šaltiniu. Dėl svarbios informacijos rekomenduojama profesionali žmogaus vertimo paslauga. Mes neprisiimame atsakomybės už nesusipratimus ar klaidingus interpretavimus, atsiradusius naudojant šį vertimą.