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

3.5 KiB

Dekodowanie danych GPS - Wirtualny sprzęt IoT i Raspberry Pi

W tej części lekcji będziesz dekodować wiadomości NMEA odczytane z czujnika GPS przez Raspberry Pi lub Wirtualne Urządzenie IoT, aby wyodrębnić szerokość i długość geograficzną.

Dekodowanie danych GPS

Po odczytaniu surowych danych NMEA z portu szeregowego można je zdekodować za pomocą biblioteki NMEA typu open source.

Zadanie - dekodowanie danych GPS

Zaprogramuj urządzenie do dekodowania danych GPS.

  1. Otwórz projekt aplikacji gps-sensor, jeśli nie jest jeszcze otwarty.

  2. Zainstaluj pakiet Pip pynmea2. Ten pakiet zawiera kod do dekodowania wiadomości NMEA.

    pip3 install pynmea2
    
  3. Dodaj poniższy kod do sekcji importów w pliku app.py, aby zaimportować moduł pynmea2:

    import pynmea2
    
  4. Zastąp zawartość funkcji print_gps_data następującym kodem:

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

    Ten kod użyje biblioteki pynmea2 do parsowania linii odczytanej z portu szeregowego UART.

    Jeśli typ zdania wiadomości to GGA, oznacza to wiadomość o ustaleniu pozycji, która zostanie przetworzona. Wartości szerokości i długości geograficznej są odczytywane z wiadomości i konwertowane na stopnie dziesiętne z formatu NMEA (d)ddmm.mmmm. Funkcja dm_to_sd wykonuje tę konwersję.

    Następnie sprawdzany jest kierunek szerokości geograficznej, a jeśli szerokość geograficzna jest południowa, wartość zostaje przekształcona na liczbę ujemną. Podobnie w przypadku długości geograficznej, jeśli jest zachodnia, zostaje przekształcona na liczbę ujemną.

    Na koniec współrzędne są drukowane na konsoli, wraz z liczbą satelitów użytych do ustalenia lokalizacji.

  5. Uruchom kod. Jeśli używasz wirtualnego urządzenia IoT, upewnij się, że aplikacja CounterFit działa i dane GPS są wysyłane.

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

💁 Ten kod znajdziesz w folderze code-gps-decode/virtual-device lub code-gps-decode/pi.

😀 Twój program czujnika GPS z dekodowaniem danych zakończył się sukcesem!

Zastrzeżenie:
Ten dokument został przetłumaczony za pomocą usługi tłumaczenia AI Co-op Translator. Chociaż dokładamy wszelkich starań, aby zapewnić poprawność tłumaczenia, prosimy pamiętać, że automatyczne tłumaczenia mogą zawierać błędy lub nieścisłości. Oryginalny dokument w jego rodzimym języku powinien być uznawany za autorytatywne źródło. W przypadku informacji o kluczowym znaczeniu zaleca się skorzystanie z profesjonalnego tłumaczenia przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z użycia tego tłumaczenia.