Skip to main content

reComputer R1000 con Node Red y MQTT

Introducción

MQTT (Message Queuing Telemetry Transport) es un protocolo de mensajería ligero ideal para aplicaciones IoT (Internet de las Cosas) debido a su eficiencia y bajos requisitos de ancho de banda. Facilita la comunicación entre dispositivos en un modelo de publicación-suscripción, permitiendo el intercambio de datos en tiempo real sobre redes poco confiables. Con Node-RED, la integración de MQTT permite conectividad perfecta entre dispositivos edge y servidores centrales u otros dispositivos, fomentando la transmisión y procesamiento eficiente de datos. El reComputer R1000 Edge Controller, al soportar MQTT de forma nativa, elimina la necesidad de gateways de hardware adicionales al permitir la instalación de un broker MQTT directamente en el reComputer R1000 mismo. Esto reduce la complejidad, minimiza la latencia y mejora la confiabilidad, ya que los datos pueden ser procesados y actuar sobre ellos en el edge sin depender de intermediarios externos, optimizando así la arquitectura del sistema IoT.

Comenzando

Antes de iniciar este proyecto, es posible que necesites preparar tu hardware y software con anticipación como se describe aquí.

Preparación del Hardware

Preparación del Software

Hemos preparado una Guía de introducción sobre Node-RED. Se recomienda que revises esta guía antes de proceder con el wiki.

Configurar reComputer R1000 como Broker MQTT

  • Paso 01 : SSH o VNC a reComputer R1000 y Actualizar Raspberry Pi OS:
sudo apt update
  • Paso 02 : Luego, instala Mosquitto en él. Para hacerlo, abre la terminal y ejecuta este comando:
sudo apt-get install mosquitto 
  • Paso 03 :A continuación, instala el cliente de línea de comandos de Mosquitto ejecutando el siguiente comando en la terminal:
sudo apt-get install mosquitto-clients -y
  • Paso 04 : Una vez que la instalación del broker MQTT esté completa, son necesarios ajustes a sus archivos de configuración. El archivo de configuración predeterminado se puede encontrar en /etc/mosquitto/mosquitto.conf. Para acceder y modificar este archivo, usa el editor nano ejecutando el siguiente comando en la terminal:
sudo nano /etc/mosquitto/mosquitto.conf

En el archivo de configuración, deshabilitaremos la configuración predeterminada con esta línea:

include_dir /etc/mosquitto/conf.d

a

#include_dir /etc/mosquitto/conf.d

A continuación, aplicaremos una política que prohíbe a los usuarios anónimos conectarse al broker agregando la línea:

allow_anonymous false

Para almacenar contraseñas de forma segura, especificaremos una ubicación de archivo agregando:

password_file /etc/mosquitto/pwfile

Luego, para establecer el puerto de escucha en 1883, añadiremos:

listener 1883

Guarda las modificaciones presionando Ctrl+S y sal del editor con Ctrl+X.

  • Paso 05 : Para establecer nombres de usuario y contraseñas, otorgando acceso a clientes MQTT, o restablecer contraseñas existentes, utiliza el siguiente comando en la terminal:
sudo mosquitto_passwd -c /etc/mosquitto/pwfile <username>

Después de generar un nombre de usuario y contraseña, reinicia reComputer R1000

sudo reboot

Puedes iniciar el broker Mosquitto ingresando el siguiente comando en la terminal:

sudo systemctl start mosquitto

sudo systemctl status mosquitto Para verificar si el broker Mosquitto está ejecutándose

sudo systemctl stop mosquitto Para detener el broker Mosquitto

sudo systemctl restart mosquitto Para reiniciar el broker Mosquitto

sudo systemctl enable mosquitto Para asegurar que el broker Mosquitto se inicialice al arrancar el sistema

Probar Conexión

  • Paso 01 : Abre una nueva sesión SSH o terminal y ejecuta el siguiente comando para suscribirse a un tema
