Visión general de MQTT

Lo esencial de MQTT Título de la imagen

En el panorama en constante evolución del Internet de las Cosas (IoT) y los protocolos de comunicación en tiempo real, MQTT se ha revelado como una solución potente y versátil.

MQTT, acrónimo de Message Queue Telemetry Transport (más información a continuación), es un protocolo de mensajería ligero y eficaz diseñado para dispositivos con recursos limitados y redes poco fiables.

Así que en este post, quiero sumergirme en la historia, las aplicaciones y las ventajas y desventajas de MQTT.

Historia de MQTT

Los orígenes de MQTT se remontan a finales de los años 90, cuando Andy Stanford-Clark y Arlen Nipper diseñaron el protocolo para supervisar oleoductos. Supervisar largos oleoductos en zonas remotas puede ser todo un reto.

Así que la idea era idear algo que fuera extremadamente ligero, para poder obtener la información necesaria (estado, temperatura, etc.) de dispositivos en medio de la nada.

Una foto de una tubería remota que podría ser monitorizada con MQTT

El objetivo inicial era desarrollar un protocolo que minimizara el uso de ancho de banda y garantizara al mismo tiempo una transmisión de datos fiable. En otras palabras, se trataba de facilitar la comunicación telemétrica entre sensores de oleoductos y minimizar el uso de ancho de banda.

Su modelo de publicación-suscripción permitía a sensores y dispositivos transmitir datos a un eje central, donde los abonados (a menudo sistemas de vigilancia) podían recibir y procesar esta información.

La aparición de los productos IoT y el auge de las Raspberry Pis convirtieron a MQTT en una forma pionera de comunicación entre dispositivos.

Así, MQTT se extendió rápidamente más allá de su aplicación original en telemetría.

Esta evolución provocó un cambio notable en su nombre.

Inicialmente, MQTT significaba MQ Telemetry Transport (transporte de telemetría MQ), donde MQ significaba Message Queue (cola de mensajes) (a pesar de no utilizar colas de mensajes - más sobre esto más adelante).

Sin embargo, a medida que crecía su adopción y se diversificaban sus aplicaciones, el protocolo evolucionó más allá del uso centrado en la telemetría. Ahora puedes controlar cosas con MQTT, por ejemplo.

De hecho, si ha leído nuestro boletín de esta semana, ya lo sabe, MQTT ya no es sinónimo de un conjunto específico de palabras.

Así es: MQTT sólo significa MQTT.

Foto de un sensor doméstico inteligente que podría controlarse con MQTT

Hoy en día, el panorama de las aplicaciones es mucho más vasto y diverso que en los años 90.

Más allá de su uso tradicional en telemetría, MQTT es ahora una piedra angular de los ecosistemas IoT (incluido PiCockpit), ya que permite una comunicación fluida entre dispositivos, sensores y aplicaciones.

Su eficacia y ligereza lo convierten en la opción ideal para entornos con recursos limitados, como los sistemas integrados y los microcontroladores.

Cómo funciona

MQTT utiliza el modelo editor-suscriptor. Esto significa que en el núcleo de la arquitectura de MQTT hay dos componentes clave: editores y suscriptores.

Estos componentes se comunican a través de un broker central, que actúa como intermediario responsable de encaminar los mensajes a los destinos adecuados.

Así que tienes tres dispositivos, sensores o aplicaciones que necesitan comunicarse entre sí, como tu portátil, tu Raspberry Pi y tu router. Si conectas la Raspberry Pi y tu portátil a WiFi a través del router, entonces podrás utilizar el router como intermediario para conectar la Pi y el portátil.

En concreto, los dispositivos envían mensajes en función de temas.

Es una palabra clave en el mundo de MQTT.

Los temas son piezas de información superligeras. Te dirán si un dispositivo está encendido o apagado, su temperatura, su dirección IP, etc. Los temas no te darán cantidades interminables de información.

Eso es lo que hace que MQTT sea tan eficiente y estable.

