Protocolos IoT enxutos: MQTT, CoAP e LwM2M

O volume de dados transmitido por um dispositivo IoT durante a comunicação tem um impacto significativo em suas exigências de energia. Quanto mais dados são transmitidos, maior o tempo de atividade necessário e maior o consumo de energia. Além dos métodos baseados em rede, como PSM e eDRX, que regulam os intervalos de atividade do dispositivo a nível de rede, a escolha do protocolo de comunicação adequado pode também economizar energia de forma substancial, potencialmente tornando métodos como PSM e eDRX obsoletos.

Série de artigos sobre a “Economia de energia em LPWAN celular”


Ao contrário do PSM e do eDRX, cujas funcionalidades dependem das operadoras de rede individuais, a escolha dos protocolos de comunicação aplica-se universalmente, proporcionando uma otimização consistente do consumo de energia do dispositivo em todos os cenários. Isso é crucial para escalar produtos em implantações em massa, pois os desenvolvedores não precisam considerar o SIM específico ou a operadora de rede em uso.


MQTT: Eficiente, mas não suficiente

O protocolo Message Queuing Telemetry Transport (MQTT) foi inicialmente desenvolvido em 1999 para comunicação máquina a máquina (M2M), antes do conceito de "Internet das Coisas" ganhar popularidade. Hoje, é amplamente adotado como um padrão para comunicação de dispositivos. O MQTT utiliza o Protocolo de Controle de Transporte (TCP) para o transporte de dados, seguindo um modelo cliente/servidor. O dispositivo IoT atua como o cliente, se comunicando com um servidor conhecido como "broker", por exemplo, um serviço na nuvem como o Amazon Web Services (AWS).

O MQTT se baseia na organização dos dados em "tópicos". Um tópico é uma cadeia de caracteres hierarquicamente organizada. Por exemplo, em uma estação meteorológica, poderíamos ter "estação metereológica_A/temperatura/solo" para um sensor de temperatura do solo da estação A, e "estação metereológica_A/temperatura/ar" para um sensor de temperatura do ar da mesma estação. Aplicativos de IoT podem se inscrever nestes tópicos para ler os dados específicos conforme necessário.

Essas cadeias de caracteres têm a desvantagem de potencialmente serem pouco econômicas na transmissão de dados, pois podem se tornar longas, aumentando assim o volume de dados que um sensor transmite e consumindo energia desnecessariamente. Para sensores simples com recursos de computação limitados e restrições rigorosas de consumo de energia, essa arquitetura pode se tornar problemática rapidamente.


CoAP: Eficiência Através do UDP

O CoAP (Constrained Application Protocol) gerencia recursos de forma mais econômica, utilizando o User Datagram Protocol (UDP). Ao contrário do MQTT, que utiliza o Transmission Control Protocol (TCP), o UDP é um protocolo orientado a pacotes sem conexão. Enquanto o TCP requer confirmações sequenciais de dados, o UDP envia pacotes sem a necessidade de confirmação adicional de erros. Esse método economiza esforço, tempo e, mais crucialmente, energia.

Por isso, o CoAP é mais adequado para dispositivos que precisam otimizar seus recursos. Dispositivos alimentados por bateria frequentemente possuem hardware simples e capacidade de computação limitada. Eles não são projetados para operações computacionais complexas, mas sim para transmitir dados de maneira rápida e eficiente, minimizando o consumo de energia.


LwM2M: A Inovação Baseada em CoAP

O Lightweight M2M (LwM2M) surgiu para atender à necessidade do mercado por um padrão comum no gerenciamento de dispositivos de baixo consumo de energia na Internet das Coisas. Desenvolvido pela Open Mobile Alliance, o LwM2M é relativamente recente, tendo sido introduzido pela primeira vez em fevereiro de 2017.


O que é LwM2M?

Baseado no CoAP, o Lightweight M2M visa simplificar e padronizar o gerenciamento de dispositivos na IoT. Além de mensagens, ele inclui elementos para o gerenciamento completo de dispositivos.

Para facilitar a troca de informações entre dispositivos e plataformas, o LwM2M utiliza um modelo de dados padronizado que independe do fabricante do dispositivo. Esse modelo é hierarquicamente dividido em três níveis: Objeto, Instância de Objeto e Recurso. Cada objeto é identificado por um ID único, formando um caminho e um URL CoAP correspondente.

O M2M leve representa uma evolução em relação ao MQTT, superando suas funcionalidades originais. No entanto, ainda não é completamente integrado às principais plataformas de nuvem IoT, como AWS ou Azure. Ao contrário do MQTT, que se concentra exclusivamente em mensagens, o LwM2M oferece capacidades expandidas:

  1. Bootstrapping seguro: o mecanismo para conectar um dispositivo à plataforma de gerenciamento de forma segura e gerenciar todas as chaves e certificados necessários.

  2. Manutenção remota: a capacidade de configurar remotamente um dispositivo ou executar determinadas funções.

  3. Atualização de firmware: a execução de uma atualização segura de firmware pela rede (atualização over-the-air) para fornecer novas funções ao dispositivo ou corrigir erros funcionais.

  4. Gerenciamento de falhas: permite que o dispositivo relate problemas de funcionamento.

  5. Relatórios: permite que o dispositivo informe alterações de status e consulte as definições de configuração atuais.


Na terceira parte de nossa série de artigos sobre economia de energia em LPWAN, exploraremos como o uso de protocolos eficientes impacta o consumo de energia em um exemplo prático.