Comunicação cliente-servidor através do protocolo MQTT-SN: IOT Parte 41

Comunicação cliente-servidor através do protocolo MQTT-SN: IOT Parte 41

No tutorial anterior, foi discutida a instalação e configuração do RSMB Broker para implementação do protocolo MQTT-SN. Neste tutorial, dois dispositivos serão configurados para se comunicarem pelo protocolo MQTT-SN usando RSMB Broker. Um desses dispositivos será configurado como Cliente MQTT-SN e outro como Servidor MQTT-SN.
O MQTT-SN precisa de um gateway quando dispositivos WSN (Wireless Sensor Network) desejam enviar dados para o servidor MQTT que roda no protocolo TCP/IP ou desejam se comunicar com clientes MQTT. Os dispositivos WSN não possuem pilha TCP/IP, eles simplesmente rodam em rede Zigbee, Z-wave, Bluetooth Low Energy ou UDP. O MQTT-SN passa por esses protocolos e o Gateway cria uma ponte entre o protocolo MQTT-SN e o protocolo MQTT. Os dispositivos WSN enviam a mensagem para o gateway e o gateway encaminha a mensagem para os corretores de escuta.
Imagem mostrando a comunicação cliente-servidor via MQTT-SN usando Raspberry Pi como gateway MQTT-SN
Figura 1: Imagem mostrando a comunicação cliente-servidor via MQTT-SN usando Raspberry Pi como gateway MQTT-SN
Componentes necessários –
1) Corretor RSMB – MQTT-SN junto com o corretor MQTT
2) Corretor Mosquitto – Corretor MQTT
3) Raspberry pi 3 como gateway MQTT-SN
4) Um PC (rodando em Linux) como corretor MQTT
5) Mobile como cliente MQTT
6) Ferramentas MQTT-SN – clientes MQTT-SN.
Configuração cliente-servidor
As etapas a seguir serão executadas para configurar o sistema Cliente-Servidor –
1) Configure o Raspberry pi para escutar pacotes na porta MQTT-SN, bem como na porta MQTT.
2) Configure o corretor Mosquitto para atuar como corretor MQTT para escutar pacotes em uma porta específica.
3) Crie uma ponte entre MQTT-SN e MQTT para que qualquer mensagem recebida na porta MQTT-SN possa ser encaminhada para portas MQTT.
4) Configure o cliente de publicação MQTT-SN para enviar pacotes na porta MQTT-SN.
5) Configure o cliente de assinatura MQTT-SN para receber o pacote na porta MQTT-SN.
6) Configure o protocolo MQTT no cliente móvel. Estamos usando o aplicativo de painel MQTT para configurar o celular como cliente MQTT.
7) Anote o endereço do corretor MQTT no cliente móvel e a porta na qual o corretor está escutando.
8) Inscreva-se no tópico que o cliente MQTT-SN registrou no corretor RSMB.
9) Publique os dados no corretor RSMB e veja se os dados são recebidos no lado da assinatura MQTT-SN ou não. Em seguida, veja se os dados são recebidos no cliente MQTT móvel ou não.
10) O cliente de assinatura recebe o pacote do Gateway.
Para configurar o Raspberry Pi para atuar como Gateway, siga as etapas abaixo –
1) Baixe o corretor RSMB no diretório inicial ou em qualquer diretório de sua preferência.
2) No terminal, vá para a pasta src /home/user/mosquitto.rsmb/rsmb/src
3) Execute o comando make para tornar o arquivo executável. O arquivo executável broker_mqtts pode ser visto lá. A saída será a seguinte –
Captura de tela do comando para tornar o arquivo executável
Fig. 2: Captura de tela do comando para tornar o arquivo executável
4) Quando o broker_mqtts é executado pelo comando – sudo./broker_mqtts, o corretor por padrão escuta na porta 1883.
Agora, a configuração padrão precisa ser alterada para que o corretor possa escutar MQTT-SN na porta definida pelo usuário e possa criar uma ponte para o corretor MQTT. Este intermediário começará a escutar na porta 1887 para MQTT, 1886 para MQTT-SN, 1888 para ponte local de MQTT-SN para MQTT e 1889 para ponte remota de MQTT-SN para MQTT. O arquivo de configuração pode ter a seguinte aparência –
Captura de tela do arquivo de configuração MQTT-SN
Fig. 3: Captura de tela do arquivo de configuração MQTT-SN
Agora o broker está pronto com o arquivo de configuração. A seguir, o corretor Mosquitto precisa ser configurado no PC. O arquivo Mosquitto precisa ser configurado para escutar na porta 1889. Edite o arquivo de configuração do Mosquitto comentando tudo e escreva a seguinte linha –
Captura de tela da linha que deve ser comentada no arquivo de configuração MQTT-SN
Fig. 4: Captura de tela da linha que deve ser comentada no arquivo de configuração MQTT-SN
Inicie o corretor Mosquitto com o arquivo de configuração carregado –
Captura de tela do comando para iniciar o Mosquitto Broker com arquivo de configuração carregado
Fig. 5: Captura de tela do comando para iniciar o Mosquitto Broker com arquivo de configuração carregado
A saída será semelhante a esta –
Captura de tela do Mosquitto Broker
Figura 6: Captura de tela do Mosquito Broker
Agora, execute o broker com o arquivo de configuração carregado usando o seguinte comando –
Captura de tela do comando para executar o corretor com arquivo de configuração carregado
A saída no terminal será semelhante a esta –
Captura de tela do carregamento da configuração no Mosquitto Broker
Figura 7: Captura de tela do comando para executar o corretor com arquivo de configuração carregado

