ÍNDICE DE CONTEÚDO
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:
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
Use o MQTT DASH para controlar uma lâmpada remotamente
Conectando-se ao DeviceHub com NodeMCU e MQTT
Referências
Somos obrigados a comprar um ingresso para poder ler as materias?
Mauricio, não entendi a sua pergunta. Não está conseguindo acessar os artigos do site?
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 »
Olá Henrique, desculpe pela demora. Não recebi a notificação de comentário. Infelizmente a documentação sobre MQTT-SN é bem escassa na internet. Recomento a especificação do protocolo: https://mqtt.org/new/wp-content/uploads/2009/06/MQTT-SN_spec_v1.2.pdf
Em breve será publicado outros artigos explorando os recursos do MQTT-SN.
Abraços
O MQTT-SN é uma ótima ótima opção para IoT. Venho usando e gostado muito.