También es lo que lo hace perfecto para monitorizar tus Raspberry Pis con PiCockpit, por ejemplo. Porque te proporciona una conexión consistente y fiable entre dispositivos.

Lo bueno es que los temas funcionan de forma bastante obvia. Un tema gira en torno a cadenas de texto separadas por barras inclinadas, como:

myRaspberryPis / livingRoomPi / temperatura

Y ese tema sirve como canal de mensajes que envía la temperatura de la Raspberry Pi en el salón.

El intermediario recibe el mensaje y lo almacena temporalmente.

Y luego los dispositivos se suscriben a temas específicos en el corredor para obtener esa información.

Esto es también lo que hizo que el nombre MQTT fuera un término equivocado desde el principio. Este modelo de publicación-suscripción es muy diferente de la cola de mensajes, en la que los datos se almacenan hasta que los clientes los necesitan.

Aplicaciones de MQTT

Como puedes ver, MQTT es genial para el ecosistema IoT. Permite una comunicación eficiente entre varios dispositivos, sensores y aplicaciones, incluso cuando la red es terrible.

Esto es lo que lo hace ideal para escenarios con ancho de banda limitado y conexiones inestables.

Se puede utilizar para que dispositivos como termostatos inteligentes, luces y cámaras de seguridad se comuniquen sin problemas. Por ejemplo, un sensor de temperatura puede publicar datos en un broker MQTT, y un termostato suscrito al tema puede recibir esa información en tiempo real y actuar en consecuencia.

Debo mencionar que todas estas son cosas en las que PiCockpit podría ayudarte, por cierto.

Un barco vigila el tiempo

En entornos industriales, las fábricas y líneas de producción utilizan MQTT para supervisar la maquinaria, recopilar datos sobre la eficiencia operativa y controlar procesos a distancia. Realmente se ha congraciado con todo tipo de industrias remotas.

Tomemos, por ejemplo, las estaciones de control meteorológico en zonas remotas o las plataformas petrolíferas en alta mar. Para obtener información desde y hacia estos lugares, MQTT funciona realmente bien.

Ventajas

MQTT es súper eficiente. Su diseño ligero minimiza la sobrecarga de la transmisión de datos. Su formato binario y su cabecera compacta lo convierten en una gran opción para dispositivos con capacidad de procesamiento y ancho de banda limitados.

También es muy fiable. El modelo de publicación-suscripción garantiza una entrega fiable de los mensajes. Los suscriptores pueden recibir los mensajes perdidos en cuanto se conectan, lo que evita la pérdida de datos.

Y, para las empresas que quieran utilizarlo, es superescalable. La arquitectura permite escalar fácilmente a medida que más dispositivos o abonados se unen a la red. Los intermediarios pueden gestionar con eficacia numerosos editores y abonados sin que ello afecte significativamente al rendimiento.

Sin embargo, como todos los protocolos, tiene algunas desventajas.

Desventajas

Aunque MQTT ofrece mecanismos de seguridad básicos como la autenticación mediante nombre de usuario y contraseña, puede no ser suficiente para aplicaciones muy sensibles. Por eso, a veces es importante hacer uso de medidas de seguridad como el cifrado SSL/TLS y la autenticación avanzada.

Otra desventaja es la pérdida de datos. Por defecto, los brokers MQTT no almacenan mensajes, lo que puede provocar la pérdida de datos si un suscriptor está desconectado cuando un dispositivo publica un mensaje.

Por supuesto, esto puede verse como algo positivo en términos de seguridad, porque no hay muchos datos a los que acceder.

Pero es cierto que la mensajería persistente requiere una configuración adicional.

Aunque MQTT en sí es relativamente sencillo (especialmente para la domótica), la implantación de un ecosistema MQTT completo con intermediarios, editores y suscriptores puede resultar compleja.

Aunque MQTT es bastante escalable, las empresas y organizaciones pueden tener problemas de mantenimiento.

Cómo utiliza MQTT PiCockpit

