MQTT Basics

¿Qué es MQTT?

Mensaje Queuing Telemetry Transport (MQTT)es un peso ligero, simple, y protocolo de mensajería de código abierto. Es el protocolo más utilizado para la comunicación en el Internet de las cosas (IoT) o entornos de máquina a máquina (M2M). El objetivo principal del MQTT esfacilitar el mensaje y el intercambio de datos entre IoT y Dispositivos de IoT Industrial (IIoT),como sensores, que tienen ancho de banda limitado. Dispositivos IoT/IIoT utilizando elMQTT protocolooperar en un modelo de subscripción publica, donde un dispositivo (cliente) puede publicar mensajes o datos a temas específicos mientras se suscribe a recibir datos de otros dispositivos. Funciona sobre TCP/IP.

¿Cómo funciona MQTT?

ElMQTTopera en un modelo public-subscribe, permitiendo dispositivos/clientes para comunicarse. Sin embargo, la comunicación entre los clientes no ocurre directamente; en su lugar, es facilitado por unInterventor de MQTT.El corredor actúa como intermediario, recepción y distribuyendo datos entre clientes. Este modelo de subscripción publica gira alrededor de dos roles clave: editor y suscriptor

  • Un editor es un cliente que envía mensajes (datos) al corredor.
  • Un suscriptor es un cliente que recibe mensajes subscribiendo a temas específicos.

Los clientes pueden actuar como editores y suscriptores simultáneamente. En MQTT, el intercambio de mensajes es organizados por temas(MQTT Temas),que funcionan como canales. Cuando un editor quiere enviar un mensaje, publica el mensaje a un tema específico, como sensor/temperatura. Los dispositivos interesados en este tema se suscribirán y recibirán los datos de manera eficiente. Todo este proceso es gestionado por el corredor, que toma los datos del cliente editor y lo envía a los clientes que se han suscrito a ese tema en particular.

How Mqtt Work

En caso de problemas de red o fracasos inesperados de conexión, el cliente editor puede enviar unMensaje de la Voluntada mensaje en caché que contiene instrucciones para los clientes de suscripción. Si hay una desconexión entre el corredor y el suscriptor, el corredor almacena los mensajes y los entrega al suscriptor una vez que se restablezca la conexión.

Tipos de Mensajes MQTT

MQ Telemetry Transport (MQTT) define varios tipos de mensajes que facilitan la comunicación entreMQTT clientesy el corredor MQTT en IoT sistemas. Cada tipo sirve un papel único en el proceso de comunicación. Entre los diferentes tipos de mensajes de MQTT, a continuación cuatro son cruciales:

1. CONNECT– El mensaje CONNECT es enviado por un cliente para iniciar una conexión con el corredor de MQTT. Este mensaje ayuda al corredor a identificar al cliente y establecer la conexión. El mensaje CONNECT incluye detalles como el ID del cliente, conexión opciones y credenciales de inicio de sesión.

2. DISCONECTO– El mensaje DISCONNECT es utilizado por un cliente para cerrar su conexión con el MQTT bróker. Al enviar este mensaje, el cliente informa al corredor que no desea comunicarse más tiempo. Esto asegura que el corredor es consciente de que el cliente está saliendo fuera de línea correctamente, en lugar de experimentar una desconexión inesperada.

3. PUBLISH– El mensaje PUBLISH se utiliza para enviar datos a un tema específico. Contiene la carga útil, que son los datos reales, junto con metadatos como el nombre del tema, los niveles de calidad del servicio (QoS) y si el mensaje debe ser retenido por el corredor. El mensaje PUBLISH permite que los datos se muevan de un cliente al corredor, donde se puede distribuir a otros clientes suscritos a ese tema.

4. SUBSCRIBE– El mensaje SUBSCRIBE se envía cuando un cliente o dispositivo desea recibir datos sobre un tema específico publicado por otro cliente. Al suscribirse, el cliente le dice al corredor qué tema le interesa. Una vez suscrito, el cliente comenzará a recibir todos los mensajes publicado a ese tema. Así es como los dispositivos notifican al corredor que quieren recibir tipos específicos datos.

Echa un vistazo a la tabla de abajo para más tipos y descripciones de mensajes MQTT!

Types of MQTT Messages

¿Por qué necesitas MQTT?

