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

Comunicación cliente-servidor mediante protocolo MQTT-SN: IOT Parte 41

En el tutorial anterior, se analizó la instalación y configuración de RSMB Broker para implementar el protocolo MQTT-SN. En este tutorial, se configurarán dos dispositivos para comunicarse a través del protocolo MQTT-SN utilizando RSMB Broker. Uno de estos dispositivos se configurará como Cliente MQTT-SN y el otro como Servidor MQTT-SN.
MQTT-SN necesita una puerta de enlace cuando los dispositivos WSN (red de sensores inalámbricos) desean enviar datos al servidor MQTT que se ejecuta en el protocolo TCP/IP o desean comunicarse con clientes MQTT. Los dispositivos WSN no tienen una pila TCP/IP, simplemente se ejecutan en una red Zigbee, Z-wave, Bluetooth Low Energy o UDP. MQTT-SN pasa a través de estos protocolos y la puerta de enlace crea un puente entre el protocolo MQTT-SN y el protocolo MQTT. Los dispositivos WSN envían el mensaje a la puerta de enlace y la puerta de enlace reenvía el mensaje a los intermediarios que escuchan.
Imagem mostrando a comunicação cliente-servidor via MQTT-SN usando Raspberry Pi como gateway MQTT-SN
Figura 1: Imagen que muestra la comunicación cliente-servidor a través de MQTT-SN usando Raspberry Pi como puerta de enlace MQTT-SN
Componentes necesarios –
1) Corredor RSMB: MQTT-SN junto con el corredor MQTT
2) Corredor Mosquitto – Corredor MQTT
3) Raspberry pi 3 como puerta de enlace MQTT-SN
4) Una PC (con Linux) como agente MQTT
5) Móvil como cliente MQTT
6) Herramientas MQTT-SN – Clientes MQTT-SN.
Configuración cliente-servidor
Se realizarán los siguientes pasos para configurar el sistema Cliente-Servidor –
1) Configure la Raspberry pi para escuchar paquetes en el puerto MQTT-SN y en el puerto MQTT.
2) Configure el corredor Mosquitto para que actúe como un corredor MQTT para escuchar paquetes en un puerto específico.
3) Cree un puente entre MQTT-SN y MQTT para que cualquier mensaje recibido en el puerto MQTT-SN pueda reenviarse a los puertos MQTT.
4) Configure el cliente de publicación MQTT-SN para enviar paquetes en el puerto MQTT-SN.
5) Configure el cliente de suscripción MQTT-SN para recibir el paquete en el puerto MQTT-SN.
6) Configure el protocolo MQTT en el cliente móvil. Estamos utilizando la aplicación del panel MQTT para configurar el teléfono móvil como cliente MQTT.
7) Anote la dirección del corredor MQTT en el cliente móvil y el puerto en el que escucha el corredor.
8) Suscríbase al tema que el cliente MQTT-SN registró con el corredor RSMB.
9) Publique los datos en el corredor RSMB y vea si los datos se reciben en el lado de la suscripción MQTT-SN o no. Luego vea si los datos se reciben en el cliente MQTT móvil o no.
10) El cliente de suscripción recibe el paquete del Gateway.
Para configurar Raspberry Pi para que actúe como puerta de enlace, siga los pasos a continuación:
1) Descargue el corredor RSMB desde su directorio de inicio o cualquier directorio que prefiera.
2) En la terminal, vaya a la carpeta src /home/user/mosquitto.rsmb/rsmb/src
3) Ejecute el comando make para que el archivo sea ejecutable. El archivo ejecutable broker_mqtts se puede ver allí. El resultado será el siguiente:
Captura de tela do comando para tornar o arquivo executável
Fig. 2: Captura de pantalla del comando para convertir el archivo en ejecutable
4) Cuando broker_mqtts se ejecuta con el comando – sudo./broker_mqtts, el broker escucha de forma predeterminada en el puerto 1883.
Ahora es necesario cambiar la configuración predeterminada para que el corredor pueda escuchar MQTT-SN en el puerto definido por el usuario y pueda crear un puente con el corredor MQTT. Este intermediario comenzará a escuchar en el puerto 1887 para MQTT, 1886 para MQTT-SN, 1888 para el puente local de MQTT-SN a MQTT y 1889 para el puente remoto de MQTT-SN a MQTT. El archivo de configuración puede verse así:
Captura de tela do arquivo de configuração MQTT-SN
Fig. 3: Captura de pantalla del archivo de configuración MQTT-SN
Ahora el corredor está listo con el archivo de configuración. A continuación, es necesario configurar el corredor Mosquitto en la PC. El archivo Mosquitto debe configurarse para escuchar en el puerto 1889. Edite el archivo de configuración de Mosquitto comentando todo y escriba la siguiente línea:
Captura de tela da linha que deve ser comentada no arquivo de configuração MQTT-SN
Fig. 4: Captura de pantalla de la línea que debe comentarse en el archivo de configuración MQTT-SN
Inicie el corredor Mosquitto con el archivo de configuración cargado –
Captura de tela do comando para iniciar o Mosquitto Broker com arquivo de configuração carregado
Fig. 5: Captura de pantalla del comando para iniciar Mosquitto Broker con el archivo de configuración cargado
La salida se verá así:
Captura de tela do Mosquitto Broker
Figura 6: captura de pantalla de Mosquito Broker
Ahora, ejecute el intermediario con el archivo de configuración cargado usando el siguiente comando:
Captura de tela do comando para executar o corretor com arquivo de configuração carregado
La salida en la terminal se verá así:
Captura de tela do carregamento da configuração no Mosquitto Broker
Figura 7: Captura de pantalla del comando para ejecutar el intermediario con el archivo de configuración cargado