Agora, pode-se ver que o corretor RSMB estabeleceu uma conexão de ponte com o Mosquitto, bem como com o corretor local em execução do Mosquitto. Agora, o Gateway está ativo e o corretor Mosquitto está ouvindo. É hora de testar se o gateway está funcionando corretamente ou não. A ferramenta cliente MQTT-SN precisa ser usada no Raspberry Pi para testar o gateway local. Para publicar os dados no gateway local, execute o seguinte comando no terminal –

Captura de tela do comando para publicar os dados no gateway local
Fig. 8: Captura de tela da configuração de carregamento no Mosquitto Broker
No comando acima,
-h – é para endereço IP do gateway
-p – é a porta na qual o broker MQTT-SN está escutando
-t – é tópico
-m – é mensagem
-d – está depurando todos os níveis
Quando o comando é executado, a seguinte saída é obtida –
Captura de tela da publicação de mensagens no RSMB Broker
Fig. 9: Captura de tela do comando para publicar os dados no gateway local
Todo o processo é executado em segundo plano quando o cliente se conecta ao corretor e registra o pacote no servidor. Agora o mesmo tópico pode ser inscrito executando o seguinte comando –
Captura de tela do comando para assinar o tópico
Fig. 10: Captura de tela do comando para assinar o tópico
A saída no terminal será semelhante a esta –
Captura de tela de tópicos de assinatura no RSMB Broker
Fig. 11: Captura de tela de tópicos de assinatura no corretor RSMB
Agora, assine o mesmo tópico “olá” também no cliente móvel que está rodando no protocolo MQTT. Conecte o cliente móvel a qualquer servidor MQTT, como o corretor Mosquitto de PC ou o corretor Mosquitto de Raspberry Pi. Então, a mesma mensagem também será recebida no lado do cliente móvel, quando a mensagem no cliente mqtt-sn for publicada.
Dessa forma, dois dispositivos podem se comunicar entre si através do protocolo MQTT-SN e encaminhar os dados também para o servidor MQTT. Aqui, existem vários clientes MQTT que assinam o mesmo tópico. Todos receberão a mesma mensagem publicada em portas diferentes. O corretor RSMB transmite o pacote UDP para TCP ou MQTT. Mas se houver algum outro protocolo como Zigbee ou BLE, será necessário algum tipo de encaminhador MQTT-SN entre o gateway e o dispositivo WSN para que o encaminhador possa converter a rede diferente em rede UDP para que a comunicação adicional possa ser processada da mesma maneira. .
No próximo tutorial, aprenda a configurar a comunicação segura cliente-servidor através do protocolo de segurança TLS.

Related Content

Back to blog

Leave a comment

Please note, comments need to be approved before they are published.