Tech Insights

Explorando protocolos: MQTT em IoT

Conheça o MQTT em IoT por meio de sua história, arquitetura e aplicações reais. Veja como o MQTT possibilita uma comunicação eficiente entre dispositivos com baixa sobrecarga e consumo mínimo de energia. Descubra seu papel central em sistemas SCADA, monitoramento de saúde e sensores ambientais. Entenda o futuro do MQTT no cenário em transformação dos protocolos de comunicação de IoT.

TagoIO Team ·
Explorando protocolos: MQTT em IoT

O mundo da Internet das Coisas (IoT) está crescendo rapidamente, e uma das principais tecnologias que viabiliza uma comunicação eficiente e confiável entre dispositivos IoT é o MQTT, sigla para Message Queuing Telemetry Transport. Neste blog, vamos explorar o MQTT, desde sua história e evolução até sua arquitetura, níveis de QoS, tópicos, payloads e papel nas aplicações de IoT.

O que é o MQTT?

O MQTT é um protocolo de mensageria leve e open-source, projetado para uma comunicação eficiente e em tempo real entre dispositivos, especialmente em ambientes com recursos limitados. Ele foi criado pelo Dr. Andy Stanford-Clark, da IBM, e por Arlen Nipper, da Arcom, no fim dos anos 1990. O MQTT se destaca pela baixa sobrecarga e pelo consumo mínimo de banda e energia, o que o torna uma escolha ideal para muitas aplicações de IoT.

O MQTT percorreu um longo caminho desde sua criação em termos de história e evolução. Ele foi originalmente desenvolvido para monitorar oleodutos, mas desde então virou um dos padrões de comunicação de IoT. O protocolo atendeu à necessidade de mensageria confiável, de baixa banda e baixa latência em redes remotas e instáveis.

Por que o MQTT é importante na era da IoT

O MQTT é fundamental em muitas aplicações de IoT nas quais alguns poucos ou milhões de dispositivos estão interconectados. Sua natureza leve e sua confiabilidade o tornam perfeito para diversas aplicações de IoT, onde os dispositivos costumam ter recursos limitados e conectividade intermitente. O MQTT garante que os dados sejam transmitidos de forma eficiente e segura entre os dispositivos IoT e os sistemas centrais.

Além disso, a natureza independente de dispositivo do MQTT garante que aparelhos de diferentes fabricantes se comuniquem sem atrito, favorecendo a interoperabilidade. A linguagem comum oferecida pelos tópicos e payloads do MQTT promove um framework de comunicação padronizado, permitindo a integração de diversos dispositivos IoT em um ecossistema coeso.

Arquitetura do MQTT

Modelo cliente-servidor

O MQTT é baseado em um modelo cliente-servidor, no qual os clientes são os dispositivos ou aplicações que se comunicam usando MQTT, enquanto o servidor é chamado de broker. O broker é responsável por receber, rotear e entregar mensagens aos clientes apropriados. Os brokers são a espinha dorsal da comunicação MQTT, atuando como intermediários que gerenciam o fluxo de mensagens. Os clientes podem ser publishers e subscribers, enviando e recebendo mensagens por meio do broker.

Muitas plataformas de IoT oferecem um MQTT Broker integrado; um exemplo é a TagoIO, onde você pode integrar seus dispositivos MQTT e criar scripts para manipular dados, criar notificações e visualizar esses dados.

Modelo de comunicação publish/subscribe

O MQTT usa um modelo de comunicação publish/subscribe, no qual os publishers enviam mensagens em tópicos específicos, e os subscribers manifestam interesse em tópicos específicos. Isso desacopla o remetente e o destinatário, permitindo uma comunicação mais escalável e flexível. Por exemplo, uma estação meteorológica poderia publicar dados de temperatura no tópico “weather/temperature”, enquanto um aplicativo móvel poderia se inscrever nesse tópico para receber atualizações sobre as mudanças de temperatura.

O que é o Quality of Service do MQTT