Es adecuado para la comunicación M2M ya que disminuye la necesidad de ancho de banda de red. Además, tiene capacidad redes inestables y requiere menos esfuerzo de desarrollo. El protocolo sirve para intercambiar datos entre dispositivos controlados y aplicaciones servidor. Un sistema que utiliza Internet de las Cosas (IoT) es una colección de interconectados objetos que pueden comunicarse entre sí. Para este concepto, Mensaje Queuing Telemetry Transport works Bueno. Algunas justificaciones son las siguientes:


  • Es posible que el dispositivo de comunicación en la nube vaya a ambos lados. Esta capacidad lo hace simple mensajes transmitidos a grandes grupos de objetos. Además, facilita la transferencia eficiente de datos.
  • Dado que utiliza el estándar ISO para mensajes, puede conectarse a un gran número de dispositivos IoT.
  • Como la fiabilidad es importante, tiene tres niveles deCalidad del servicio (QoS)ajustes que pueden emplearse para asegurar la entrega.
  • Los clientes son portátiles, usan la menor cantidad de recursos de hardware, y se pueden configurar en pequeños microcomputadoras.
  • Incluso si el cliente se desconecta de la red, soporta sesiones persistentes. Es garantizar que el cliente es se juntó lo antes posible.
  • Con soporte integrado para TLS (Transport Layer Security), el protocolo MQTT garantiza la comunicación cifrada, salvaguardar datos integridad y privacidad en los sistemas IoT.
  • Puede integrarse perfectamente con otros protocolos de mensajería, haciéndolo adaptable para diversos IoT ecosistemas.
  • Apoya la transmisión de datos en tiempo real, que es crucial para aplicaciones sensibles al tiempo como remotas monitoreo y control.
  • La estructura simple del mensaje del protocolo reduce la cantidad de metadatos en las transmisiones, por lo que es ideal para entornos de bajos recursos.

Beneficios del MQTT

Benefits of MQTT

Algunos beneficios del MQTT son los siguientes:

  • Itrequiere sólo un ancho de banda mínimoy recursos computacionales. Esto hace ideal para dispositivos con capacidad de procesamiento limitada Conexiones de ancho de banda bajo.
  • Su modelo de arquitectura publica/subscribe permitedatos eficientes distribución.Permite una comunicación escalable y flexible entre dispositivos.
  • Itminimiza el uso del ancho de banda de rojoempleando técnicas. El técnicas incluyen compresión de mensajes, tamaño pequeño del paquete y carga binaria.
  • Su diseño ligero y patrones de comunicación eficientes contribuyen al bajo consumo de energía. Esto es importante para dispositivos operados por baterías. Es porque ayuda a prolongar la vida de la batería ypermite un IoT eficiente en energía despliegues.
  • GarantizaEntrega de mensajes fiablesmediante el mecanismo de reconocimiento proporcionado por los niveles de QoS. Esta característica es crucial en aplicaciones donde la integridad y fiabilidad de los datos son primordiales.
  • Permite la búsqueda de mensajes, por lo que cuando el dispositivo se desconecta, los mensajes se almacenan y se entregan una vez que vuelvan a conectarse, garantía nolos datos se pierden.
  • Los dispositivos pueden publicar datos sin necesidad de conocer los detalles de los suscriptores, haciendo el sistemamás flexible y más fácil de escalar.

Características clave

MQTT TOPIC

MQTT TOPICS

Termo de dirección que permite
clientes para compartir información.

Persistent Session

Períodos de sesiones persistentes
mensaje Queuing

Representación de un
conexión entre una
cliente Y un corredor

mqtt message

Mensajes retenidos

"Última buena"
Mensaje” en un Tema

Keep Alive & Client Take

Mantener Alive & Client Take Over

Comprobando estado de la conexión TCP/IP

mqtt scoket

MQTT sobre Websockets

Le permite recibir datos directamente en un navegador web

Preguntas comunes sobre MQTT

MQTT representa el transporte de telemetría en búsqueda de mensajes. Es un protocolo de mensajería ligero y sencillo. ayuda a los dispositivos inteligentes (dispositivos que están interconectados a través de Internet) para comunicarse sin problemas enviando y recibiendo datos, especialmente en situaciones donde la red o los recursos energéticos son limitados

MQTT es el protocolo más utilizado en IoT. Es debido a su capacidad de proporcionar una manera confiable dispositivos para comunicarse incluso en ambientes con bajo ancho de banda o condiciones inestables. Su modelo de publicación/subscribe permite a los dispositivos enviar datos solo cuando es necesario, por lo tanto, hacerlo eficiente para una gran red de dispositivos conectados en hogares inteligentes, fábricas, etc.

A continuación se presentan algunos casos prácticos de uso del MQTT:

  • Vigilancia de la producción en las industrias manufactureras
  • Medición automatizada en las industrias energéticas
  • Sistemas inteligentes de automatización doméstica como control de iluminación y temperatura
  • Seguimiento de vehículos y gestión de flotas en transporte
  • Seguimiento de activos y gestión de inventarios en logística
  • Alertas y monitoreo en tiempo real para sistemas de fuego o seguridad
  • Sistemas de manejo de agua para detección de riego inteligente o fugas

