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/cs/3-transport/lessons/1-location-tracking/single-board-computer-gps-d...

3.4 KiB

Dekódování GPS dat - Virtuální IoT zařízení a Raspberry Pi

V této části lekce budete dekódovat NMEA zprávy přečtené ze senzoru GPS pomocí Raspberry Pi nebo Virtuálního IoT zařízení a extrahovat zeměpisnou šířku a délku.

Dekódování GPS dat

Jakmile jsou surová NMEA data 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.

  1. Otevřete projekt aplikace gps-sensor, pokud již není otevřený.

  2. Nainstalujte balíček pynmea2 pomocí Pip. Tento balíček obsahuje kód pro dekódování NMEA zpráv.

    pip3 install pynmea2
    
  3. Přidejte následující kód do importů v souboru app.py, abyste importovali modul pynmea2:

    import pynmea2
    
  4. Nahraďte obsah funkce print_gps_data následujícím:

    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')
    

    Tento kód použije knihovnu pynmea2 k analýze řádku přečteného ze sériového portu UART.

    Pokud je typ věty zprávy GGA, jedná se o zprávu o určení polohy, která je zpracována. Hodnoty zeměpisné šířky a délky jsou přečteny ze zprávy a převedeny na desetinné stupně z formátu NMEA (d)ddmm.mmmm. Funkce dm_to_sd provádí tento převod.

    Poté je zkontrolován směr zeměpisné šířky, a pokud je šířka jižní, hodnota je převedena na záporné číslo. Stejně tak u zeměpisné délky, pokud je západní, je převedena na záporné číslo.

    Nakonec jsou souřadnice vytištěny na konzoli spolu s počtem satelitů použitých k určení polohy.

  5. Spusťte kód. Pokud používáte virtuální IoT zařízení, ujistěte se, že aplikace CounterFit běží a GPS data jsou odesílána.

    pi@raspberrypi:~/gps-sensor $ python3 app.py 
    47.6423109,-122.1390293 - from 3 satellites
    

💁 Tento kód najdete ve složce code-gps-decode/virtual-device nebo ve složce code-gps-decode/pi.

😀 Vaše programování senzoru GPS s dekódováním dat bylo ú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 závazný 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.