Instale un servidor MQTT y Node-RED en Raspberry Pi para domótica

Instale un servidor MQTT y Node-RED en Raspberry Pi para domótica

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 de DHCP de su enrutador inalámbrico o usar el Fing aplicación en su teléfono inteligente.



  encuentre la ip de su frambuesa a través de la configuración del enrutador dhcp

Introduzca la dirección IP en Masilla y haga clic Conectar . Escriba su nombre de usuario y contraseña para iniciar sesión.

  conectarse a raspberry pi a través de ssh

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 update && sudo apt upgrade y

Paso 3: Instale el agente MQTT

Para instalar y habilitar el agente MQTT (Mosquitto), siga los siguientes pasos.

  1. Instale Mosquitto ejecutando el siguiente comando en la ventana de Terminal.
    sudo apt install mosquitto mosquitto-clients -y
      instalar servidor mosquitto mqtt Esto comenzará a instalar Mosquitto (agente MQTT) y los servicios de cliente.
  2. Después de la instalación, habilite el servicio Mosquitto y verifique la versión de MQTT usando los siguientes comandos.008EFBDDFB34A48CCBBF8212A3C803CAD189488D   habilitar el servicio de mosquitos
  3. Cree una cuenta de usuario para permitir el acceso remoto autenticado usando el siguiente comando.
    sudo mosquitto_passwd -c /etc/mosquitto/passwd ravi
    Aquí tratamiento 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.
  4. Abre el mosquito.conf archivo en el editor nano usando el siguiente comando.
    sudo nano /etc/mosquitto.conf
    Pegue el siguiente código en el editor nano.
    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
      editar el archivo de configuración de mosquitos Prensa CTRL+X seguido por Y y Ingresar para guardar los cambios.
  5. Reinicie el intermediario MQTT ejecutando el siguiente comando.
    sudo systemctl restart mosquitto
  6. Verifique el estado del intermediario MQTT para ver si MQTT se está ejecutando.
    sudo systemctl status mosquitto
      verificar el estado del servidor mqtt Si ve el resultado anterior, MQTT se está ejecutando.

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 .





  conéctese al servidor mqtt y envíe un mensaje al tema de prueba para comprobar que el intermediario mqtt está funcionando

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 .

  mensajes publicados correctamente que indican que mqtt está funcionando

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 usar para activar dispositivos inteligentes para que se enciendan o 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 <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
  instalar el nodo rojo

Esto descargará e instalará Node-RED en su Raspberry Pi. Puede tardar un poco en completarse. Una vez que Node-RED esté instalado, debe crear un archivo de configuración de Node-RED ejecutando el siguiente comando.

node-red admin init

Luego sigue estos pasos:

  1. presione el Ingresar llave.
  2. ¿Desea configurar la seguridad del usuario? Seleccione . 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.
  3. Elegir Acceso completo .
  4. Puede agregar otro usuario o seleccionar No para proceder.
  5. Seleccione No cuando se le pida que habilite las características del proyecto.
  6. Prensa Ingresar .
  7. Escriba una frase de contraseña y manténgala segura.
  8. Elegir la tema predeterminado > Mónaco (predeterminado) .
  9. Seleccione No cuando se le pide que cargue nodos externos.
  configurar la instalación del nodo rojo

Una vez hecho esto, reinicie Node-RED.

lugares que venden perros cerca de mi
node-red restart

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.

  acceder al nodo rojo en la ip de raspberry pi en el puerto 1880

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.

  muestra el flujo rojo del nodo para mostrar varios valores de sensor en una pantalla de matriz de 8x32

Para empezar, también puede construir un reloj inteligente de bricolaje usando matriz de puntos MAX7219 y 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.