Ahora, se puede ver que el corredor RSMB ha establecido una conexión puente con Mosquitto, así como con el corredor Mosquitto local. Ahora el Gateway está activo y el corredor Mosquitto está escuchando. Es hora de probar si la puerta de enlace funciona correctamente o no. Es necesario utilizar la herramienta cliente MQTT-SN en Raspberry Pi para probar la puerta de enlace local. Para publicar los datos en la puerta de enlace local, ejecute el siguiente comando en la terminal:

Captura de tela do comando para publicar os dados no gateway local
Fig. 8: Captura de pantalla de la configuración de carga en Mosquitto Broker
En el comando anterior,
-h – es para la dirección IP de la puerta de enlace
-p – es el puerto en el que escucha el broker MQTT-SN
-t – es de actualidad
-m – es mensaje
-d – está depurando todos los niveles
Cuando se ejecuta el comando, se obtiene el siguiente resultado:
Captura de tela da publicação de mensagens no RSMB Broker
Fig. 9: Captura de pantalla del comando para publicar datos en la puerta de enlace local
Todo el proceso se ejecuta en segundo plano cuando el cliente se conecta al corredor y registra el paquete en el servidor. Ahora se puede suscribir al mismo tema ejecutando el siguiente comando:
Captura de tela do comando para assinar o tópico
Fig. 10: Captura de pantalla del comando para suscribirse al tema
La salida en la terminal se verá así:
Captura de tela de tópicos de assinatura no RSMB Broker
Fig. 11: Captura de pantalla de temas de suscripción en el corredor RSMB
Ahora suscríbase al mismo tema "hola" también en el cliente móvil que se ejecuta en el protocolo MQTT. Conecte el cliente móvil a cualquier servidor MQTT, como el corredor PC Mosquitto o el corredor Raspberry Pi Mosquitto. Luego, el mismo mensaje también se recibirá en el lado del cliente móvil cuando se publique el mensaje en el cliente mqtt-sn.
De esta manera, dos dispositivos pueden comunicarse entre sí a través del protocolo MQTT-SN y también reenviar los datos al servidor MQTT. Aquí, hay varios clientes MQTT suscribiéndose al mismo tema. Todos recibirán el mismo mensaje publicado en diferentes puertos. El intermediario RSMB transmite el paquete UDP a TCP o MQTT. Pero si hay algún otro protocolo como Zigbee o BLE, entonces necesitará algún tipo de reenviador MQTT-SN entre la puerta de enlace y el dispositivo WSN para que el reenviador pueda convertir la red diferente en una red UDP para que se puedan procesar más comunicaciones en el mismo camino . .
En el siguiente tutorial, aprenderá cómo configurar una comunicación segura cliente-servidor a través del protocolo de seguridad TLS.

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.