MQTT es un protocolo de capa de aplicación construido sobreProtocolo TCPpara la transmisión de datos, garantía envío confiable y ordenado de mensajes. TCP (Protocolo de Control de Transmisiones) proporciona una conexión estable entre dispositivos, lo que lo hace ideal para aplicaciones donde la integridad de los datos es vital. Hay una variante llamadaMQTT-SN(MQTT for Sensor Networks) diseñado exclusivamente para redes de sensores de borde, se construye sobre UDP (Protocolo de Datagram de usuario)

MQTT es fácil de usar y es esencial para situaciones en las que el tiempo de respuesta, el rendimiento, la batería baja y El uso del ancho de banda es crucial. Comparado con otra comunicación IoT protocolos como HTTP y CoAP, MQTT es mejor debido a su diseño ligero que permite más rápido y transmisión de datos más eficiente. También publica/subscribe modelo simplifica la comunicación entre dispositivos, reduciendo así la necesidad de conexiones constantes. Todos estos hacen de MQTT un protocolo de comunicación mejor que otros protocolos.

Sí, MQTT está diseñado para apoyar una comunicación muy segura. MQTT admite métodos de autenticación garantizar que sólo los dispositivos autorizados puedan conectar e intercambiar información. Además, también ofrece diversas medidas de seguridad como el cifrado a través de SSL/TLS, que protege datos como viaja entre dispositivos. Así, estas características hacen Mensaje Queuing Telemetry Transport protocol es una opción segura para transmitir datos confidenciales en aplicaciones de IoT.

Sí, MQTT es un protocolo de código abierto que está estandarizado por organizaciones como OEAIS e ISO. Esto significa que está disponible para cualquiera para usar, implementar, o modificar sin restricciones. Como no es propiedad de ninguna empresa específica, MQTT puede ser adoptado ampliamente en diversas plataformas y aplicaciones

No, MQTT no es RESTful. Mientras tanto MQTT y REST se utilizan para la comunicación entre dispositivos, tienen diferentes arquitectura y diferentes propósitos para servir. MQTT se basa en el modelo publicado/subscribe que permite a los dispositivos enviar y recibir mensajes/datos en en tiempo real. Por otro lado, REST se basa en el modelo de solicitud/respuesta que permite a los clientes solicitar datos del servidor.

Para saber más, lea nuestraMQTT vs REST¡Un blog!

1883 es el puerto estándar de MQTT. Este es el puerto predeterminado que se utiliza para conexiones no seguras, permitiendo que los dispositivos se comuniquen entre sí fácilmente. Cuando TLS está habilitado para una conexión segura, MQTT generalmente utiliza el puerto 8883 como una capa adicional de seguridad para la transmisión de datos

Sí, por supuesto. Necesitas un corredor para usar MQTT. Es el corredor que actúa como un centro central que administra toda comunicación entre los dispositivos (clientes). El papel delMQTT brokeres obtener los mensajes/datos de los dispositivos que actúa como editor y distribuir esos mensajes a los dispositivos que actúan como suscriptor. Sin el corredor, el sistema MQTT no sería capaz de manejar o gestionar mensajes eficientemente

MQTT es muy adecuado para aplicaciones IIoT debido a las siguientes características:

  • Sobrecarga extremadamente ligera
  • Modelo Publish/Subscribe
  • Capacidades bidireccionales
  • Comunicación conectada basada en TCP

Estos factores lo convierten en el protocolo de mensajería preferido para la industria aplicaciones que requieren un intercambio de datos fiable y eficiente.

Sí, MQTT admite QoS, lo que ayuda a asegurar la entrega confiable de mensajes. QoS permite al remitente especificar cómo se deben entregar mensajes fiables, ofreciendo opciones para satisfacer diferentes necesidades de comunicación. Esta característica hace que el MQTT sea flexible para varias aplicaciones de IoT, desde datos no críticos hasta tiempos sensibles información

MQTT QoS consta de 3 niveles que se clasificaron como por orden creciente de arriba

QoS 0 – Al menos una vez
QoS 1 – Al menos una vez
QoS 2 – Exactamente una vez

Para saber más sobre QoS, navega porMQTT Artículo de QoS

AnTema MQTTes una cadena o patrón que define el destino o sujeto de un mensaje. Sirve para categorize and route messages within the publish-subscribe model, permitiendo a los dispositivos suscribirse a temas específicos de interés. Los temas pueden tener una estructura jerárquica, usando slashes (/) para separar diferentes niveles, que permite filtrar mensajes organizados y eficientes. Este sistema permite múltiples dispositivos para recibir mensajes relevantes sin tráfico de datos innecesario, haciendo la comunicación más eficaz.

Mensajes retenidosson característica en MQTT que permite un mensaje publicado a un tema para ser almacenado por el broker. Esto significa que cuando un nuevo suscriptor se conecta a ese tema, reciben inmediatamente el último mensaje retenido, asegurando que tienen los datos más recientes sin tener que esperar nuevas actualizaciones. Esta característica es especialmente útil para proporcionar información crítica, como estado de dispositivo o configuración de configuración, a nuevos suscriptores derecho lejos.

