Blog

¿Por qué el protocolo MQTT es una buena opción para dispositivos GPS?

La adopción del protocolo MQTT está creciendo cada vez más en la comunicación de dispositivos de rastreo GPS. De hecho, fabricantes líderes como TOPFlytech, DCT, Squarell Technology, Globalmatix, Xirgo Global y Teltonika, ya ofrecen dispositivos compatibles con MQTT.

Echemos un vistazo a qué hay detrás de esta tendencia mundial  y cuáles son exactamente las ventajas del protocolo MQTT tiene frente a una comunicación tradicional entre dispositivos GPS y aplicaciones.

¿Por qué MQTT se está volviendo un tema de interés en el sector de la telemática?

Los sistemas de telemática que se componen de dispositivos de rastreo y aplicaciones, se están volviendo cada vez más complejos. Hoy en día estos sistemas pueden incorporar dispositivos GPS, distintos tipos de sensores, controladores CAN-bus, y distintos tipos de software que procesan información independientemente y a los que les brindan soporte distintos equipos de desarrollo.

Los dispositivos IoT también están limitados por la conectividad, la duración de la batería, la potencia de procesamiento y el uso de datos, lo que puede aumentar el valor de la comunicación efectiva entre los componentes de estos sistemas tan complejos.

MQTT_broker_blog_3

Tomemos los servicios de uso compartido de automóviles como ejemplo. Hay una gran cantidad de aspectos que deben tomarse en cuenta: compartir la ubicación del vehículo, acceso remoto, control del vehículo en el sistema de encendido, reabastecimiento de combustible, mantenimiento oportunos, puntuación del conductor, accidentes de tráfico, características antirrobo y más. Estos sistemas requieren procesar una gran cantidad de datos de cientos de sensores en el vehículo y de miles de interacciones de usuarios, mientras también son lo suficientemente escalables para soportar miles de vehículos en múltiples ciudades.

El uso de un protocolo MQTT para sistemas complejos y escalables es ventajoso porque su utilidad para mitigar las limitaciones de comunicación IoT y su casi  compatibilidad universal a través de plataformas como AWS IoT Core, Cloud IoT Core y Azure IoT Hub. Por lo tanto MQTT se ha vuelto bastante común en su uso por desarrolladores de software y fabricantes de hardware.

Veamos a detalle las ventajas de un protocolo MQTT:

  • Publicar y suscribir
  • Calidad del servicio
  • Concordancia
  • Ligero

Patrón publicar y suscribir: una mejor manera de intercambiar porciones útiles de datos

A diferencia del tradicional patrón de mensajería Solicitud/Respuesta (Request/Response) comúnmente utilizados en sistemas de telemática, MQTT utiliza el método Publicar/Suscribir (Publish/Subscribe), que ofrece la posibilidad de transmitir mensajes a múltiples clientes al mismo tiempo.

Los datos de cualquier tipo de dispositivo IoT, pueden ser fácil y rápidamente distribuidos entre distintas aplicaciones. Cada app puede suscribirse a una comunicación particular de clientes conectados a un broker llamado Topic. La app sólo recibirá información relacionada al Topic al que está suscrito, que limita la cantidad de tráfico en la red. Por ejemplo, una app puede suscribirse a un Topic GPS y otra a un Topic CAN bus. La función publicar y suscribir ayuda a que sistemas complejos como Navixy, sean más escalables, con múltiples nodos y sets de información.

Los modelos de comunicación Publicar/Suscribir (Publish/Subscribe) hacen sentido en ambientes que tienen muchos servidores y clientes que necesitan compartir datos y servicios. Están implementados en una manera asíncrona (usando el queue de mensajes) y crear menor cantidad de tráfico en la red que el modelo tradicional Solicitud/Respuesta (Request/Response) que requieren que todos los clientes y servidores que necesitan compartir datos estén conectados unos a otros. También deben sondear entre sí con regularidad en el modelo Request/Response, que crea un más tráfico de red, para ver si hay nuevos datos comparado con el modelo Publish/Subscribe que solo envía datos cuando cambia.  Además, la comunicación entre dispositivos está desacoplada, lo que significa que es más fácil mantener más segura toda la red.

MQTT_broker_blog_2

Calidad de servicio (QoS): garantice la entrega de información crítica y no se preocupe por información menos importante

Algunos paquetes de datos son más importantes que otros. Por ejemplo, podría ser bastante crítico recibir todas las alertas de una alarma de auto, mientras que si hacen falta un par de mediciones de temperatura de refrigerante es tolerable. Aquí es donde el mecanismo de calidad de servicio (QoS) ayuda significativamente: permite a los desarrolladores e integradores de sistemas de telemática, establecer expectativas de la capacidad de entrega de datos. 

