Introducción
En este post, vamos a analizar los posibles problemas para resolver todas tus dudas.
Últimas publicaciones
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:
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
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í.
En este archivo, vamos a añadir dos parámetros:
allow_anonymous = true
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.
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.
Pruebas
Por último, ve al directorio de Mosquitto:
Y ejecuta el comando de suscripción de Mosquitto:
mosquitto_sub -h localhost -t "I"
Donde:
-h host: localhost
-t topic:
Solución de problemas de MQTT en Windows