Protocolos Lean para el IoT: MQTT, CoAP y LwM2M

El volumen de datos que transmite un dispositivo IoT durante la comunicación tiene un gran efecto en su demanda de energía. Cuantos más datos transmite el dispositivo, más tiempo debe permanecer activo y mayor es su consumo de energía. Además de los métodos basados en la red, como PSM y eDRX, que determinan los intervalos de actividad de un dispositivo a nivel de red, elegir el protocolo de comunicación adecuado también puede conservar la misma cantidad de energía, y quizás incluso hacer que PSM o eDRX queden obsoletos.Serie de blogs "Ahorro de energía en LPWAN celular"


  • Parte 1:

    Posibilidades y limitaciones de PSM y eDRX.

  • Parte 2:

    MQTT, CoAP y LwM2M: protocolos ligeros para el IoT.

  • Parte 3:

    1NCE Data Broker: Más duración de la batería con NB-IoT y LTE-M


    A diferencia de PSM y eDRX, cuyas funciones dependen en gran medida de los operadores de red individuales, la elección de los protocolos de comunicación se aplica universalmente y hace que la optimización del consumo de energía del dispositivo sea consistente en todas partes, Este es un requisito previo para escalar un producto para despliegues masivos, porque el desarrollador no necesita tener en cuenta la SIM y qué operador de red está en uso.


MQTT: delgado, pero no lo suficiente

El protocolo Message Queuing Telemetry Transport (MQTT) se diseñó para su uso en comunicaciones máquina a máquina (M2M) allá por 1999, mucho antes de que nadie hablara de "Internet de los objetos". Hoy es un protocolo estándar para la comunicación entre dispositivos. MQTT utiliza el Protocolo de Control de Transporte (TCP) para el transporte de datos. La comunicación funciona según un modelo cliente/servidor. El dispositivo IoT es el cliente y habla con un servidor designado como "broker", por ejemplo, un servicio en la nube proporcionado por Amazon Web Service (AWS).

El elemento central de MQTT es organizar sus datos en los llamados "temas". El tema es una cadena ordenada jerárquicamente. En el ejemplo de una estación meteorológica, podría organizarse como " weatherstation_a/temperature/ground " para un sensor de temperatura del suelo de la estación meteorológica A, mientras que " weatherstation_a/temperature/air " definiría un sensor de temperatura del aire de esa misma estación. Dependiendo del valor que se necesite recuperar, una aplicación IoT puede suscribirse a estos temas para leer esos datos individuales.


La desventaja de estas cadenas es que pueden resultar antieconómicas en la transmisión de datos. Estas cadenas pueden llegar a ser largas, lo que aumenta el volumen de datos que transmite un sensor y, por tanto, consume energía innecesariamente. Para sensores sencillos en los que la potencia de cálculo y el consumo de energía están estrictamente limitados, esta arquitectura puede convertirse rápidamente en un problema.


CoAP: Más esbelto gracias a UDP


El protocolo CoAP (Constrained Application Protocol) gestiona los recursos de forma más económica. A diferencia de MQTT, se basa en el Protocolo de Datagramas de Usuario (UDP). A diferencia de TCP, UPD es un protocolo sin conexión y orientado a paquetes. Por ejemplo, con TCP, todos los paquetes de datos llegan numerados al destinatario y necesitan ser confirmados antes de que el siguiente paquete de datos siga su camino. UDP envía los paquetes de datos uno tras otro, sin comprobación adicional de errores. Esto ahorra esfuerzo, tiempo y, lo que es más importante, energía.


Por eso CoAP es más adecuado allí donde los dispositivos deben prestar mucha atención a sus necesidades de recursos. Los dispositivos alimentados por batería suelen tener un hardware sencillo con una potencia de cálculo limitada. No están diseñados para realizar operaciones informáticas complejas, sino para transmitir datos de forma rápida y sencilla consumiendo la menor cantidad de energía posible.


LwM2M: el recién llegado basado en CoAP


Lightweight M2M (LwM2M) es la respuesta a la demanda del mercado de un estándar común para gestionar dispositivos de bajo consumo en la Internet de los objetos. Desarrollado por la Open Mobile Alliance, LwM2M es aún bastante joven. LwM2M se presentó por primera vez en febrero de 2017.


¿Qué es LwM2M?


Lightweight M2M se basa en CoAP y tiene como objetivo simplificar y estandarizar la gestión de dispositivos en el Internet de las Cosas. Por lo tanto, no solo está diseñado para la mensajería, sino que también incluye elementos para la gestión de dispositivos.


Para el intercambio de información entre el dispositivo y la plataforma, LwM2M utiliza un modelo de datos estandarizado que es independiente del fabricante del dispositivo respectivo. El modelo se divide jerárquicamente en tres niveles de objetos: Objeto, Instancia de objeto y Recurso. A cada objeto se le asigna un ID único, que luego se combina para formar una ruta y una URL CoAP.

Lightweight M2M es la respuesta moderna a MQTT, que ha superado su utilidad inicial. Sin embargo, aún no es totalmente compatible con las principales plataformas de IoT en la nube, como AWS o Azure. A diferencia de MQTT, que se limita a la mensajería, LwM2M puede hacer más:


  1. arranque seguro: mecanismo que permite conectar un dispositivo a la plataforma de gestión de forma segura y gestionar todas las claves y certificados necesarios.

  2. mantenimiento remoto: capacidad de configurar un dispositivo o realizar determinadas funciones a distancia.

  3. actualización del firmware: ejecución de una actualización de firmware segura a través de la red (actualización over-the-air) para dotar al dispositivo de nuevas funciones o corregir errores funcionales.

  4. gestión de fallos: habilitación del dispositivo para notificar fallos de funcionamiento.

  5. notificación: permite que el dispositivo informe de cambios de estado y consulte los ajustes de configuración actuales.


    LwM2M es algo así como un navegador web que ofrece servicios adicionales de valor añadido a partir del protocolo de transporte HTTP puro. CoAP, la base de comunicación de LwM2M, no dista mucho del protocolo de transferencia de hipertexto (HTTP).


En la tercera parte de nuestra serie de blogs sobre Ahorro de energía en LPWAN, aprenderá cómo afecta el uso de protocolos sencillos al consumo de energía en un ejemplo de la vida real.