MQTT-SN: MQTT para rede de sensores

MQTT SN 1

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

Website | Veja + conteúdo

Engenheiro, especialista em sistemas 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. É entusiastas do movimento maker, da cultura DIY e do compartilhamento de conhecimento, publica diversos artigos sobre eletrônica e projetos open hardware.

Com iniciativas como o projeto Franzininho e projetos na área de educação, leva a cultura maker para o Brasil capacitando e incentivando professores e alunos a usarem tecnologia em suas vidas. Participou da residência hacker 2018 no Red Bull Basement.

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

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

Comentários:
Notificações
Notificar
guest
4 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Mauricio Leão
Mauricio Leão
14/06/2019 19:28

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

HENRIQUE THADEU ECCARD DE SOUZA LEITE
HENRIQUE THADEU ECCARD DE SOUZA LEITE
11/05/2018 14:45

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 »

Talvez você goste:

Séries

Menu