3.5 KiB
Decodificar datos GPS - Hardware IoT Virtual y Raspberry Pi
En esta parte de la lección, decodificarás los mensajes NMEA leídos del sensor GPS por la Raspberry Pi o el Dispositivo IoT Virtual, y extraerás la latitud y la longitud.
Decodificar datos GPS
Una vez que los datos NMEA en bruto se han leído desde el puerto serial, pueden ser decodificados utilizando una biblioteca NMEA de código abierto.
Tarea - decodificar datos GPS
Programa el dispositivo para decodificar los datos GPS.
-
Abre el proyecto de la aplicación
gps-sensorsi aún no está abierto. -
Instala el paquete Pip
pynmea2. Este paquete contiene código para decodificar mensajes NMEA.pip3 install pynmea2 -
Agrega el siguiente código a las importaciones en el archivo
app.pypara importar el módulopynmea2:import pynmea2 -
Reemplaza el contenido de la función
print_gps_datacon lo siguiente: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')Este código utilizará la biblioteca
pynmea2para analizar la línea leída desde el puerto serial UART.Si el tipo de sentencia del mensaje es
GGA, entonces este es un mensaje de fijación de posición y se procesa. Los valores de latitud y longitud se leen del mensaje y se convierten a grados decimales desde el formato NMEA(d)ddmm.mmmm. La funcióndm_to_sdrealiza esta conversión.Luego se verifica la dirección de la latitud, y si la latitud es sur, el valor se convierte en un número negativo. Lo mismo ocurre con la longitud; si es oeste, se convierte en un número negativo.
Finalmente, las coordenadas se imprimen en la consola, junto con el número de satélites utilizados para obtener la ubicación.
-
Ejecuta el código. Si estás utilizando un dispositivo IoT virtual, asegúrate de que la aplicación CounterFit esté ejecutándose y que los datos GPS se estén enviando.
pi@raspberrypi:~/gps-sensor $ python3 app.py 47.6423109,-122.1390293 - from 3 satellites
💁 Puedes encontrar este código en la carpeta code-gps-decode/virtual-device, o en la carpeta code-gps-decode/pi.
😀 ¡Tu programa del sensor GPS con decodificación de datos fue un éxito!
Descargo de responsabilidad:
Este documento ha sido traducido utilizando el servicio de traducción automática Co-op Translator. Si bien nos esforzamos por lograr precisión, tenga en cuenta que las traducciones automáticas pueden contener errores o imprecisiones. El documento original en su idioma nativo debe considerarse como la fuente autorizada. Para información crítica, se recomienda una traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas que puedan surgir del uso de esta traducción.