Instalación de Mosquitto MQTT Broker
¡Hola, muy buenas comunidad! 🙂
En este post vamos a realizar una breve introducción al popular protocolo de mensajería MQTT, sus características más importantes y su implementación en Mosquitto.
¿Qué es MQTT?
Principalmente, este protocolo se usa para intercambiar mensajes entre dispositivos con unos recursos limitados como memoria o ancho de banda.
La implementación está realizada sobre el protocolo TCP/IP teniendo en cuenta estos recursos limitados y posibles problemas en la conectividad y en la red.
En la actualidad, se ha convertido en la solución estándar de la industria para dispositivos IoT, como pueden ser sensores o la nueva Raspberry Pi Zero 2 W.
Ventajas
- Tiene una API muy simple, que permite desarrollar aplicaciones de forma ágil y rápida.
- Es un protocolo ligero, pensado para utilizarse en dispositivos con pocos recursos, malas latencias y conectividad.
- Está ampliamente extendido en proyectos IoT.
Inconvenientes
- Los brokers no escalan tan bien como otros sistemas y no se incluye buffering.
- No incorpora capacidades de procesamiento de datos.
- El reprocesamiento de eventos no está contemplado.
Instalación
Nos podemos conectar de manera remota a través de puTTY o realizar la instalación de manera manual con Raspberry Pi OS o cualquiera de sus distribuciones Linux para Raspberry Pi. Por defecto MQTT utiliza el puerto 1883.
Primero de todo, nos aseguramos que el sistema operativo está actualizado:
sudo apt-get update
sudo apt-get upgrade
Instalamos el cliente Mosquitto con este comando
sudo apt install mosquitto mosquitto-clients
Habilitamos y activamos el servicio
sudo systemctl enable mosquitto
sudo systemctl start mosquitto
Vamos ahora a probar si MQTT funciona correctamente. Debería aparecernos active (running)
sudo systemctl status mosquitto
Introducimos el siguiente comando para que la primera consola reciba información, y la segunda consola para enviar información y ver si la primera consola recibe esa información
mosquitto_sub -h localhost -t "#" -v
mosquitto_pub -h localhost -t "sala" -m "mensaje"
Para parar el servicio, ejecutamos este comando
sudo systemctl stop mosquitto
Posibles errores en MQTT
Comprobamos desde puTTY nuestra instalación MQTT introduciendo la siguiente línea:
sudo cat /etc/mosquitto/conf.d/default.conf
Si devuelve un mensaje del tipo:
“cat: /etc/mosquitto/conf.d/default.conf: No such file or directory”
Significa que necesitas crear ese fichero de configuración básica, para ello puedes usar la siguiente línea en Putty:
sudo nano /etc/mosquitto/conf.d/default.conf
Introducimos los siguientes comandos, el «listener» en el puerto 1883, y en este caso «allow_anonymous» en «true» para que cualquier usuario se conecte sin necesidad de contraseña. Lo podemos dejar en false en caso de que el usuario tenga que introducir una contraseña.
listener 1883
allow_anonymous true
Conclusiones
Sin duda, es un proyecto muy interesante que permite la comunicación entre dispositivos, así como automatización de tareas o la domotización del hogar, y la Raspberry Pi demuestra la versatilidad y la potencia para estos usos.
¡Hasta la próxima! Seguiremos informando 🙂
Enlaces
https://domotuto.com/instalacion-de-mosquitto-mqtt-broker-en-raspberry-pi/
https://aprenderbigdata.com/mqtt-mosquitto/