como-instalar-mosquitto-el-broker-mqtt

Cómo instalar Mosquitto, el popular broker MQTT

Hoy vamos a ver cómo instalar y configurar Mosquitto, uno de los broker MQTT más populares sobre todo en el sector doméstico, que podéis añadir a vuestros proyectos de IoT.

En entradas anterior hemos hablado sobre los protocolos de comunicación para IoT, donde vimos el patrón publisher suscriber, el protocolo MQTT y su importancia, y algunos de los principales broker MQTT disponibles.

Como teoría ya vale, hoy nos toca entrar en harina y empezar a jugar. Para esto, lo primero que necesitamos es instalar un broker al que podamos conectar los dispositivos.

En esta entrada vamos a instalar Mosquitto, que como decíamos es uno de los broker más populares, y probablemente el más empleado en proyectos domésticos.

Eclipse Mosquito es un Broker Open Source de la Eclipse Foundation distribuido bajo licencia EPL/EDL, compatible con el protocolo MQTT en sus versiones 3.1, 3.1.1, y 5.0. Está programado en C y es compatible con Windows, Linux y Mac. El código está aquí https://github.com/eclipse/mosquitto

El hecho de que sea Open Source y su licenciamiento, así como que sea multiplataforma y que sea un broker liviano, son algunos delos motivos por los que este broker ha alcanzado tanta popularidad.

Instalar Mosquitto

En Windows

Instalar Mosquitto en Windows es muy sencillo, ya que disponemos de un instalador en la página de descargas https://mosquitto.org/download/. Simplemente tenemos que descargarlo e instalarlo, como con cualquier otro programa.

Si queremos ejecutar Mosquitto como servicio de Windows, tras la instalación ejecutamos una consola con derechos de administrador y hacemos. mosquitto install

mqtt-mosquitto-windows-servicio

Si durante la instalación os da algún error, deberéis instalar Visual C++ Redistributable for Visual Studio 2015 disponible en la página web de Microsoft. https://www.microsoft.com/es-es/download/details.aspx?id=48145

En Linux

Instalar Mosquitto en las principales distros de Linux es igualmente sencillo, ya que la mayoría lo tienen integrado en sus respositorios. Así es el caso de Ubuntu, Debian, o Raspbian (Raspberry Pi). Así que únicamente tenemos que ejecutar los comandos.

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

Si queremos ejecutar mosquitto al arrancar el sistema, en una consola ejecutamos

sudo systemctl enable mosquitto.service

Probando Mosquitto

Ahora vamos a probar que la instalación se ha realizado correctamente y que, efectivamente, Mosquitto está listo para escuchar y distribuir nuestros mensajes MQTT.

Para ello Mosquito proporciona dos utilidades ‘mosquitto_sub’ y ‘mosquitto_pub’, muy apropiadas para probar que todo funciona.

Abrimos dos consolas de comandos y nos dirigimos a la carpeta donde hallamos instalado Mosquitto. En una de ella nos suscribimos al topic “mimqtt/test” (por ejemplo) con.

mosquitto_sub -d -h localhost -p 1883 -t "mimqtt/test"

En la otra consola, segunda, publicamos un mensaje ‘Hola Mundo’

mosquitto_pub -d -h localhost -p 1883 -t "mimqtt/test" -m "Hola Mundo"

Veremos que el mensaje se ha enviado correctamente desde el publisher

mqtt-mosquitto-pub

Y en la primera ventana, el suscriber, veremos que el mensaje ha sido correctamente recibido.

mqtt-mosquitto-sub

Configuración de Mosquitto

La configuración de Mosquitto se guarda en el fichero ‘mosquitto.conf’ que, en el caso de Windows está en al ubicación donde hayáis instalado Mosquitto, y en Linux en ‘etc/mosquito’.

El fichero ‘mosquitto.conf’ está dividido en secciones, que controlan los principales aspectos del broker. Para más información, consultar la documentación en https://mosquitto.org/man/mosquitto-conf-5.html

Conclusión

En esta entrada hemos aprendido a instalar Mosquitto, el popular broker de MQTT, tanto en Windows como Linux. Como hemos visto, es muy sencillo tener un broker funcional en cuestión de minutos.

Ahora podemos conectar nuestros clientes, que pueden ser escritos en C#, Python, desde una página web o incluso desde un microprocesador como el ESP8266. Veremos todo esto en próximas entradas.