PyNMEA2: Procesamiento de Datos NMEA con Python
NMEA es un protocolo de comunicación utilizado para intercambiar datos entre dispositivos marinos. Los datos NMEA se transmiten en formato ASCII y pueden contener información sobre la posición, el rumbo, la velocidad, la profundidad, el tiempo y otros parámetros.
PyNMEA2 es una biblioteca Python que permite leer y procesar datos NMEA. La biblioteca es fácil de usar y proporciona una amplia gama de funciones para el procesamiento de datos NMEA.
Instalación
Para instalar PyNMEA2, ejecute el siguiente comando:
pip install pynmea2
Lectura de datos NMEA
Para leer datos NMEA, use la función parse_sentence()
de la biblioteca PyNMEA2. La función parse_sentence()
toma una cadena de texto como entrada y devuelve un objeto NMEASentence
. El objeto NMEASentence
contiene información sobre la frase NMEA, como el tipo de frase, la longitud de la frase y los valores de los parámetros.
import pynmea2
# Lee una frase NMEA del puerto serie
ser = serial.Serial('/dev/ttyUSB0', 9600)
sentence = ser.readline().decode('ascii')
# Parsea la frase NMEA
nmea_sentence = pynmea2.parse_sentence(sentence)
# Imprime la información de la frase NMEA
print(nmea_sentence)
Procesamiento de datos NMEA
La biblioteca PyNMEA2 proporciona una amplia gama de funciones para el procesamiento de datos NMEA. Estas funciones pueden utilizarse para extraer valores de parámetros, calcular valores derivados y realizar otras operaciones de procesamiento.
Por ejemplo, la función get_gga_position()
de la biblioteca PyNMEA2 puede utilizarse para extraer la posición del GPS de una frase NMEA GGA.
import pynmea2
# Lee una frase NMEA del puerto serie
ser = serial.Serial('/dev/ttyUSB0', 9600)
sentence = ser.readline().decode('ascii')
# Parsea la frase NMEA
nmea_sentence = pynmea2.parse_sentence(sentence)
# Obtiene la posición del GPS
position = nmea_sentence.get_gga_position()
# Imprime la posición del GPS
print(position)
Ejemplo completo
El siguiente ejemplo muestra cómo usar PyNMEA2 para leer y procesar datos NMEA. El ejemplo lee datos NMEA del puerto serie y los imprime en la consola.
import pynmea2
import serial
# Abre el puerto serie
ser = serial.Serial('/dev/ttyUSB0', 9600)
# Bucle infinito
while True:
# Lee una frase NMEA del puerto serie
sentence = ser.readline().decode('ascii')
# Parsea la frase NMEA
nmea_sentence = pynmea2.parse_sentence(sentence)
# Imprime la información de la frase NMEA
print(nmea_sentence)
# Imprime la posición del GPS
if nmea_sentence.type == 'GGA':
position = nmea_sentence.get_gga_position()
print(position)
# Cierra el puerto serie
ser.close()
Conclusiones
PyNMEA2 es una biblioteca Python potente y fácil de usar que permite leer y procesar datos NMEA. La biblioteca proporciona una amplia gama de funciones para el procesamiento de datos NMEA, lo que la hace ideal para una variedad de aplicaciones.