En este post te mostraré cómo instalar mosquitto y mosquitto-clients sobre raspbian para, más tarde, realizar comunicaciones por el protocolo MQTT y así indagar más en el internet de las cosas.
Después vamos a publicar mensajes, y a suscribirnos a un “tópico o tema” para probar que todo funcione perfectamente.
Instalación y configuración de Mosquitto en Raspberry Pi
Ejecuta los siguientes comandos:
sudo apt install -y mosquitto mosquitto-clients
Espera a que se termine de instalar. Es momento de revisar la versión con:
mosquitto -v
Lo que te debe dar una salida similar a la siguiente. Presta atención al puerto en caso de que te quieras conectar más tarde:
Vamos a hacer que el servicio de mosquitto se inicie con el sistema, así que usamos systemctl:
sudo systemctl enable mosquitto.service
Y después revisamos su status con:
sudo systemctl status mosquitto
Lo que debe resultar en algo como lo de la imagen:
Si aparece algo similar a ello, y dice “active (running)” todo está bien.
Nota: si no aparece habilitado intenta reiniciar, o ejecuta:
sudo systemctl enable mosquitto.service --now
Publicar y suscribir
El funcionamiento de mosquitto es sencillo. Podemos publicar “mensajes” por tópicos, y suscribirnos a ellos.
Publicar con mosquitto_pub
Para publicar usamos el comando mosquitto_pub por ejemplo:
mosquitto_pub -h localhost -t "mi_casa/sala/temperatura" -m "20"
En donde -h
indica el hostname; sería localhost en este caso. La opción -t
indica el tópico (intentamos enviar la temperatura de la sala dentro de mi casa) y finalmente la opción -m
indica el mensaje (indico que estamos a 20 grados celsius)
Suscribir con mosquitto_sub
De igual modo podemos usar mosquitto_sub para suscribirnos a un tópico en especial. Por ejemplo, si quisiera suscribirme al tópico de la temperatura del jardín podría ser:
mosquitto_sub -h localhost -t "jardin/temperatura"
De modo que, cuando se publique en el tópico temperatura del jardín se me mostrará el mensaje (presiona CTRL + C para detenerlo)
Conclusión
Parece simple e incluso sin sentido, pero con esto hemos creado un servidor con el protocolo MQTT. Más adelante traeré tutoriales para usar la ESP8266 con la Raspberry y enviar la temperatura de un sensor DHT22 a la Pi o a otros dispositivos.