PiCockpit, nuestra forma favorita de supervisar y controlar Raspberry Pis, aprovecha la potencia de MQTT para ofrecer un control fluido y eficaz sobre una red de dispositivos.

Al utilizar MQTT como protocolo de comunicación, PiCockpit proporciona a los usuarios un completo conjunto de herramientas para gestionar su flota de Raspberry Pi de forma remota, lo que la convierte en una herramienta indispensable para entusiastas, desarrolladores y profesionales.

El botón MQTT de PiCockpit

En esencia, PiCockpit permite a los usuarios supervisar diversos aspectos de sus dispositivos Raspberry Pi, como el uso de la CPU y la memoria, las estadísticas de red y los componentes de hardware conectados.

Los dispositivos individuales recopilan información y la comparten a través de la red mediante la arquitectura de publicación-suscripción de MQTT. Cada Raspberry Pi actúa como cliente MQTT, capaz tanto de publicar como de suscribirse a temas específicos, lo que permite el intercambio de datos en tiempo real.

Una de las principales ventajas de emplearlo en PiCockpit es su ligereza, que se ajusta perfectamente al entorno de recursos limitados de los dispositivos Raspberry Pi.

El eficaz empaquetado de los mensajes y la baja sobrecarga garantizan que incluso los dispositivos con una capacidad de procesamiento limitada puedan participar en el intercambio de datos sin un impacto significativo en el rendimiento.

El enfoque de PiCockpit va más allá de la mera monitorización de datos. Facilita acciones de gestión remota, permitiéndole ejecutar comandos en sus dispositivos Raspberry Pi desde un panel centralizado.

Al suscribirse a los temas adecuados, los usuarios pueden activar acciones como actualizaciones de software, reinicios del sistema o secuencias de comandos personalizadas en los dispositivos.

Esta comunicación bidireccional garantiza que PiCockpit no sea sólo una herramienta de supervisión pasiva, sino una plataforma activa para la gestión de dispositivos.

Además, el uso de MQTT por parte de PiCockpit facilita la escalabilidad de sus proyectos.

A medida que aumenta el número de dispositivos supervisados, el broker MQTT gestiona sin problemas el creciente flujo de datos y mensajes. Esta escalabilidad es un testimonio de su capacidad inherente para gestionar numerosos clientes sin comprometer el rendimiento.

PiCockpit supervisa y controla las Raspberry Pis

En conclusión, la integración de MQTT en PiCockpit demuestra la versatilidad y eficacia del protocolo en el ámbito de la gestión remota de dispositivos.

Por lo tanto, PiCockpit le permite no sólo supervisar, sino también gestionar su flota de Raspberry Pi con facilidad. Todo lo que tienes que hacer es instalar el cliente PiCockpit en tu Raspberry Pi y ¡listo!

Conclusión:

MQTT es una forma maravillosa de hacer que los dispositivos se comuniquen entre sí.

Es ligero. Es fiable. Y es muy versátil.

Y lo que es más importante, ya no es sólo un protocolo de comunicación para recopilar datos de forma pasiva. Ahora puedes utilizarlo para controlar activamente dispositivos y sensores a distancia.

MQTT es una valiosa herramienta en el arsenal de protocolos para permitir una comunicación fluida y eficiente.

Lo mejor de todo es que, con todos los proyectos de IoT y domótica que existen en la actualidad, MQTT puede mejorar tu vida.

Puedes instalar PiCockpit en tu Raspberry Pi y comprobar por ti mismo todas sus ventajas.

Haga clic aquí para ver cómo hacer una fotorresistencia con un Pico W usando MQTT - es un pequeño gran proyecto para comprobar la potencia y eficiencia de MQTT.

¿Qué harías con MQTT para cambiar tu vida cotidiana?

2 Comentarios

  1. Сергей el agosto 30, 2023 a las 8:52 am

    Автор статьи опоздал с написанием статьи о mqtt лет так на десять...

    • Adam el agosto 30, 2023 a las 9:38 am

      Лучше поздно, чем никогда. Да, Сергей?

Deja un comentario