3.5 KiB
GPS-adatok dekódolása - Virtuális IoT Hardver és Raspberry Pi
Ebben a leckében az NMEA üzeneteket fogod dekódolni, amelyeket a GPS-érzékelő olvas be a Raspberry Pi vagy a Virtuális IoT Eszköz segítségével, és kinyered a szélességi és hosszúsági adatokat.
GPS-adatok dekódolása
Miután a nyers NMEA adatokat beolvastad a soros portból, egy nyílt forráskódú NMEA könyvtár segítségével dekódolhatod azokat.
Feladat - GPS-adatok dekódolása
Programozd be az eszközt, hogy dekódolja a GPS-adatokat.
-
Nyisd meg a
gps-sensor
alkalmazás projektet, ha még nincs megnyitva. -
Telepítsd a
pynmea2
Pip csomagot. Ez a csomag tartalmazza az NMEA üzenetek dekódolásához szükséges kódot.pip3 install pynmea2
-
Add hozzá a következő kódot az
app.py
fájl importjaihoz, hogy importáld apynmea2
modult:import pynmea2
-
Cseréld le a
print_gps_data
függvény tartalmát a következőre: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')
Ez a kód a
pynmea2
könyvtárat használja az UART soros portból beolvasott sor elemzésére.Ha az üzenet mondattípusa
GGA
, akkor ez egy pozíciófix üzenet, amelyet feldolgozunk. Az üzenetből kiolvassuk a szélességi és hosszúsági értékeket, és átalakítjuk azokat tizedes fokokra az NMEA(d)ddmm.mmmm
formátumából. Ezt az átalakítást adm_to_sd
függvény végzi el.Ezután ellenőrizzük a szélesség irányát, és ha a szélesség déli, akkor az értéket negatív számra alakítjuk. Ugyanez történik a hosszúsággal is: ha nyugati, akkor negatív számra konvertáljuk.
Végül a koordinátákat kiírjuk a konzolra, valamint a helymeghatározáshoz használt műholdak számát is.
-
Futtasd a kódot. Ha virtuális IoT eszközt használsz, győződj meg róla, hogy a CounterFit alkalmazás fut, és a GPS-adatok küldése aktív.
pi@raspberrypi:~/gps-sensor $ python3 app.py 47.6423109,-122.1390293 - from 3 satellites
💁 Ezt a kódot megtalálod a code-gps-decode/virtual-device mappában, vagy a code-gps-decode/pi mappában.
😀 A GPS-érzékelő programod az adatok dekódolásával sikeresen működött!
Felelősség kizárása:
Ez a dokumentum az AI fordítási szolgáltatás, a Co-op Translator segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Fontos információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.