mosquitto_sub -h localhost -t test -u <USER> -P <PASSWORD>
  • Paso 02 : En otra sesión SSH o terminal, ejecuta el siguiente comando para publicar un mensaje al mismo tema. Asegúrate de ingresar el Nombre de usuario y Contraseña correspondientes.
mosquitto_pub -h localhost -t test -m "Hello, world!" -u <USER> -P <PASSWORD>

Deberías ver el mensaje "Hello, world!" aparecer en la primera ventana de sesión SSH donde ejecutaste el comando mosquitto_sub. Asegúrate de ingresar el nombre de usuario y la contraseña correspondientes.

Editar Flujos

Nodo MQTT in

El nodo MQTT-in se suscribe a temas MQTT y recibe mensajes del broker. Cuando se publica un mensaje en uno de sus temas suscritos, el nodo MQTT-in se activa y reenvía el mensaje recibido a los nodos subsiguientes en el flujo para su posterior procesamiento.

  • Paso 01 Arrastra y suelta un nodo MQTT-in desde la paleta de Node-RED al lienzo.

  • Paso 02 Haz doble clic en el nodo MQTT-in para abrir su diálogo de configuración.

  • Paso 03 En el diálogo de configuración, configura los siguientes campos:

    • Server: Asegúrate de que los detalles del broker estén pre-poblados. Si no, haz clic en el ícono del lápiz para agregar la dirección IP del broker, nombre de usuario y contraseña.

    • Action: Selecciona si suscribirse a un solo tema o usar una suscripción dinámica. Para una suscripción dinámica, extrae el tema MQTT deseado del payload del mensaje usando un nodo de función u otros nodos de procesamiento. Aquí, nos suscribiremos a un solo tema.

    • Topic: Ingresa el tema MQTT al que quieres suscribirte.

    • QoS: Elige el nivel de Calidad de Servicio (QoS) deseado para la entrega de mensajes (0, 1, o 2).

    • Name: Opcionalmente, asigna un nombre significativo a tu nodo.

  • Paso 04 Haz clic en Done para guardar la configuración.

Nodo MQTT-out

El nodo MQTT-out (salida MQTT) se usa para publicar mensajes a temas MQTT. Puedes configurar el tema y el payload del mensaje a publicar, que puede ser estático o generado dinámicamente basado en datos de otros nodos en el flujo.

  • Paso 01 Arrastra y suelta un nodo MQTT-out desde la paleta de Node-RED al lienzo.

  • Paso 02 Haz doble clic en el nodo MQTT-out para abrir su diálogo de configuración.

  • Paso 03 En el diálogo de configuración, haz clic en el ícono del lápiz junto al campo Server para crear una nueva configuración de broker.

  • Paso 04 Edita la configuración del broker MQTT agregando la dirección del broker en el campo server, puerto, y cualquier credencial de autenticación si es requerida (ej., nombre de usuario y contraseña).

  • Paso 05 Haz clic en Done para guardar la configuración del broker.

  • Paso 06 En el diálogo de configuración, configura los siguientes campos:

    • Topic: Ingresa el tema MQTT al cual quieres publicar mensajes.

    • QoS: Elige el nivel de Calidad de Servicio (QoS) deseado para la entrega de mensajes (0, 1, o 2).

    • Retain: Elige si retener el mensaje publicado en el broker (true o false).

    • Name: Opcionalmente, asigna un nombre significativo a tu nodo.

  • Paso 07 Haz clic en Done para guardar la configuración.

Usamos el nodo inject para inyectar el mensaje en un cierto intervalo, y también usamos el nodo debug para inspeccionar el mensaje publicado.

Puedes ver esta representación gráfica a continuación para entender cómo conectar y configurar los nodos MQTT-in, MQTT-out, debug, e inject.

Soporte Técnico y Discusión de Productos

¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.

Loading Comments...