El tamaño máximo del mensaje en MQTT es definido por el broker y puede variar, pero generalmente es de hasta 256 MB. Sin embargo, se recomienda mantener mensajes pequeña para optimizar el rendimiento y reducir la latencia, especialmente en entornos limitados

MQTT garantiza la orden de mensajes mediante la entrega de mensajes en el orden que se publican al utilizar QoS 1 o QoS 2. Esto significa que los suscriptores recibirán mensajes en la misma secuencia que fueron enviados, que es crucial para aplicaciones donde el orden de datos es importante

ElÚltima Voluntad y Testamento(LWT) función permite a un cliente especificar un mensaje que será enviado por bróker si el cliente se desconecta inesperadamente. Esta característica es útil para notificar otros dispositivos sobre el estado del cliente, ayudando a mantener conciencia en la red

Sí, MQTT es muy adecuado para las redes móviles debido a su naturaleza ligera y a su baja ancho de banda consumo. Esto lo hace ideal para aplicaciones donde los dispositivos pueden tener conectividad intermitente, como sensores móviles o dispositivos IoT que dependen de redes celulares

Sí, MQTT es muy adecuado para aplicaciones en tiempo real debido a su baja latencia y eficiencia Entrega de mensajes. El modelo publicado/subscribe permite notificaciones instantáneas, lo que lo hace ideal para casos de uso tales como alimentación de datos en vivo, monitoreo remoto y mensajería instantánea

MQTT Basics: Glosario de los términos de Must-Know

1. MQTT

Un protocolo de mensajería ligero, sencillo y de código abierto diseñado para dispositivos con recursos limitados. Comúnmente utilizado en IoT para una comunicación rápida y fiable.

2. Mensaje MQTT

Los datos reales enviados entre dispositivos, conteniendo un tema y una carga útil, que contiene el contenido del mensaje.

3. MQTT Broker

El servidor central (middleware) que recibe todos los mensajes de clientes y los dirige a los suscriptores apropiados.

4. Clientes MQTT

Dispositivos o aplicaciones que se conectan al corredor para enviar y recibir mensajes.

5. Editorial

Un dispositivo o aplicación que envía mensajes (publica) al corredor bajo un tema específico.

6. Suscriptor

Un dispositivo o aplicación que recibe (suscribe a) mensajes del corredor basados en temas específicos.

7. ID del cliente

Un identificador único para cada cliente MQTT, utilizado por el corredor para gestionar sesiones y conexiones.

8. MQTT Mantener Alive

Un intervalo de tiempo para comprobar si un cliente sigue conectado. Si no se envían datos, el cliente envía un ping.

9. Última Voluntad y Testamento (LWT)

Un mensaje que el corredor envía si un cliente desconecta inesperadamente, alertando a otros clientes de su estado offline.

10. Paquetes MQTT

Los diferentes tipos de paquetes de control utilizados en la comunicación MQTT, como CONNECT, PUBLISH y SUBSCRIBE.

11. MQTT Payload

El contenido o los datos reales dentro de un mensaje MQTT, como valores de sensor, actualizaciones de estado o comandos.

12. Período de sesiones persistente

Guarda información de suscripción y mensajes no entregados para que un cliente pueda reanudar su sesión después de reconectarse.

13. MQTT Calidad del servicio (QoS)

Define cómo se entregan mensajes fiables: al menos una vez (0), al menos una vez (1), o exactamente una vez (2).

14. Mensaje retenido

Un mensaje guardado por el corredor y enviado inmediatamente a cualquier cliente que posteriormente se suscribe a su tema.

15. MQTT Server

Otro término para el corredor de MQTT — el sistema central que maneja el enrutamiento y la entrega de mensajes.

16. Gastos de período de sesiones

Controla cuánto tiempo retiene los datos de sesión después de que un cliente se desconecte — útil para conexiones temporales.

17. MQTT Suscripciones compartidas

Permite a múltiples clientes compartir la carga de trabajo de los mensajes sobre el mismo tema, como una cola de mensajes.

18. MQTT Sparkplug

Una extensión MQTT para sistemas industriales, añadiendo modelos de datos estándar y gestión estatal de dispositivos.

19. Temas MQTT

Etiquetas utilizadas para organizar mensajes, como carpetas — los clientes publican o se suscriben a temas específicos.

20. MQTT 5

La última versión de MQTT, que ofrece características avanzadas como códigos de razón, suscripciones compartidas y expiración de sesión.

21. MQTT-SN

Una versión ligera de MQTT diseñada para redes de sensores, con bajo uso de energía y comunicación simplificada.