MQTT-SN: MQTT para rede de sensores

O MQTT é muito usado em projetos de IoT. Apesar de não ser um protocolo novo, tem um bom desempenho para aplicações atuais. Porém, o MQTT depende de uma camada de transporte que entregue uma sequência ordenada e sem perda de pacotes, como TCP por exemplo, para o seu funcionamento. Os sensores e atuadores geralmente são dispositivos com baixa capacidade de processamento, armazenamento e muitas vezes são alimentados por baterias. Tais dispositivos não estão preparados para trabalhar com TCP-IP, já que é um protocolo pesado e com diversos recursos para envio de pacotes, que geralmente não são necessários para uma rede de sensores.

 

Então, como podemos usar as vantagens do MQTT para uma rede de sensores?

 

Assim nasceu o MQTT-SN (MQTT for Sensor Network), um protocolo específico para redes de sensores e não dependente do TCP-IP para operar. Pode operar sobre qualquer camada de transporte, como ZigBee, bluetooth, UDP, comunicação serial cabeada, entre outras. Também é otimizado para implementação em dispositivos de baixo custo e baixo consumo (alimentados por bateria), com processamento e recursos de armazenamento limitados.

 

 

MQTT vs MQTT-SN

 

O MQTT-SN foi desenvolvido para ser o mais próximo possível do MQTT, porém adaptado para comunicação sem fio com restrições.

 

Em comparação ao MQTT, pode-se citar as seguintes diferenças:

 

 

MQTT

MQTT-SN

Comunicação

TCP-IP

UDP, não IP

Rede

Ethernet, WIFI, 3G

Zigbee, Bluetooth, RF, etc

Tamanho mínimo de mensagem

2 bytes - PING

1 byte

Tamanho máximo de mensagem

<= 24 MB

< 128 bytes

Alimentação por bateria

 

SIM

Clientes em modo Sleep

 

SIM

Connectionless mode (QoS -1)

 

SIM

 

Além disso, o MQTT-SN tem suporte ao tópico ID ao invés do nome do tópico. O tópico ID usa 2 bytes, reduzindo a quantidade de memória e processamento.

 

 

Arquitetura do MQTT-SN

 

A arquitetura é exibida na figura 1, a seguir:

 

Arquitetura do MQTT-SN
Figura 1 - Arquitetura.

 

Conforme podemos observar na figura 1, a arquitetura é composta por 3 tipos de componentes:

  • Clients;
  • Gateways e;
  • Forwarders.

 

Os clientes MQTT são conectados ao broker MQTT via gateways MQTT usando o protocolo MQTT-SN. Há também casos onde o cliente acessa o broker através de forwarders, nesse caso o forwarder apenas encapsula os pacotes MQTT-SN e envia para o Gateway MQTT-SN.

 

 

Exemplos de projetos

 

Caso tenha interesse em explorar esse protocolo, você pode usar os seguintes projetos como base:

 

 

Saiba mais

 

MQTT - Protocolos para IoT

Use o MQTT DASH para controlar uma lâmpada remotamente

Conectando-se ao DeviceHub com NodeMCU e MQTT

 

 

Referências

 

MQTT For Sensor Networks (MQTT-SN) Protocol Specification

MQTT-SN: MQTT for UDP, ZigBee and Other Transports

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Fábio Souza
Engenheiro com experiência no desenvolvimento de projetos eletrônicos embarcados. Hoje é diretor de operações do portal Embarcados, onde trabalha para levar conteúdos de eletrônica, sistemas embarcados e IoT para o Brasil. Também atua no ensino eletrônica e programação pelo Brasil. É entusiastas do movimento maker, da cultura DIY e do compartilhamento de conhecimento, publica diversos artigos sobre eletrônica e projetos open hardware, como o projeto Franzininho Participou da residência hacker 2018 no Redbull Basement. Quando não está ministrando palestras, cursos ou workshops, dedica seu tempo “escovando bits” ou projetando placas eletrônicas.

4
Deixe um comentário

avatar
 
2 Comment threads
2 Thread replies
1 Followers
 
Most reacted comment
Hottest comment thread
3 Comment authors
Mauricio LeãoFábio SouzaHENRIQUE THADEU ECCARD DE SOUZA LEITE Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Mauricio Leão
Visitante
Mauricio Leão

Somos obrigados a comprar um ingresso para poder ler as materias?

HENRIQUE THADEU ECCARD DE SOUZA LEITE
Visitante
HENRIQUE THADEU ECCARD DE SOUZA LEITE

Boa tarde! Preciso muito aprender a fundo sobre Mqtt SN para utilizar em meus projetos. Achei complicado o material do Mqtt SN e gostaria de ajuda para indicar um material ou código (mesmo que tenha custo financeiro) onde eu consiga de maneira fácil e intuitiva aprender sobre o Mqtt SN com clientes... Clientes e forwarders , vários forwarders no caminho e com o Gateway encinhado para o broker, ou seja em uma situação que eu necessite de vários forwarders para chegar o sinal no Gateway seja atendido. Pode me ajudar? Tenho dúvidas também se um forwarders consegue coletar dados de… Leia mais »