QoS asegura que ciertos datos de alta prioridad sean entregados a/desde los dispositivos o aplicaciones dentro de una capacidad limitada en la red. El protocolo MQTT tiene tres niveles de QoS que están determinados por el tipo de cliente o suscripción: 

  • QoS 0 (Fire and forget). Este es el nivel más bajo y es usado cuando es aceptable la pérdida de cierta cantidad de información. Por ejemplo, en algunos escenarios pueden faltar algunas lecturas de temperatura y refrigeración obtenidos del CAN bus.
  • QoS 1 (At Least Once). Es el nivel más común que es usado cuando la duplicidad de mensajes es aceptable y puede ser fácilmente gestionado.Por ejemplo, mensajes regulares con datos de ubicación del vehículo.
  • QoS 2 (Exactly Once). Este nivel garantiza la entrega una sola vez. Es usado para aplicaciones críticas y tiene la sobrecarga más alta. Por ejemplo, un comando para el control de apagado o encendido de motor.

MQTT permite configurar el QoS para cada tipo particular de mensaje. Por ejemplo: para ubicación GPS, lecturas de sensores de combustible o comandos de dispositivo. 

Características comunes: una forma más rápida y menos costosa de integrar sistemas

Antes de que MQTT existiera, conectar dispositivos y redes a un software y aplicaciones, requería de integraciones complejas, caras y que consumían mucho tiempo debido a la variedad de protocolos de comunicación. MQTT es comúnmente usado entre aplicaciones e industrias y es sumamente sencillo para los desarrolladores trabajar con este protocolo para construir aplicaciones y paquetes de software on-premise o en la nube. Por ejemplo, Mosquitto MQTT puede ser desplegado con un puente de configuraciones MQTT con el Broker de Navixy en Navixy central. AWS IoT, Azure IoT y Google Cloud IoT tienen MQTT brokers y compatibilidad en sus plataformas cloud.

Ligero: ahorre en costos de tráfico

Vale la pena mencionar que el protocolo MQTT fue diseñado originalmente para monitorear sensores IoT en el desierto vía enlances de satélite. Es por esto que MQTT usa una pequeña huella de código y no agrega mucha sobrecarga. Maximiza el ancho de banda disponible y reduce las tasas de actualizaciones a segundos. Además, también puede ser usado para controlar dispositivos al enviar comandos desde las aplicaciones. Cualquier número de dispositivos puede recibir comandos como actualizaciones masivas. 

Para la telemática de vehículos, la ventaja de ser ligero ayuda a mantener los costos para conectividad celular y satelital lo más bajos posibles.

Estructuras MQTT

Gracias a la baja carga y el mecanismo integrado de QoS, el protocolo de mensajería MQTT puede ser usado en cualquier red física. Para telemática de vehículos son más comunes redes GPRS, SAT o LPWAN. 

MQTT requiere de un transporte subyacente que proporcione un flujo ordenado y sin pérdidas de bytes entre el cliente y el broker. No requiere de soporte de ningún protocolo de transporte específico, pero puede soportar TCP/IP.

No requiere el soporte de ningún protocolo de transporte específico, pero puede ser compatible con TCP / IP, Seguridad de la capa de transporte (TLS) y Websocket entre otros. El transporte de redes sin conexión como UDP no son adecuado por sí solas ya que podrían reordenar los datos.  

MQTT es un protocolo binario donde los elementos de control son bytes binarios y no cadenas de texto. Tiene un formato de comando y de reconocimiento de comando, así que cuando un publisher/cliente envía un mensaje para establecer la conexión con el broker, el broker envía un reconocimiento. Reconocimientos adicionales son determinados por el nivel de QoS. Los paquetes consisten en un encabezado, un encabezado variable y una carga útil.

MQTT_broker_blog_1_v2

En el nivel más alto, los mensajes MQTT pueden encapsular varias estructuras de datos. Basado en observaciones realizadas en los dispositivos que ya son compatibles con Navixy, el protocolo MQTT incluye alguno de los siguientes paquetes: 

Paquete de protocolos de propiedad de fabricantes de dispositivos

Algunos fabricantes como Teltonika y TOPFLYtech utilizan formatos binarios compactos para transferir datos usando MQTT.

  • Mensajes en formato JSON o XML Por ejemplo, Globalmatix proporciona información GPS, datos sin procesar de CANbus, junto con otras señales y eventos en estructuras JSON simples. 

