Messaging Queuing Telemetry Protocol, o MQTT, es un protocolo de mensajería liviano diseñado para dispositivos y entornos de bajo ancho de banda. Es una solución rápida, fácil de implementar y de bajo consumo para conectarse e intercambiar información entre múltiples dispositivos IoT. Requiere un intermediario/servidor MQTT y el tema al que los dispositivos o usuarios publican y suscriben los mensajes para enviar o recibir la información.
En esta guía, implementaremos el agente MQTT y la herramienta Node-RED en Raspberry Pi para conectar dispositivos IoT inteligentes de bricolaje habilitados para MQTT y utilizarlos para la automatización del hogar.
Cosas que necesitará
Para construir e implementar un servidor MQTT con Node-RED, necesitará lo siguiente:
- Una Raspberry Pi Zero W o superior. Recomendamos usar una Raspberry Pi 3 o 4 (si está disponible).
- Una tarjeta microSD (8 GB o superior).
- Un lector de tarjetas microSD.
- Una PC con Linux, Mac o PC con Windows.
- Conexión a Internet (Wi-Fi).
Paso 1: Instale Raspberry Pi OS Lite (64 bits)
Necesitará la versión Lite de 64 bits del sistema operativo Raspberry Pi. En el generador de imágenes de frambuesa pi herramienta en otra computadora, haga clic en Elija el sistema operativo > Sistema operativo Raspberry Pi (otro), luego seleccione Raspberry Pi OS Lite (64 bits). Además, querrá usar la configuración avanzada de Imager para habilitar SSH (usamos Pi y frambuesa como nombre de usuario y contraseña para esta guía) y configure la conexión Wi-Fi. Para obtener más detalles, consulte nuestra guía sobre como instalar un sistema operativo en una Raspberry Pi. Después de escribir el sistema operativo en la tarjeta, expúlselo e insértelo en su Raspberry Pi.
Paso 2: conéctese a través de SSH y actualice los paquetes
Puede conectarse a su Raspberry Pi a través de SSH usando PuTTY en Windows o Terminal en macOS y Linux. Sin embargo, debe conocer la IP de Raspberry Pi para conectarse a través de SSH. Para averiguarlo, puede abrir la configuración DHCP de su enrutador inalámbrico o usar Fingapp en su teléfono inteligente.
Introduzca la dirección IP en Masilla y haga clic Conectar. Escriba su nombre de usuario y contraseña para iniciar sesión.
En la terminal de Linux o macOS, escriba SuNombreDeUsuarioPi@DirecciónIP y luego escriba la contraseña para iniciar sesión. Una vez conectado a través de SSH, ejecute el siguiente comando para actualizar la lista de paquetes y actualizar los paquetes.
sudo apt actualizar && sudo apt actualización –y
Paso 3: Instale el agente MQTT
Para instalar y habilitar el agente MQTT (Mosquitto), siga los siguientes pasos.
- Instale Mosquitto ejecutando el siguiente comando en la ventana de Terminal.
Esto comenzará a instalar Mosquitto (agente MQTT) y los servicios de cliente.sudo apto Instalar en pc mosquitto mosquitto-clientes -y
- Después de la instalación, habilite el servicio Mosquitto y verifique la versión de MQTT usando los siguientes comandos.
sudosystemctlhabilitarmosquito.Servicio
mosquito -v - Cree una cuenta de usuario para permitir el acceso remoto autenticado usando el siguiente comando.
Aquí Ravi es el nombre de usuario (puedes usar el que quieras). Introduzca la contraseña cuando se le solicite. Anote este nombre de usuario y contraseña para su uso posterior.sudo mosquitto_passwd -c /etc/mosquitto/passwd ravi
- Abre el mosquito.conf archivo en el editor nano usando el siguiente comando.
Pegue el siguiente código en el editor nano.sudo nano /etc/mosquitto.conf
Prensa CTRL+X seguido por Y y Ingresar para guardar los cambios.configuración_por_oyente verdadero
pid_file /ejecutar/mosquitto/mosquitto.pid
persistencia verdadero
ubicación_persistencia /variable/lib/mosquitto/
archivo log_dest /variable/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
Permitir anónimos falso
oyente 1883
archivo_contraseña /etc/mosquitto/passwd - Reinicie el intermediario MQTT ejecutando el siguiente comando.
sudo systemctl reiniciar mosquito
- Verifique el estado del intermediario MQTT para ver si MQTT se está ejecutando.
Si ve el resultado anterior, MQTT se está ejecutando.sudo systemctl estado mosquito
Paso 4: Pruebe el corredor MQTT
Para probar si el agente MQTT funciona o no, instale MQTTLens o una aplicación MQTT similar en Chrome o cualquier otro navegador web y ejecútelo. Ingrese la dirección IP de Raspberry Pi y el nombre de usuario/contraseña de MQTT. Hacer clic Crear conexión.
Introduzca cualquier tema en el Suscribir campo y el mismo tema en el Publicar campo. Escriba "Hola" o cualquier cosa en el campo de mensaje y haga clic en Publicar.
Si ve el mensaje debajo de las suscripciones, el agente MQTT funciona bien.
Paso 5: Instalar Node-RED
Con Node-RED, puede publicar mensajes o enviar y recibir cargas útiles hacia o desde sus dispositivos inteligentes. Esta carga útil se puede utilizar para activar dispositivos inteligentes para que se enciendan/apaguen o reciban datos (como la temperatura) de un sensor. Puede usar su navegador web para crear dichos flujos en Node-RED y controlar sus dispositivos inteligentes.
Para instalar Node-RED, ejecute el siguiente comando en la ventana de Terminal.
bash //raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
Esto descargará e instalará Node-RED en su Raspberry Pi. Puede tardar un tiempo en completarse. Una vez que Node-RED esté instalado, debe crear un archivo de configuración de Node-RED ejecutando el siguiente comando.
inicio de administrador de nodo rojo
Luego sigue estos pasos:
- presione el Ingresar llave.
- ¿Desea configurar la seguridad del usuario? Seleccione Sí. Introduzca un nombre de usuario y una contraseña. Manténgalo seguro, ya que se utilizará para iniciar sesión y administrar Node-RED a través de una interfaz web.
- Elegir Acceso completo.
- Puede agregar otro usuario o seleccionar No para proceder.
- Seleccione No cuando se le pida que habilite las características del proyecto.
- Prensa Ingresar.
- Escriba una frase de contraseña y manténgala segura.
- Elegir la tema predeterminado > Mónaco (predeterminado).
- Seleccione No cuando se le pide que cargue nodos externos.
Una vez hecho esto, reinicie Node-RED.
reinicio de nodo rojo
Ya puedes visitar Tu-Raspberry-Pi-IP: 1880 en un navegador web para abrir e iniciar sesión en el panel de administración de Node-RED.
Ahora puede crear flujos en Node-RED. A continuación se muestra un ejemplo de un flujo de Node-RED que usamos para ejecutar nuestra pantalla de matriz WS2812B 8x32 que muestra información de varios sensores instalados en nuestro hogar en tiempo real.
Para empezar, también puede construir un reloj inteligente de bricolaje usando matriz de puntos MAX7219y conéctelo a su servidor MQTT para mostrar texto o mensajes en él.
Habilite la automatización del hogar usando MQTT y Node-RED
Ahora puede crear flujos para controlar o monitorear sus dispositivos domésticos inteligentes habilitados para MQTT. También puede construir interruptores inteligentes DIY Tasmota o sensores inteligentes basados en Arduino y otros dispositivos inteligentes con control MQTT y usarlos con este servidor MQTT y Node-RED. Puede crear flujos para la automatización del hogar en función de los eventos, el tiempo o la carga útil recibida del cliente MQTT de su teléfono inteligente.
En su teléfono inteligente Android, puede instalar MQTT Dash para conectarse a su corredor de MQTT y enviar o recibir cargas útiles hacia o desde varios temas a los que se suscriben o publican sus dispositivos inteligentes.