You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/hu/3-transport/lessons/1-location-tracking/single-board-computer-gps-d...

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.

  1. Nyisd meg a gps-sensor alkalmazás projektet, ha még nincs megnyitva.

  2. 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
    
  3. Add hozzá a következő kódot az app.py fájl importjaihoz, hogy importáld a pynmea2 modult:

    import pynmea2
    
  4. 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 a dm_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.

  5. 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.