3.4 KiB
Dekodiranje GPS podatkov - Wio Terminal
V tem delu lekcije boste dekodirali NMEA sporočila, ki jih prebere GPS senzor na Wio Terminalu, in iz njih pridobili zemljepisno širino ter dolžino.
Dekodiranje GPS podatkov
Ko so surovi NMEA podatki prebrani iz serijskega porta, jih je mogoče dekodirati z uporabo odprtokodne NMEA knjižnice.
Naloga - dekodiranje GPS podatkov
Programirajte napravo za dekodiranje GPS podatkov.
-
Odprite projekt aplikacije
gps-sensor
, če še ni odprt. -
Dodajte knjižnično odvisnost za knjižnico TinyGPSPlus v datoteko
platformio.ini
projekta. Ta knjižnica vsebuje kodo za dekodiranje NMEA podatkov.lib_deps = mikalhart/TinyGPSPlus @ 1.0.2
-
V datoteki
main.cpp
dodajte direktivo za vključitev knjižnice TinyGPSPlus:#include <TinyGPS++.h>
-
Pod deklaracijo
Serial3
deklarirajte objekt TinyGPSPlus za obdelavo NMEA stavkov:TinyGPSPlus gps;
-
Spremenite vsebino funkcije
printGPSData
v naslednje: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"); } }
Ta koda prebere naslednji znak iz serijskega porta UART v NMEA dekoder
gps
. Po vsakem znaku preveri, ali je dekoder prebral veljaven stavek, nato pa preveri, ali je prebral veljavno lokacijo. Če je lokacija veljavna, jo pošlje na serijski monitor skupaj s številom satelitov, ki so prispevali k tej rešitvi. -
Sestavite in naložite kodo na Wio Terminal.
-
Ko je koda naložena, lahko spremljate podatke o GPS lokaciji z uporabo serijskega monitorja.
> 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
💁 To kodo lahko najdete v mapi code-gps-decode/wio-terminal.
😀 Vaš program za GPS senzor z dekodiranjem podatkov je bil uspešen!
Omejitev odgovornosti:
Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco Co-op Translator. Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki bi nastale zaradi uporabe tega prevoda.