Aplicação exemplo: Driver MQTT em comunicação com Broker Mosquitto MQTT.

Neste artigo, será criado um ambiente de demonstração das configurações básicas de um driver MQTT em comunicação com um Broker Mosquitto MQTT, com um cliente (MQTT Lens) conectado para fins de teste em cenários de publicação/assinatura de Mensagens MQTT.

A. Protocolo MQTT (Message Queue Telemetry Transport)

O MQTT é um dos melhores protocolos de rede para dispositivos de Internet das Coisas (IoT), tendo sido projetado para um transporte extremamente leve de mensagens. Com o MQTT, o dispositivo pode “ouvir” e ser notificado apenas quando houver alguma alteração na variável. Dessa forma, a conexão permanece aberta, mas os dados só serão transmitidos quando necessário, o que contribui para a economia de bateria, largura de banda da rede e uma melhora em geral dos recursos em tempo real.

Neste protocolo, o ponto de comunicação central é o Broker MQTT, que é responsável por gerenciar todas as mensagens entre os remetentes e os receptores. O protocolo MQTT define dois tipos de entidades na rede: um message broker e inúmeros clientes. O broker é um servidor que recebe todas as mensagens dos clientes e, em seguida, roteia essas mensagens para os clientes de destino relevantes. Um cliente é qualquer coisa que possa interagir com o broker e receber mensagens; exemplos de cliente são sensorores de IoT em campo ou aplicativos em um data center que processam dados de IoT.

A sequência de comunicação é a seguinte:

  1. O cliente conecta-se ao broker. Ele pode assinar qualquer “tópico” de mensagem no broker.
  2. O cliente publica as mensagens em um tópico, enviando a mensagem e o tópico ao broker.
  3. Em seguida, o broker encaminha a mensagem a todos os clientes que assinam esse tópico.

 

B. Instalação do Mosquitto MQTT Broker

1. Faça o download do mosquito na seção Download do site Mosquitto.org. Neste exemplo, usaremos o instalador mosquitto-1.6.2-install-windows-x86, que é a compilação nativa aplicável ao Windows Vista ou superior.

2. Execute o arquivo baixado, selecione o componente Service e clique em Next.

3.  Selecione o local de instalação e clique em Install.

4. Inicie o serviço Mosquitto Broker, através da opção: Painel de Controle–Ferramentas Administrativas–Serviços (services.msc).

5. Para verificar se o Broker está funcionando, a partir do prompt utilize o comando netstat -an.

 

C. Teste com cliente MQTTlens

O MQTT Lens é uma extensão do Chrome que será utilizada para se conectar ao MQTT Broker.

1. Para adicionar a extensão, clique neste endereço.

2. Depois de instalar a extensão, clique no aplicativo de instalação ou inicialização e execute o complemento.

3. Adicione a conexão ao broker.

4. Ao clicar em Criar Conexão, você será levado para a tela onde será preciso fornecer as informações de publicação e assinatura para testar o Broker.

 

Subscribe: Plant-1/Sensor-001/Data/#
Publish: Plant-1/Sensor-001/Data/
Message: {"Temperature":25,"Humidity":44}

5. No exemplo acima, note que o símbolo # na caixa Subscribe assina todo o conteúdo disponível no tópico Plant-1/Sensor-001/Data/.

6.  Informações sobre a mensagem podem ser obtidas clicando no botão Informações ao lado direito da mensagem.

 

D. Configurando o Driver MQTT para comunicar com o Broker Mosquitto

1. Para que o driver receba a mensagem enviada pelo Broker, será preciso criar o seguinte template JSON para extrair a mensagem:

{"Temperature":"E3VAL",  "Humidity":"E3VAL"}

2. Na aba Ethernet, informe o endereço IP e a porta utilizada pelo broker.

3. Como a palavra-chave utilizada no template para os valores extraídos é igual a E3VAL, será preciso criar um tag bloco com dois elementos, que receberá um valor em cada item.

4. No parâmetro Item do tag, deve-se especificar o tópico e o template (Plant-1/Sensor-001/Data/;Plant) desejado.

A aplicação exemplo em anexo foi desenvolvida no Elipse E3 v4.8.300.

Anexos:

App.zip
Mosquitto-1.6.2-install-windows-x86.zip

Este artigo foi útil? Was this post helpful?
Yes2
No0

Leave a Reply

Your email address will not be published.Required fields are marked *

 
Aplicação DemoElipse MQTT