Raspberry Pi
Tutorial de Rapberry Pi en español.
- Juan Antonio Villalpando -
Volver al índice del tutorial
____________________________
16.- Instalación del Broker MQTT Mosquito en Raspbian Stretch.
- Vamos a instalar el Broker MQTT Mosquito en Raspberry Pi (versión Stretch).
- Mosquitto es un Broker MQTT, es decir un servidor intermedio a donde se conectarán los dispositivos que publiquen y suscriban información (se denomina topics). El protocolo MQTT se utiliza en IoT porque consume pocos recursos, es decir envía informacion con poco contenido: datos, números, mensajes muy cortos,...
- Mosquitto es open source de Eclipse.
1.- Actualizar el signing key (clave de firma) mediante apt-get
- Antes de instalar Mosquitto, necesitaremos actualizar su signing key (clave de firma).
sudo wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
- Luego añadimos esta clave al apt-get:
sudo apt-key add mosquitto-repo.gpg.key
2.- Añadir el repositorio de Mosquitto a apt-get
Vamos a este directorio:
cd /etc/apt/sources.list.d/
Entramos y bajamos la información del repositorio.
sudo wget http://repo.mosquitto.org/debian/mosquitto-stretch.list
[Lo estamos bajando para nuestra versión strech]
3.- Instalación de Mosquitto
sudo apt-get update
Vamos a instalar el broker Mosquitto MQTT y también el cliente Mosquitto, para hacer pruebas.
sudo apt-get install mosquitto mosquitto-clients
4.- Instalación de Pip y Paho
- Para trabajar con MQTT es conveniente instalar Paho. Si ya lo hemos instalado en tutoriales anteriores no hará falta instalarlo de nuevo. Para la instalacion de Paho, se suele hacer con pip
- Instalación de pip
sudo apt-get install python-pip
- Instalación de paho-mqtt mediante pip
sudo pip install paho-mqtt
5.- Configuración de Mosquitto.
- La configuración de Mosquitto está en el archivo: /etc/mosquitto/mosquitto.conf
- Vamos a realizar una copia de seguridad de ese archivo por si debemos recuperarlo.
cd /etc/mosquitto sudo cp mosquitto.conf mosquitto.conf.original
- Aquí tenemos el archivo de configuración, no es necesario cambiar nada.
/etc/mosquitto/mosquitto.conf |
# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example
pid_file /var/run/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
# Save all log in file
log_dest file /var/log/mosquitto/mosquitto.log
log_type all
log_timestamp true
include_dir /etc/mosquitto/conf.d
|
- Aquí puedes encontrar más información sobre su configuración:
/usr/share/doc/mosquitto/examples/mosquitto.conf
6.- Prueba de Mosquitto.
- Vamos a publicar un topic y a suscribirlo para comprobar su funcionamiento. Necesitaremos 2 terminales, en uno publicaremos el topic "test-mosquitto" y en otro nos suscribiremos al topic "test-mosquitto".
En uno terminal Suscribimos:
mosquitto_sub -d -t 'prueba'
En otro terminal Publicamos:
mosquitto_pub -d -t 'prueba' -m 'Prueba de publicacion'
- Cada vez que ejecutemos la orden de Publicar, veremos su información en el terminal del Suscripción.
7.- Prueba en red local.
- Instalamos en nuestro móvil la aplicación de la Google Play: Linear MQTT Dashboard.
- Debemos conocer la IP de nuestro Raspberry Pi en nuestra red local, supongamos que sea: 192.168.1.12
- En la aplicación, en App settings... ponemos:
Server:
tcp://192.168.1.12
Port:
1883
Ahora vamos a añadir un Value.
Wigget type: Value
Name: Ejemplo
Sub. topic: prueba
En el terminal Publicamos:
mosquitto_pub -d -t 'prueba' -m 'Prueba de publicacion'
Se deberá ver en la aplicación.
- También puedes crear en la app Linear un Botón con un texto, en la parte de Pub.topic(optional) escribes: prueba
En 'On' value pones Hola.
Al pulsar el Botón se enviará al terminal esa palabra. [El terminal deberá estar suscrito mosquitto_sub -d -t 'prueba' ]
8.- Prueba en Internet.
Debes entrar en la configuración de tu Router.
Abrir el puerto 1883 a la IP del Raspberry Pi, en mi caso: 192.168.1.12
Debes conocer tu IP Pública:
https://www.showmyipaddress.com/
Poner esa IP en la aplicación Linear.
App settings...
Server:
tcp://ip.pu.bli.ca
_______________
Mosquitto
___________________________________________________
|