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

3.6 KiB

GPS-Daten dekodieren - Virtuelle IoT-Hardware und Raspberry Pi

In diesem Teil der Lektion dekodieren Sie die NMEA-Nachrichten, die vom GPS-Sensor über den Raspberry Pi oder das virtuelle IoT-Gerät gelesen wurden, und extrahieren die Breiten- und Längengrade.

GPS-Daten dekodieren

Sobald die rohen NMEA-Daten vom seriellen Port gelesen wurden, können sie mit einer Open-Source-NMEA-Bibliothek dekodiert werden.

Aufgabe - GPS-Daten dekodieren

Programmieren Sie das Gerät so, dass es die GPS-Daten dekodiert.

  1. Öffnen Sie das Projekt der App gps-sensor, falls es noch nicht geöffnet ist.

  2. Installieren Sie das Pip-Paket pynmea2. Dieses Paket enthält Code zum Dekodieren von NMEA-Nachrichten.

    pip3 install pynmea2
    
  3. Fügen Sie den folgenden Code zu den Imports in der Datei app.py hinzu, um das Modul pynmea2 zu importieren:

    import pynmea2
    
  4. Ersetzen Sie den Inhalt der Funktion print_gps_data durch Folgendes:

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

    Dieser Code verwendet die Bibliothek pynmea2, um die Zeile zu analysieren, die vom UART-Serial-Port gelesen wurde.

    Wenn der Nachrichtentyp des Satzes GGA ist, handelt es sich um eine Positionsfixierungsnachricht, die verarbeitet wird. Die Breiten- und Längengradwerte werden aus der Nachricht gelesen und aus dem NMEA-Format (d)ddmm.mmmm in Dezimalgrad umgewandelt. Die Funktion dm_to_sd führt diese Umwandlung durch.

    Anschließend wird die Richtung des Breitengrads überprüft. Wenn der Breitengrad südlich ist, wird der Wert in eine negative Zahl umgewandelt. Dasselbe gilt für den Längengrad: Wenn er westlich ist, wird er ebenfalls in eine negative Zahl umgewandelt.

    Schließlich werden die Koordinaten zusammen mit der Anzahl der Satelliten, die zur Bestimmung der Position verwendet wurden, in der Konsole ausgegeben.

  5. Führen Sie den Code aus. Wenn Sie ein virtuelles IoT-Gerät verwenden, stellen Sie sicher, dass die CounterFit-App läuft und die GPS-Daten gesendet werden.

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

💁 Sie finden diesen Code im Ordner code-gps-decode/virtual-device oder im Ordner code-gps-decode/pi.

😀 Ihr GPS-Sensorprogramm mit Daten-Dekodierung war ein Erfolg!

Haftungsausschluss:
Dieses Dokument wurde mit dem KI-Übersetzungsdienst Co-op Translator übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner ursprünglichen Sprache sollte als maßgebliche Quelle betrachtet werden. Für kritische Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die sich aus der Nutzung dieser Übersetzung ergeben.