3.5 KiB
Decodifica dei dati GPS - Hardware IoT Virtuale e Raspberry Pi
In questa parte della lezione, decodificherai i messaggi NMEA letti dal sensore GPS tramite il Raspberry Pi o il Dispositivo IoT Virtuale, ed estrarrai latitudine e longitudine.
Decodifica dei dati GPS
Una volta letti i dati NMEA grezzi dalla porta seriale, possono essere decodificati utilizzando una libreria NMEA open source.
Attività - decodifica dei dati GPS
Programma il dispositivo per decodificare i dati GPS.
-
Apri il progetto dell'app
gps-sensor
se non è già aperto. -
Installa il pacchetto Pip
pynmea2
. Questo pacchetto contiene il codice per decodificare i messaggi NMEA.pip3 install pynmea2
-
Aggiungi il seguente codice alle importazioni nel file
app.py
per importare il modulopynmea2
:import pynmea2
-
Sostituisci il contenuto della funzione
print_gps_data
con il seguente: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')
Questo codice utilizzerà la libreria
pynmea2
per analizzare la riga letta dalla porta seriale UART.Se il tipo di frase del messaggio è
GGA
, allora si tratta di un messaggio di fissaggio della posizione, che viene elaborato. I valori di latitudine e longitudine vengono letti dal messaggio e convertiti in gradi decimali dal formato NMEA(d)ddmm.mmmm
. La funzionedm_to_sd
esegue questa conversione.Viene quindi controllata la direzione della latitudine e, se la latitudine è a sud, il valore viene convertito in un numero negativo. Lo stesso vale per la longitudine: se è a ovest, viene convertita in un numero negativo.
Infine, le coordinate vengono stampate sulla console, insieme al numero di satelliti utilizzati per ottenere la posizione.
-
Esegui il codice. Se stai utilizzando un dispositivo IoT virtuale, assicurati che l'app CounterFit sia in esecuzione e che i dati GPS vengano inviati.
pi@raspberrypi:~/gps-sensor $ python3 app.py 47.6423109,-122.1390293 - from 3 satellites
💁 Puoi trovare questo codice nella cartella code-gps-decode/virtual-device o nella cartella code-gps-decode/pi.
😀 Il tuo programma per il sensore GPS con decodifica dei dati è stato un successo!
Disclaimer (Avvertenza):
Questo documento è stato tradotto utilizzando il servizio di traduzione automatica Co-op Translator. Sebbene ci impegniamo per garantire l'accuratezza, si prega di tenere presente che le traduzioni automatiche possono contenere errori o imprecisioni. Il documento originale nella sua lingua nativa dovrebbe essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda una traduzione professionale effettuata da un traduttore umano. Non siamo responsabili per eventuali incomprensioni o interpretazioni errate derivanti dall'uso di questa traduzione.