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

3.3 KiB

Avkoda GPS-data - Virtuell IoT-hårdvara och Raspberry Pi

I den här delen av lektionen kommer du att avkoda NMEA-meddelanden som lästs från GPS-sensorn av Raspberry Pi eller Virtuell IoT-enhet, och extrahera latitud och longitud.

Avkoda GPS-data

När rå NMEA-data har lästs från seriella porten kan den avkodas med hjälp av ett öppet källkods-bibliotek för NMEA.

Uppgift - avkoda GPS-data

Programmera enheten för att avkoda GPS-data.

  1. Öppna projektet gps-sensor-appen om det inte redan är öppet.

  2. Installera pynmea2 Pip-paketet. Detta paket innehåller kod för att avkoda NMEA-meddelanden.

    pip3 install pynmea2
    
  3. Lägg till följande kod i importerna i filen app.py för att importera modulen pynmea2:

    import pynmea2
    
  4. Ersätt innehållet i funktionen print_gps_data med följande:

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

    Den här koden använder biblioteket pynmea2 för att analysera raden som lästs från UART-seriella porten.

    Om meddelandets sats-typ är GGA, är detta ett positionsfixeringsmeddelande och bearbetas. Latitud- och longitudvärdena läses från meddelandet och konverteras till decimalgrader från NMEA-formatet (d)ddmm.mmmm. Funktionen dm_to_sd utför denna konvertering.

    Latitudens riktning kontrolleras sedan, och om latituden är söderut konverteras värdet till ett negativt tal. Samma sak gäller för longituden; om den är västerut konverteras den till ett negativt tal.

    Slutligen skrivs koordinaterna ut till konsolen, tillsammans med antalet satelliter som används för att få positionen.

  5. Kör koden. Om du använder en virtuell IoT-enhet, se till att CounterFit-appen körs och att GPS-data skickas.

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

💁 Du kan hitta denna kod i mappen code-gps-decode/virtual-device, eller mappen code-gps-decode/pi.

😀 Ditt GPS-sensorprogram med dataavkodning blev en framgång!


Ansvarsfriskrivning:
Detta dokument har översatts med hjälp av AI-översättningstjänsten Co-op Translator. Även om vi strävar efter noggrannhet, bör det noteras att automatiska översättningar kan innehålla fel eller felaktigheter. Det ursprungliga dokumentet på dess originalspråk bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för eventuella missförstånd eller feltolkningar som uppstår vid användning av denna översättning.