El segundo enfoque puede parecer más amigable para los desarrolladores ya que no requiere de decodificación compleja. Sin embargo, para sistemas escalables e independientes del dispositivo, es más ventajoso tener una Central MQTT Navixy que reduzca la complejidad del protocolo del dispositivo, que unifique los formatos de datos y que maneje las integraciones de las aplicaciones. Para aprender más de estructuras MQTT visite la Academia Navixy.

Usando dispositivos MQTT con Navixy

Uno de los atributos principales de Navixy es la facilidad para integrar con una amplia variedad de dispositivos. Actualmente soporta más de 1,200 distintos tipos de dispositivos que pueden ser conectados usando MQTT o cualquier otro protocolo. En un caso de uso de MQTT, Navixy actúa como el Broker y soporte el protocolo MQTT v3.1.1 y todos los niveles de QoS. Navixy también utiliza un API REST para fácil acceso a la información reunida. Estas características hacen que conectar dispositivos compatibles con MQTT a Navixy sea conveniente y puedan construir redes complejas de IoT y GPS.

MQTT_broker_blog_4

Navixy también se puede configurar como un cliente MQTT que recibe actualizaciones publicadas de otros clientes conectados a un intermediario externo. En este caso, Navixy se suscribe a temas relevantes de MQTT que son publicados por otros clientes. Navixy solo recibe datos publicados de los temas a los que está suscrito. Los tipos de dispositivos que se pueden integrar los dictará el intermediario externo y no Navixy. Esto puede limitar la cantidad de tipos de dispositivos disponibles para recopilar los datos.

Cómo los fabricantes de dispositivos GPS usan MQTT hoy en día

Muchos fabricantes líderes de dispositivos GPS ya producen hardware compatible con MQTT y el número de dispositivos disponibles está creciendo constantemente. 

Recientemente TOPFLYtech implementó MQTT en su nueva serie de dispositivos 4G. De acuerdo con su Director de Ventas Blazer Hou, MQTT optimizó significativamente la comunicación en sistemas con varios servidores y aplicaciones.  Por lo tanto, la compañía observa nuevas oportunidades fundamentales en crear soluciones IoT basadas en MQTT. 

El fabricante alemán, Globalmatix, encontró que MQTT es muy ventajoso al trabajar con datos CANbus. La aplicación específica de estos dispositivos está en poder trabajar con un gran número de parámetros CANbus. Gracias a la posibilidad de usar Topics MQTT, los desarrolladores de aplicaciones pueden suscribirse fácilmente al paquete de parámetros que necesitan.

El fabricante de dispositivos Xirgo Global, adquirido recientemente por Sensata Holding, también usa MQTT en sus dispositivos más avanzados como el XG3700. Esta línea está enfocada en aplicaciones de soluciones no estandarizadas: los integradores pueden usar SDK para crear sus propios scripts para administrar dispositivos periféricos, incluyendo vía CANbus. Hace sentido que MQTT haya sido escogido como el protocolo de comunicación para dispositivos diseñados para este tipo de proyectos complejos. 

Un enfoque similar es seguido por Digital Communications Technologies (DCT), que produce un gateway integrado para datos telemáticos en sus dispositivos Syrus 4G que también utilizan MQTT para la comunicación. El gateway se basa en una plataforma Linux y proporciona una API y un SDK para integradores.

Otras empresas que usan MQTT en sus dispositivos son Teltonika, Aplicom, Squarell Technology, InHand, Thinkrace, y muchas más. Por tanto, se puede decir que existe una tendencia global en el uso de MQTT para la comunicación con dispositivos GPS configurables de forma flexible.

Un buen momento para considerar MQTT para su próximo proyecto

Una elección pobre en el protocolo de mensajería podría ser costoso, retrasar el desarrollo y desviar las implementaciones. 

Si está construyendo un sistema telemático con la perspectiva de un desarrollo serio, entonces debe considerar cuidadosamente el uso de MQTT como el protocolo principal entre sus dispositivos GPS y las aplicaciones de IoT.

Integradores y desarrolladores pueden usar cualquier Equipo GPS/IoT que opere con MQTT con nuestra plataforma Navixy.  Las capacidades del Broker MQTT Navixy y la Central MQTT Navixy le permiten crear soluciones flexibles y confiables listas para gastos elevados.

¿Se encuentra desarrollando un proyecto con MQTT? Cuéntenos su experiencia en los comentarios.

← Artículo anteriorArtículo siguiente →
¿Está listo para el software más innovador?
REGISTRARSE
Publicaciones recientes