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

3.4 KiB

Dekoduokite GPS duomenis - Virtuali IoT įranga ir Raspberry Pi

Šioje pamokos dalyje jūs dekoduosite NMEA pranešimus, kuriuos iš GPS jutiklio perskaito Raspberry Pi arba virtualus IoT įrenginys, ir ištrauksite platumos bei ilgumos koordinates.

Dekoduokite GPS duomenis

Kai neapdoroti NMEA duomenys yra perskaitomi iš nuosekliojo prievado, juos galima dekoduoti naudojant atvirojo kodo NMEA biblioteką.

Užduotis - dekoduokite GPS duomenis

Užprogramuokite įrenginį, kad jis dekoduotų GPS duomenis.

  1. Atidarykite gps-sensor programėlės projektą, jei jis dar neatidarytas.

  2. Įdiekite pynmea2 Pip paketą. Šis paketas turi kodą, skirtą NMEA pranešimams dekoduoti.

    pip3 install pynmea2
    
  3. Pridėkite šį kodą prie app.py failo importų, kad importuotumėte pynmea2 modulį:

    import pynmea2
    
  4. Pakeiskite print_gps_data funkcijos turinį šiuo kodu:

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

    Šis kodas naudos pynmea2 biblioteką, kad išanalizuotų eilutę, perskaitytą iš UART nuosekliojo prievado.

    Jei pranešimo sakinio tipas yra GGA, tai yra pozicijos nustatymo pranešimas, kuris bus apdorotas. Platumos ir ilgumos reikšmės yra perskaitomos iš pranešimo ir konvertuojamos į dešimtainius laipsnius iš NMEA (d)ddmm.mmmm formato. Funkcija dm_to_sd atlieka šį konvertavimą.

    Tada patikrinama platumos kryptis, ir jei platuma yra pietų pusrutulyje, reikšmė konvertuojama į neigiamą skaičių. Tas pats taikoma ilgumai jei ji yra vakarų pusrutulyje, ji taip pat konvertuojama į neigiamą skaičių.

    Galiausiai koordinatės yra atspausdinamos konsolėje kartu su palydovų, naudotų vietos nustatymui, skaičiumi.

  5. Paleiskite kodą. Jei naudojate virtualų IoT įrenginį, įsitikinkite, kad CounterFit programėlė veikia ir GPS duomenys yra siunčiami.

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

💁 Šį kodą galite rasti code-gps-decode/virtual-device aplanke arba code-gps-decode/pi aplanke.

😀 Jūsų GPS jutiklio programa su duomenų dekodavimu buvo sėkminga!


Atsakomybės apribojimas:
Šis dokumentas buvo išverstas naudojant AI vertimo paslaugą Co-op Translator. Nors siekiame tikslumo, prašome atkreipti dėmesį, kad automatiniai vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas jo gimtąja kalba turėtų būti laikomas autoritetingu šaltiniu. Kritinei informacijai rekomenduojama naudoti profesionalų žmogaus vertimą. Mes neprisiimame atsakomybės už nesusipratimus ar klaidingus interpretavimus, atsiradusius dėl šio vertimo naudojimo.