O MQTT oferece três níveis de Quality of Service (QoS), que determinam as garantias de entrega das mensagens:

  1. QoS 0 - No máximo uma vez: este nível não garante a entrega. A mensagem é enviada uma vez, e o remetente não espera confirmação nem garantia de entrega da mensagem. Esse nível é adequado para dados não críticos, em que a perda de mensagens é aceitável.

  2. QoS 1 - Ao menos uma vez: este nível garante a entrega, mas pode gerar duplicatas. A mensagem é enviada pelo menos uma vez, e o remetente espera uma confirmação do destinatário. Se a confirmação não chegar, o remetente reenvia a mensagem. Esse nível é apropriado para dados críticos, em que a perda de mensagens é inaceitável.

  3. QoS 2 - Exatamente uma vez: este nível garante a entrega sem duplicatas. A mensagem é enviada exatamente uma vez, e o remetente espera uma confirmação do destinatário. Se a confirmação não chegar, o remetente reenvia a mensagem. Esse nível é adequado para dados críticos com tolerância zero à perda de mensagens.

A escolha do nível de QoS depende dos requisitos específicos da aplicação. Selecionar o nível de QoS adequado impacta a entrega das mensagens, influenciando a duplicação de mensagens e a sobrecarga na rede.

Tópicos e payloads do MQTT

Tópicos e payloads do MQTT são dois componentes essenciais do protocolo MQTT. Os tópicos funcionam como canais nos quais as mensagens são publicadas e dos quais são assinadas. Eles são hierárquicos e ajudam a organizar as mensagens.

Os payloads das mensagens contêm os dados reais a serem transmitidos. Dependendo dos requisitos da aplicação, eles podem estar em diversos formatos, como JSON, XML ou binário. O formato do payload deve ser escolhido com base nas necessidades da aplicação e nos recursos disponíveis.

Um olhar sobre casos de uso reais com MQTT

Ao explorar a eficiência do MQTT na comunicação de IoT, é fundamental examinar como esse protocolo se integra de forma fluida a dispositivos de diferentes fabricantes, como Dragino, RAK Wireless, Seeed Studio e Khomp. Vamos conhecer casos de uso reais que mostram a versatilidade do MQTT em diferentes dispositivos IoT.

  1. Sistemas SCADA com MQTT (Supervisory Control and Data Acquisition): o MQTT costuma ser integrado a sistemas SCADA para viabilizar a troca de dados em tempo real entre dispositivos de campo e o sistema central de monitoramento. Ele ajuda a coletar e gerenciar dados de vários sensores e dispositivos distribuídos por um ambiente industrial.

  2. Monitoramento de saúde com sensores vestíveis: cenários de saúde envolvem sensores vestíveis de diferentes fornecedores, cada um com recursos de monitoramento próprios. Independentemente da marca, os sensores vestíveis podem publicar dados de sinais vitais em um tópico padronizado como “health/patient1/vital-signs”. A interoperabilidade do MQTT garante uma integração sem atrito, permitindo que profissionais de saúde monitorem pacientes com diversos tipos de sensores.

  3. Monitoramento ambiental com vários sensores: o monitoramento ambiental combina sensores de vários fabricantes, fornecendo parâmetros como qualidade do ar, níveis de ruído ou detecção de radiação. A comunicação baseada em tópicos do MQTT permite que os sensores ambientais publiquem dados em tópicos compartilhados como “environment/air-quality” ou “environment/noise-levels”. Essa interoperabilidade facilita a integração de diversos sensores ambientais em um sistema de monitoramento completo.

O que o futuro reserva para o MQTT?

O MQTT se destaca como um protocolo de comunicação muito vantajoso para soluções de IoT, atraindo atenção como uma opção preferida. Ainda assim, o vasto universo de protocolos de IoT apresenta diversas alternativas, sendo o CoAP um concorrente notável. Uma característica distinta do CoAP é a capacidade de operar sobre TCP/IP e UDP, o que o diferencia do MQTT, predominantemente associado ao TCP/IP. A evolução contínua do cenário de IoT acrescenta incerteza sobre qual protocolo de comunicação vai se firmar como o mais adotado. À medida que os avanços tecnológicos seguem moldando o ecossistema de IoT, a interação dinâmica entre MQTT, CoAP e outros concorrentes vai, no fim das contas, definir o protocolo que melhor atende às necessidades diversas e em transformação das aplicações de IoT.