Cómo instalar Mosquitto: el MQTT-Broker en Raspberry PLC

¡Aprende qué es MQTT y cómo funciona en tu PLC Raspberry para la automatización de Raspberry Pi!
3 de septiembre de 2021 por
Cómo instalar Mosquitto: el MQTT-Broker en Raspberry PLC
Boot & Work Corp. S.L., Fernandez Queralt Martinez

Introducción

Message Queuing Telemetry Transport o MQTT es un protocolo de red ligero de publicación-suscripción que transporta mensajes entre dispositivos.

MQTT se utiliza para el intercambio de datos entre dispositivos limitados y aplicaciones de servidor. Mantiene los requisitos de ancho de banda al mínimo absoluto, maneja redes poco fiables, requiere poco esfuerzo de implementación para los desarrolladores y es, por tanto, ideal para la comunicación máquina a máquina (M2M).

En este post, aprenderemos a crear un servidor Mosquitto y haremos una red MQTT para publicar y suscribirse a mensajes con múltiples PLC basados en Raspberry Pi.

Enlaces relacionados

Cómo

Conectar Raspberry PLC al Wi-Fi

Leer 

Raspberry PLC

Familia de productos para automatización industrial

Ver 

Cómo

Programar las salidas de interrupción del Raspberry PLC con Python

Leer 

Conceptos básicos

Salidas Analógicas del Raspberry Pi PLC

Leer 

Touchberry Pi

Familia de productos para monitorización control

Ver 

Cómo

Encontrar tu controlador lógico programable industrial perfecto

Leer 


¿Qué es MQTT y cómo funciona?

MQTT es un protocolo de publicación/suscripción que permite a los dispositivos del borde de la red publicar en un intermediario. Los clientes se conectan a este intermediario, que media la comunicación entre los dispositivos. Cuando otro cliente publica un mensaje en un tema suscrito, el broker reenvía el mensaje a cualquier cliente que se haya suscrito. 

En la siguiente imagen, puedes ver un diagrama de ejemplo de una red MQTT. 
Si el sensor de temperatura publica un mensaje, los dispositivos que se suscriban al mensaje, enviado por el sensor de temperatura, lo recibirán.

Diagrama de una red MQTT-Qué es MQTT y cómo funciona-Cómo instalar Mosquitto: el MQTT-Broker en Raspberry PLC

¿Y cómo pueden los dispositivos suscribirse a un mensaje? Pueden hacerlo con los temas. 

En MQTT, la palabra topic (temas)se refiere a una cadena UTF-8 que el broker utiliza para filtrar los mensajes de cada cliente conectado. El tema se compone de uno o más niveles de tema. Cada nivel de tema está separado por una barra diagonal (separador de nivel de tema). En comparación con una cola de mensajes, los temas MQTT son muy ligeros.

Con el ejemplo de la imagen anterior, sólo el dispositivo que se suscribe a un tema específico, recibirá el mensaje de ese tema.

El dispositivo se suscribe a un tema específico-Diagrama de una red MQTT-Qué es MQTT y cómo funciona-Cómo instalar Mosquitto: el MQTT-Broker en Raspberry PLC
  • En este ejemplo, el sensor de temperatura publicaría el tema "dormitorio/temp" y sólo el dispositivo 2 suscrito a ese tema recibiría el mensaje.
  • El sensor de humedad publicaría el tema "dormitorio/humedad" y sólo el dispositivo 1 suscrito a ese tema recibiría el mensaje.
  • Y el dispositivo número 3 suscrito al tema cocina/temp, no recibiría ningún mensaje.

MQTT-Broker

Para configurar un MQTT-Broker, sigamos los siguientes pasos:

1. Comprueba tu modelo Raspbian:

lsb_release -a

2. Descárgate el repositorio:

sudo apt-key add mosquitto-repo.gpg.key
cd /etc/apt/sources.list.d/

3. Selecciona el repositorio para la versión de tu Raspbian. En nuestro caso sería la versión Buster. Copia y pega solo la línea que corresponda con tu Raspbian: 

sudo wget http://repo.mosquitto.org/debian/mosquitto-wheezy.list
sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list
sudo wget http://repo.mosquitto.org/debian/mosquitto-stretch.list
sudo wget http://repo.mosquitto.org/debian/mosquitto-buster.list

Instala Mosquitto

Instalar Mosquitto en las principales distribuciones de Linux es igual de fácil, ya que la mayoría lo tienen incorporado en sus repositorios. Es el caso de Ubuntu, Debian o Raspbian (Raspberry Pi). Así que sólo tenemos que ejecutar los comandos.

sudo apt update
sudo apt upgrade
sudo apt-get install mosquitto mosquitto-clients

Si queremos ejecutar Mosquitto cuando se inicie el sistema, ejecuta el siguiente comando:

sudo systemctl enable mosquitto.service

Provando MQTT

Ahora vamos a publicar y suscribir un tema para comprobar que la instalación se ha realizado correctamente.

Para ello, Mosquitto proporciona dos utilidades 'mosquitto_sub' y 'mosquitto_pub', una para suscribir y otra para publicar.

Conectado a nuestro controlador industrial Raspberry Pi PLC, vamos a comprobar las direcciones IP:

ifconfig
Probando MQTT-Qué es MQTT y cómo funciona-Cómo instalar Mosquitto: el MQTT-Broker en Raspberry PLC

Vamos a configurar el MQTT-Broker a uno de los PLC de código abierto Raspberry Pi con la dirección IP 192.168.1.4. Los otros serán los clientes Mosquitto.

Desde el PLC industrial Raspberry Pi número 2, por ejemplo, suscríbase al tema hello/world.

mosquitto_sub -d -h 192.168.1.4 -p 1883 -t "hello/world"

Desde el PLC industrial Raspberry número 1, por lo que el MQTT-broker, publicar un mensaje:

mosquitto_pub -d -h localhost -p 1883 -t "hello/world" -m "Alarm"

Finalmente, podrás obtener el mensaje del PLC que se ha suscrito al tema:

Solución de problemas

Si no puedes suscribirte al editor con un mensaje "Error: Connection refused", puedes añadir las siguientes líneas al archivo /etc/mosquitto/mosquitto.conf :

allow_anonymous true
listener 1883 0.0.0.0

Buscar en nuestro blog

Cómo instalar Mosquitto: el MQTT-Broker en Raspberry PLC
Boot & Work Corp. S.L., Fernandez Queralt Martinez 3 de septiembre 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 >>>