Comunicación MQTT con Node-RED
Última actualización:
Introducción
MQTT es un protocolo ligero de mensajería de publicación/suscripción muy utilizado en aplicaciones de Internet de las cosas (IoT). En lugar de comunicarse directamente entre sí, los dispositivos envían mensajes a un broker MQTT bajo un tema, y otros clientes se suscriben a ese tema para recibirlos.
Node-RED incluye nodos MQTT que permiten recibir y procesar mensajes IoT sin desarrollar una aplicación MQTT completa. En este tutorial configuraremos Node-RED en un dispositivo reComputer RK Series para suscribirnos a un tema del broker MQTT público de HiveMQ y publicaremos un mensaje JSON desde el terminal RK para verificar la conexión.
Seguridad: Este ejemplo utiliza el broker público compartido de HiveMQ por el puerto TCP 1883, sin TLS ni autenticación. Usa solo datos de prueba. No transmitas contraseñas, información personal ni datos industriales o de producción. En producción, utiliza un broker con autenticación y TLS.
Requisitos previos
| Elemento | Requisito |
|---|---|
| Hardware | Dispositivo reComputer RK Series |
| Sistema operativo | Linux ARM64 basado en Debian |
| Node-RED | Instalado y en ejecución; completa primero Primeros pasos con Node-RED |
| Red | Acceso a Internet al broker MQTT público de HiveMQ |
| Acceso | Un navegador para Node-RED y un terminal o conexión SSH al dispositivo RK |
Cómo funciona
reComputer RK Terminal
(mosquitto_pub)
|
| Publish JSON to topic: rk3588/seeed/demo
v
HiveMQ Public MQTT Broker
(broker.hivemq.com:1883)
|
| Subscribe to the same topic
v
Node-RED on reComputer RK
MQTT in --> Debug
|
v
Debug sidebar: received JSON objectPaso 1: Abrir el editor Node-RED
Comprueba que Node-RED se esté ejecutando en el dispositivo RK:
sudo systemctl status nodered.service --no-pagerSi es necesario, inicia el servicio:
node-red-startSi este comando muestra los registros continuamente, pulsa Ctrl+C para volver al terminal; Node-RED seguirá ejecutándose en segundo plano.
Consulta la dirección IP local del dispositivo:
hostname -IDesde un equipo de la misma red, abre el editor Node-RED:
http://<RK_DEVICE_IP>:1880Sustituye <RK_DEVICE_IP> por la dirección IP real del dispositivo. Inicia sesión si habilitaste la autenticación del editor durante la configuración de Node-RED.
Paso 2: Añadir un nodo de entrada MQTT
- Abre Flow 1 o crea un flujo nuevo.
- Busca mqtt in en la paleta izquierda y arrastra el nodo morado mqtt in al espacio de trabajo.
- Haz doble clic en el nodo para abrir Edit mqtt in node.
- Junto a Server, pulsa el botón de añadir/editar, que puede ser + o un lápiz según la versión, para crear una configuración de broker MQTT.
Paso 3: Configurar el broker HiveMQ
En el diálogo de configuración del broker MQTT, introduce:
| Parámetro | Valor |
|---|---|
| Name | HiveMQ (nombre visible opcional) |
| Server | broker.hivemq.com |
| Port | 1883 |
| Protocol | MQTT V3.1.1 |
| Client ID | Dejar vacío para generar un ID automáticamente |
| TLS | Desactivado |
| Username / Password | Dejar vacío |

Mantén las demás opciones predeterminadas y pulsa Add o Update, según la versión del editor, para guardar la configuración del broker.
El broker público es compartido. Elige un tema que difícilmente coincida con otras pruebas. Este ejemplo utiliza
rk3588/seeed/demo. Si eliges otro tema, úsalo de forma coherente en la suscripción y el comando de publicación.
Paso 4: Configurar la suscripción MQTT
De nuevo en Edit mqtt in node, configura:
| Parámetro | Valor |
|---|---|
| Server | HiveMQ |
| Action | Subscribe to single topic |
| Topic | rk3588/seeed/demo |
| QoS | 0 |
| Output | auto-detect (parsed JSON object, string or buffer) |
| Name | SeeedStudio |

Pulsa Done para guardar el nodo.
Los temas MQTT distinguen entre mayúsculas y minúsculas. El tema de Node-RED debe coincidir exactamente con el utilizado por el publicador de línea de comandos. Si lo cambias por un tema único, actualiza también los comandos del paso 7.
Paso 5: Conectar MQTT In a Debug y desplegar
- Busca debug en la paleta y arrastra el nodo verde debug al espacio de trabajo.
- Conecta la salida de SeeedStudio (mqtt in) a la entrada del nodo debug.
- Abre los ajustes del nodo Debug y deja la salida en
msg.payload. - Pulsa Done y después Deploy en la esquina superior derecha.
- Abre el panel Debug messages.
El flujo resultante debería tener este aspecto:
[SeeedStudio (mqtt in)] ----> [debug node]Una vez establecida la conexión MQTT, el nodo mqtt in debería mostrar el estado verde connected debajo.
Paso 6: Instalar el cliente MQTT de línea de comandos
En el terminal del dispositivo reComputer RK, instala las herramientas de línea de comandos de Mosquitto:
sudo apt update
sudo apt install -y mosquitto-clientsEl comando mosquitto_pub envía un mensaje MQTT al broker. Node-RED, que ya está suscrito al mismo tema, puede recibirlo.
Paso 7: Publicar un mensaje JSON de prueba
Ejecuta el siguiente comando en el terminal RK:
mosquitto_pub \
-h broker.hivemq.com \
-p 1883 \
-t "rk3588/seeed/demo" \
-m '{"device":"RK3588","temperature":25.6}'Este comando publica un mensaje JSON en el tema rk3588/seeed/demo mediante el broker público de HiveMQ.
Para obtener una salida más detallada en el terminal, utiliza la opción -d:
mosquitto_pub -d \
-h broker.hivemq.com \
-p 1883 \
-t "rk3588/seeed/demo" \
-m '{"device":"RK3588","temperature":25.6}'Paso 8: Verificar el mensaje recibido en Node-RED
Vuelve al editor Node-RED y revisa el panel Debug messages. El nodo de entrada MQTT debería reenviar el mensaje al nodo Debug.
El mensaje debería contener los siguientes datos:
{
"device": "RK3588",
"temperature": 25.6
}Como Output del nodo de entrada MQTT está configurado para detectar JSON automáticamente, Node-RED puede mostrar el contenido como un objeto JavaScript analizado. El panel también identifica el tema como rk3588/seeed/demo.

La recepción correcta confirma esta ruta de comunicación:
Terminal reComputer RK → broker público de HiveMQ → Node-RED MQTT in → Debug
Conclusión
Has configurado Node-RED en un dispositivo reComputer RK Series para conectarse a un broker MQTT, suscribirse a un tema y recibir un mensaje JSON publicado desde el terminal del dispositivo. Esto proporciona una base sencilla para desarrollar aplicaciones IoT basadas en MQTT en la plataforma RK.
En tutoriales posteriores, el flujo MQTT puede ampliarse para procesar datos de sensores, publicar mensajes con un nodo mqtt out o integrarse con otros protocolos industriales y paneles.