Solución de problemas de MQTT en Windows

Resolución de problemas para MQTT entre su PLC basado en Arduino y el sistema operativo Windows
26 de noviembre de 2021 por
Solución de problemas de MQTT en Windows
Boot & Work Corp. S.L., Fernandez Queralt Martinez

Introducción

¿Estás intentando conectar tu PLC basado en Arduino con tu ordenador a través de MQTT, pero no se conectan correctamente? ¿Has hecho nuestro
Develop your SCADA Application based on Node-RED course >>y tienes problemas al conectar los dispositivos?

En este post, vamos a analizar los posibles problemas para resolver todas tus dudas.

Últimas publicaciones

Your Dynamic Snippet will be displayed here... This message is displayed because you did not provided both a filter and a template to use.

Requisitos

Conexiones

En primer lugar, vamos a conectar un cable Ethernet desde nuestro ordenador portátil al PLC basado en Arduino, que será alimentado por una fuente de alimentación como esta:

Conexiones M-Duino 21+ - Solución de problemas MQTT en WindowsAsegúrate de que las direcciones IP están configuradas correctamente. Consulta la siguiente entrada del blog, para saber our static IP address >

En el lado del PLC, programar el PLC Arduino con el código del curso, donde se asignan correctamente los parámetros de Ethernet.




Código - Conexiones M-Duino 21+ - Solución de problemas MQTT en Windows

Ping

A continuación, vamos a verificar que podemos hacer ping a nuestro PLC basado en Arduino para confirmar que la dirección IP existe y puede aceptar peticiones.

Así que, desde tu portátil, abre la línea de comandos y ejecuta el siguiente comando para asegurarte de que puedes hacer ping para poder enviar paquetes al PLC:

ping 10.10.10.70

Línea de comandos - Solución de problemas de MQTT en Windows

Archivo de configuración

Una vez que puedas hacer ping a tu PLC, comprueba que tu archivo de configuración, tiene todo por defecto. Si es necesario, elimina Mosquitto e instálalo de nuevo. Comprueba que no hay ninguna letra o palabra escrita por error, o alguna ruta de Linux, o algo así.

Archivo de configuración - Solución de problemas de MQTT en Windows
En este archivo, vamos a añadir dos parámetros:
  1. allow_anonymous = true

  2. listener 1883


 Information

El parámetro allow_anonymous es un valor booleano que determina si los clientes que se conectan sin proporcionar un nombre de usuario pueden conectarse. Si se establece como falso, se debe crear otro medio de conexión para controlar el acceso de los clientes autenticados.

El oyente escucha en una combinación de puerto/dirección IP. Utilizando esta variable varias veces, Mosquitto puede escuchar en más de un puerto. Si se utiliza esta variable y no se da ni bind_address ni el puerto, no se iniciará la escucha por defecto. Debe indicarse el número de puerto en el que se escuchará. Opcionalmente, se puede proporcionar una dirección IP o un nombre de host como segundo argumento.  En este caso, Mosquitto intentará vincular la escucha a esa dirección y así restringir el acceso a la red e interfaz asociadas. Por defecto, Mosquitto escuchará en todas las interfaces.

Ahora, ve a:

netstat -an 

y comprueba que puedes ver que el puerto 1883 está escuchando.

1883 port - Configuration file - MQTT troubleshooting in Windows

Firewall de Windows

Como Mosquitto requiere hacer una comunicación externa, es necesario habilitar el Firewall de Windows, para las peticiones entrantes y salientes en el puerto 1883, vamos a crear las reglas. Esto se hace para que el Firewall no bloquee el servicio de Mosquitto.

Entonces, vamos a crear una nueva regla de entrada:

Ventana del Firewall de Windows Defender > Configuración avanzada > Reglas de entrada > Nueva regla... > Puerto... > TCP > Puertos locales específicos: 1883 > Permitir la conexión > Establecer el Dominio, Privado y Público como seleccionado > Y establecer un Nombre: Mosquitto. 

A continuación, ve a Reglas de salida y haz lo mismo.

Firewall de Windows - Solución de problemas de MQTT en Windows

Pruebas

Por último, ve al directorio de Mosquitto:

Directorio Mosquitto - Pruebas - Solución de problemas de MQTT en Windows

Y ejecuta el comando de suscripción de Mosquitto:

mosquitto_sub -h localhost -t "I"

Donde:

-h host: localhost
-t topic: 

¡Y empieza a obtener los datos de tu PLC basado en Arduino a través de Mosquitto!

Buscar en nuestro blog

Solución de problemas de MQTT en Windows
Boot & Work Corp. S.L., Fernandez Queralt Martinez 26 de noviembre de 2021
Compartir

¿Estás buscando tu Controlador Lógico Programable ideal?

Echa un vistazo a esta comparativa de producto de varios controladores industriales basados en Arduino.

Comparamos entradas, salidas, comunicaciones y otras especificaciones con las de los equipos de otras marcas destacadas.


Industrial PLC comparison >>>