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

3.2 KiB

Dekodiranje GPS podataka - Virtualni IoT hardver i Raspberry Pi

U ovom dijelu lekcije dekodirat ćete NMEA poruke koje čita GPS senzor putem Raspberry Pi uređaja ili Virtualnog IoT uređaja te izvući geografske širine i dužine.

Dekodiranje GPS podataka

Nakon što se sirovi NMEA podaci pročitaju s serijskog porta, mogu se dekodirati pomoću otvorene NMEA biblioteke.

Zadatak - dekodiranje GPS podataka

Programirajte uređaj za dekodiranje GPS podataka.

  1. Otvorite projekt aplikacije gps-sensor ako već nije otvoren.

  2. Instalirajte Pip paket pynmea2. Ovaj paket sadrži kod za dekodiranje NMEA poruka.

    pip3 install pynmea2
    
  3. Dodajte sljedeći kod u uvoze u datoteci app.py kako biste uvezli modul pynmea2:

    import pynmea2
    
  4. Zamijenite sadržaj funkcije print_gps_data sljedećim:

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

    Ovaj kod koristi biblioteku pynmea2 za parsiranje linije pročitane s UART serijskog porta.

    Ako je tip rečenice poruke GGA, tada je to poruka o poziciji i obrađuje se. Vrijednosti geografske širine i dužine čitaju se iz poruke i pretvaraju u decimalne stupnjeve iz NMEA formata (d)ddmm.mmmm. Funkcija dm_to_sd obavlja ovu konverziju.

    Zatim se provjerava smjer geografske širine, i ako je širina južna, vrijednost se pretvara u negativan broj. Isto vrijedi i za geografsku dužinu, ako je zapadna, pretvara se u negativan broj.

    Na kraju se koordinate ispisuju na konzolu, zajedno s brojem satelita korištenih za određivanje lokacije.

  5. Pokrenite kod. Ako koristite virtualni IoT uređaj, provjerite je li aplikacija CounterFit pokrenuta i šalje li GPS podatke.

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

💁 Ovaj kod možete pronaći u mapi code-gps-decode/virtual-device ili u mapi code-gps-decode/pi.

😀 Vaš program za GPS senzor s dekodiranjem podataka bio je uspješan!


Odricanje od odgovornosti:
Ovaj dokument je preveden pomoću AI usluge za prevođenje Co-op Translator. Iako nastojimo osigurati točnost, imajte na umu da automatski prijevodi mogu sadržavati pogreške ili netočnosti. Izvorni dokument na izvornom jeziku treba smatrati autoritativnim izvorom. Za ključne informacije preporučuje se profesionalni prijevod od strane čovjeka. Ne preuzimamo odgovornost za nesporazume ili pogrešna tumačenja koja mogu proizaći iz korištenja ovog prijevoda.