- Introducción
-
Cómo usarlo
-
- Cuestionario
Eclipse Mosquitto: instala un broker y protégelo
Eclipse Mosquitto: tu primer broker
Eclipse Mosquitto es un broker de mensajes de código abierto que implementa MQTT 5.0, 3.1.1 y 3.1. También ofrece una librería en C para clientes MQTT y dos herramientas de línea de comandos muy útiles, mosquitto_pub y mosquitto_sub, que te permiten publicar y suscribirte desde un terminal. Es lo bastante ligero como para ejecutarse en el propio Raspberry PLC, de modo que una máquina puede tener su propio broker local.
1. Instalación
Instala el broker y los clientes en el Raspberry PLC, y los clientes en tu PC (consulta la web de Mosquitto para otros sistemas):
sudo apt install mosquitto mosquitto-clientsEl paquete arranca automáticamente un broker en el equipo, así que no necesitas un broker externo para hacer pruebas. Desde la versión 2.0, Mosquitto solo acepta conexiones locales por defecto. Para que otros dispositivos se conecten por la red necesitas un archivo de configuración, y un broker accesible desde la red debe exigir autenticación: un broker abierto permite que cualquiera en la red lea los datos de tu máquina y publique comandos.
2. Configura un listener de red con autenticación
Crea un archivo de contraseñas (te pedirá la contraseña):
sudo mosquitto_passwd -c /etc/mosquitto/passwd plcuserCrea /etc/mosquitto/conf.d/network.conf con:
listener 1883 0.0.0.0
allow_anonymous false
password_file /etc/mosquitto/passwdReinicia el servicio:
sudo systemctl restart mosquitto.service3. Prueba con publicación y suscripción
Conecta el PC al Raspberry PLC por Ethernet (el PLC usa 10.10.10.20 por defecto; asigna al PC otra dirección de la misma red). En el PC, suscríbete a un topic:
mosquitto_sub -h 10.10.10.20 -u plcuser -P 'your-password' -t "topic"Desde otro terminal, publica un mensaje:
mosquitto_pub -h 10.10.10.20 -u plcuser -P 'your-password' -t "topic" -m "hello this is a test"El suscriptor muestra el mensaje, lo que demuestra que la comunicación funciona:

Solución de problemas
- Connection refused: comprueba que la línea
listenerestá en un archivo dentro de/etc/mosquitto/conf.d/, que el servicio se ha reiniciado sin errores (systemctl status mosquitto) y que el PC y el PLC están en la misma red. - Not authorised: comprueba el usuario y la contraseña, y que
password_fileapunta al archivo que has creado.
Para el tráfico que sale de la red de máquinas, añade TLS (puerto 8883). Descubre el Raspberry PLC en www.industrialshields.com.
No hay comentarios por ahora.