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.4.15a-install-win32.exe, que é a compilação nativa aplicável ao Windows Vista ou superior.

2. Ao executar o arquivo baixado, será exibida uma tela informando sobre as dependências OpenSSL e pThreads.

3. Baixe o arquivo Pthreadvc2.dll. Em seguida, baixe e instale o instalador do Win32 OpenSSL v1.0.2c Light. É preciso obter alguns arquivos DLL dessa instalação; isso será visto em etapas posteriores.

4. A seguir, selecione o componente Service e clique em Next.

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

6. Com a instalação concluída, é preciso copiar os seguintes arquivos para a pasta onde o Mosquitto está instalado.

  • Dependências – win32
  • DLLs necessárias: libeay32.dll ssleay32.dll (Procure esses arquivos na pasta OpenSSL-Win32 ou OpenSSL-Win32\Bin)
  • DLLs necessárias: pthreadVC2.dll

7. Será necessário reinstalar o Mosquitto para que seu serviço seja configurado corretamente, já que agora seus pré-requisitos foram incluídos na pasta C:\Program Files (x86)\mosquitto.

8. 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

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

Deixe seu Comentário

Seu endereço de e-mail não será publicado. Campos marcados com asterisco são obrigatórios *