¿Te gustaría convertir tu Raspberry Pi en un servidor MQTT para la comunicación de dispositivos IoT? ¡Entonces estás en el lugar correcto! En este artículo te enseñaremos paso a paso cómo instalar el agente Mosquitto MQTT en tu Raspberry Pi. ¡No te lo pierdas!
Este tutorial muestra cómo instalar Mosquitto Broker para comunicación MQTT en una placa Raspberry Pi.
Actualizado el 10 de junio de 2022
También puede ejecutar el corredor Mosquitto MQTT en la nube. Al ejecutar MQTT Mosquitto Broker en la nube, puede conectar varias placas ESP32/ESP8266 y otros dispositivos IoT desde cualquier lugar a través de diferentes redes, siempre que tengan una conexión a Internet. Consulta el siguiente tutorial:
- Ejecute su Cloud MQTT Mosquitto Broker (acceso desde cualquier lugar a través de Digital Ocean)
¿Qué es un corredor MQTT?
MQTT significa METROMensaje qfinal tElemetría tTransporte. MQTT es un protocolo de mensajería liviano diseñado para dispositivos con poco ancho de banda y restricciones. Por tanto, es la solución perfecta para el intercambio de datos entre múltiples dispositivos IoT.
La comunicación MQTT funciona como publicar Y Suscribirse a Dispositivos de sistema publicar Noticias sobre un tema específico. Todos los dispositivos que dibujado Recibí el mensaje sobre este tema.
El corredor MQTT es responsable de Recepción todos los mensajes, Filtración Las noticias, decidir quién está interesado en ello, y luego Publicar el mensaje a todos los clientes suscritos.
Hay varios corredores que puede utilizar. En proyectos de domótica utilizamos el corredor de mosquitos instalado en una Raspberry Pi.
También puedes instalar el broker Mosquitto en tu PC (lo cual no es tan conveniente como usar una placa Raspberry Pi, ya que tu computadora debe estar funcionando constantemente para mantener la conexión MQTT entre tus dispositivos).
Para obtener una explicación más detallada de la comunicación MQTT, consulte este artículo: ¿Qué es MQTT y cómo funciona?
requisitos
Antes de continuar con este tutorial
- Debes estar familiarizado con la placa Raspberry Pi; lee Introducción a Raspberry Pi;
- Debe tener el sistema operativo Raspberry Pi instalado en su Raspberry Pi: instale el sistema operativo Raspberry Pi, configure WiFi, habilite SSH y conéctese;
- También necesita el siguiente hardware:
Puedes utilizar los enlaces anteriores o ir directamente MakerAdvisor.com/tools ¡Para encontrar todas las piezas para tus proyectos al mejor precio!
Si estás interesado en la domótica y quieres montar un sistema domótico completo, te recomiendo descargar mi curso de domótica.
Instale Mosquitto Broker en el sistema operativo Raspberry Pi
Después de preparar tu placa Raspberry Pi con Raspberry Pi OS, puedes continuar con este tutorial.
instalemos esos corredor de mosquitos.
1) Abra una nueva ventana de terminal Raspberry Pi. Si está ejecutando su Raspberry Pi sin un monitor, lea este tutorial para aprender cómo establecer una conexión SSH entre su computadora y Raspberry Pi.
2) Ejecute el siguiente comando para actualizar y mejorar su sistema:
sudo apt update && sudo apt upgrade
3) Prensa Y Y Aporte. La actualización y la mejora llevarán algún tiempo (en mi caso, tardó unos 10 minutos).
4) Para instalar Mosquitto Broker, ingrese los siguientes comandos:
sudo apt install -y mosquitto mosquitto-clients
5) Para que Mosquitto se inicie automáticamente cuando se inicie Raspberry Pi, debe ejecutar el siguiente comando (esto significa que el corredor Mosquitto se iniciará automáticamente cuando se inicie Raspberry Pi):
sudo systemctl enable mosquitto.service
6) Ahora pruebe la instalación ejecutando el siguiente comando:
mosquitto -v
Esto devolverá la versión de Mosquitto que se ejecuta actualmente en su Raspberry Pi. Esta es 2.0.11 o posterior.
Se muestra el siguiente mensaje: “Comience en modo solo local. Las conexiones solo son posibles desde clientes que se ejecutan en esta computadora. Cree un archivo de configuración que defina un oyente para habilitar el acceso remoto..”
Esto significa que, de forma predeterminada, no puede comunicarse con el corredor Mosquitto desde ningún otro dispositivo (que no sea su Raspberry Pi). Esto se aplica a Mosquitto versión 2. Puede encontrar más información sobre este tema en documentación de mosquitos.
“A partir de Mosquitto 2.0, debe seleccionar explícitamente sus opciones de autenticación antes de que los clientes puedan conectarse. De forma predeterminada, en versiones anteriores, los clientes pueden conectarse sin autenticación.“
Habilitar acceso remoto/autenticación
Para habilitar el acceso remoto para que podamos comunicarnos con otros dispositivos IoT, necesitamos editar/crear un archivo de configuración.
En este tutorial cubriremos:
Selecciona la sección que mejor se adapte a tu escenario. También recomendamos echar un vistazo a documentación para más detalles.
Habilite el acceso remoto a Mosquitto Broker (sin autenticación)
1) Ejecute el siguiente comando para hacer eso mosquito.conf Archivo.
sudo nano /etc/mosquitto/mosquitto.conf
2) Utilice las teclas de flecha para ir al final del archivo e inserte las dos líneas siguientes:
listener 1883
allow_anonymous true
3) Entonces presione CTRL-X para salir y guardar el archivo. Prensa Y Y Aporte.
4) Reinicie Mosquitto para que los cambios surtan efecto.
sudo systemctl restart mosquitto
Habilite el acceso remoto de Mosquitto Broker (Autenticación: usuario y contraseña)
Puede agregar autenticación de usuario/contraseña a su agente MQTT.
1) Ejecute el siguiente comando pero reemplace SU NOMBRE DE USUARIO por el nombre de usuario que desea utilizar:
sudo mosquitto_passwd -c /etc/mosquitto/passwd YOUR_USERNAME
Estoy usando el usuario MQTT saraentonces ejecuto el comando así:
sudo mosquitto_passwd -c /etc/mosquitto/passwd sara
Si ejecuta el comando anterior con el nombre de usuario deseado, se le pedirá que ingrese una contraseña. No se muestran caracteres mientras escribe la contraseña. Introduzca la contraseña y Recuerda la combinación usuario/contraseña, la necesitarás más adelante en sus proyectos para conectarse al corredor.
Este comando anterior crea un archivo de contraseña llamado contraseña sobre el /etc/mosquito Directorio.
Ahora necesitamos editar el archivo de configuración de Mosquitto para que solo permita la autenticación con el nombre de usuario y contraseña que definimos.
2) Ejecute el siguiente comando para editar el archivo de configuración:
sudo nano /etc/mosquitto/mosquitto.conf
3) Agregue la siguiente línea al principio del archivo (asegúrese de que esté al principio del archivo; de lo contrario, no funcionará):
per_listener_settings true
4) Agregue las siguientes tres líneas para permitir que los usuarios autenticados se conecten e indiquen a Mosquitto dónde se encuentra el archivo de nombre de usuario/contraseña.
allow_anonymous false
listener 1883
password_file /etc/mosquitto/passwd
Su archivo de configuración tendrá este aspecto (las nuevas líneas están en negrita):
# 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
per_listener_settings true
pid_file /run/mosquitto/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
allow_anonymous false
listener 1883
password_file /etc/mosquitto/passwd
5) Prensa CTRL-XEntonces Yy finalmente presione Aporte para salir del proceso y guardar los cambios.
6) Reinicie Mosquitto para que los cambios surtan efecto.
sudo systemctl restart mosquitto
Para comprobar si Mosquitto realmente se está ejecutando, puede ejecutar el siguiente comando:
sudo systemctl status mosquitto
Ahora ha activado la autenticación con nombre de usuario y contraseña. Recuerda que deberás proporcionar el usuario y contraseña en cualquier comunicación con el broker.
Agregar más usuarios/cambiar contraseña
Para agregar usuarios adicionales a un archivo de contraseña existente o cambiar la contraseña de un usuario existente, deje el -C Disputar:
mosquitto_passwd <password file> <username>
Por ejemplo, si ingreso la contraseña para el sara Usuarios y teniendo en cuenta que el archivo de contraseña que creamos se llamó contraseñael comando es el siguiente:
sudo mosquitto_passwd /etc/mosquitto/passwd sara
Dirección IP de la frambuesa Pi
Para poder utilizar posteriormente el broker Mosquitto en tus proyectos, necesitas conocer la dirección IP de tu Raspberry Pi. Para obtener su dirección IP de Raspberry Pi, ingrese el siguiente comando en la ventana de su terminal Pi:
hostname -I
En nuestro caso, la dirección IP de la Raspberry Pi es 192.168.1.144. Guarde su dirección IP de Raspberry Pi, ya que la necesitará en proyectos futuros.
Probando Mosquitto Broker y MQTT Client
Después de instalar el corredor Mosquitto, debe probar su instalación. Puedes seguir el siguiente tutorial:
- Prueba de Mosquitto Broker y Client en Raspbbery Pi
Envolver
Un corredor MQTT es esencial si desea utilizar el protocolo MQTT en proyectos de IoT. El corredor MQTT recibe todos los mensajes MQTT y los reenvía a todos los clientes suscritos. En este tutorial aprendiste cómo instalar el broker Mosquitto en una Raspberry Pi.
¿Te gusta la domótica? Obtenga más información sobre Node-RED, Raspberry Pi, ESP8266 y Arduino con mi curso: Construya un sistema de automatización del hogar por 0.
¿Tiene usted alguna pregunta? ¡Deja un comentario a continuación!
Gracias por leer. Si te gusta esta publicación, probablemente también te gustarán las siguientes. Así que por favor apóyame suscribiéndote a mi blog.
Actualizado el 10 de junio de 2022
Instalar el agente Mosquitto MQTT en Raspberry Pi
Este tutorial muestra cómo instalar el Agente Mosquitto para la comunicación MQTT en una placa Raspberry Pi.
¿Qué es un Broker MQTT?
MQTT significa Message Queuing Telemetry Transport por sus siglas en inglés. Es un protocolo de mensajería simple, diseñado para dispositivos limitados con baja capacidad de ancho de banda. Es la solución perfecta para intercambiar datos entre múltiples dispositivos IoT.
La comunicación MQTT funciona como un sistema de publicación y suscripción. Los dispositivos publican mensajes en un tema específico. Todos los dispositivos suscritos a ese tema reciben el mensaje.
El broker MQTT es el responsable de recibir todos los mensajes, filtrarlos, decidir quién está interesado en ellos y luego publicar el mensaje a todos los clientes suscritos.
Existen varios brokers que puedes usar. En proyectos de domótica, utilizamos el Broker Mosquitto instalado en una Raspberry Pi.
Preguntas Frecuentes
- ¿Se puede ejecutar el Broker MQTT Mosquitto en la nube?
- ¿Cómo instalar Mosquitto Broker en Raspberry Pi OS?
- Raspberry Pi board
- Tarjeta microSD de 16GB Clase 10
- Fuente de alimentación Raspberry Pi (5V 2.5A)
Sí, puedes ejecutar el broker Mosquitto MQTT en la nube. Ejecutar el Broker MQTT Mosquitto en la nube te permite conectar varios tableros ESP32/ESP8266 y otros dispositivos IoT desde cualquier lugar utilizando diferentes redes siempre que tengan una conexión a Internet.
Para obtener más información sobre cómo ejecutar el Broker MQTT Mosquitto en la nube, consulta el siguiente tutorial: Run Your Cloud MQTT Mosquitto Broker.
Antes de continuar con este tutorial, debes tener familiaridad con la placa Raspberry Pi y tener el sistema operativo Raspberry Pi OS instalado. También necesitarás los siguientes elementos:
Para obtener una guía paso a paso sobre cómo instalar Mosquitto Broker en Raspberry Pi OS, sigue los pasos detallados en este enlace.
Una vez que hayas instalado el Agente Mosquitto en tu Raspberry Pi, puedes realizar pruebas para asegurarte de que la instalación se realizó correctamente. Si tienes más preguntas sobre este proceso, déjalas en los comentarios.
Gracias por leer este artículo. Si te gustó, suscríbete a nuestro blog para recibir más contenido relacionado con IoT y domótica.
Qué interesante, gracias por compartir estos pasos detallados. ¡Definitivamente lo probaré en mi Raspberry Pi! 🙌🏼👍🏼
Mariana96: ¡Genial! Siempre he querido saber cómo instalar Mosquitto MQTT en mi Raspberry Pi. ¡Gracias por la ayuda! 💡👏🏽
My Comment: ¡Excelente tutorial! Me encanta lo fácil que lo hacen ver. ¡Ahora estoy emocionado por probarlo en mi Raspberry Pi! 🤓🔥