Ejemplos de código

Ejemplo MQTT con Node-RED

Conecta Node-RED a un broker MQTT con un flujo importable. Empieza con el broker público gratuito y después apunta el mismo código a un broker privado y seguro en ConnectMQ.

Código fuente en GitHubmqtt-code-samples/node-redClona los ejemplos completos y listos para ejecutar. Se agradecen estrellas y pull requests. Ver en GitHub

1. Pruébalo en el broker público gratuito

Sin necesidad de cuenta: conéctate a broker.connectmq.com en el puerto 1883 y empieza a publicar en segundos.

flow.json
[
  { "id": "cmq_broker", "type": "mqtt-broker", "name": "Broker de ConnectMQ",
    "broker": "broker.connectmq.com", "port": "1883", "usetls": false,
    "protocolVersion": "4", "keepalive": "60", "cleansession": true },
  { "id": "cmq_inject", "type": "inject", "name": "Enviar una lectura cada 10 s", "x": 160, "y": 80,
    "props": [{ "p": "payload" }], "payload": "{\"temperature\":21.5}", "payloadType": "json",
    "repeat": "10", "once": true, "wires": [["cmq_out"]] },
  { "id": "cmq_out", "type": "mqtt out", "name": "Publicar una lectura en JSON", "x": 420, "y": 80,
    "topic": "your-project/sensors/temperature", "qos": "1", "retain": "false",
    "broker": "cmq_broker", "wires": [] },
  { "id": "cmq_in", "type": "mqtt in", "name": "Suscribirse al topic de temperatura", "x": 160, "y": 160,
    "topic": "your-project/sensors/#", "qos": "1", "datatype": "auto-detect",
    "broker": "cmq_broker", "wires": [["cmq_debug"]] },
  { "id": "cmq_debug", "type": "debug", "name": "Se ejecuta con cada mensaje de un topic suscrito", "x": 420, "y": 160,
    "active": true, "complete": "payload", "wires": [] }
]

Broker MQTT público gratuito

El broker público es compartido: cualquiera puede suscribirse a tus topics. Nunca envíes por él contraseñas, datos personales ni información confidencial.

Acerca del broker MQTT público gratuito

2. Pasa a producción con ConnectMQ

Para dispositivos reales, usa un broker MQTT serverless privado en ConnectMQ en lugar del público: cifrado TLS, usuario y contraseña para cada dispositivo y control de acceso por topic, totalmente gestionado. Empieza con el plan Free, sin tarjeta.

Sustituye YOUR_BROKER_HOST, YOUR_USERNAME y YOUR_PASSWORD por los valores de tu panel de ConnectMQ.

flow.json
[
  { "id": "cmq_tls", "type": "tls-config", "name": "TLS: el almacén de CA del sistema verifica el certificado del broker", "verifyservercert": true },
  { "id": "cmq_broker", "type": "mqtt-broker", "name": "Broker de ConnectMQ",
    "broker": "YOUR_BROKER_HOST", "port": "8883", "usetls": true, "tls": "cmq_tls",
    "protocolVersion": "4", "keepalive": "60", "cleansession": true,
    "credentials": { "user": "YOUR_USERNAME", "password": "YOUR_PASSWORD" } },
  { "id": "cmq_inject", "type": "inject", "name": "Enviar una lectura cada 10 s", "x": 160, "y": 80,
    "props": [{ "p": "payload" }], "payload": "{\"temperature\":21.5}", "payloadType": "json",
    "repeat": "10", "once": true, "wires": [["cmq_out"]] },
  { "id": "cmq_out", "type": "mqtt out", "name": "Publicar una lectura en JSON", "x": 420, "y": 80,
    "topic": "your-project/sensors/temperature", "qos": "1", "retain": "false",
    "broker": "cmq_broker", "wires": [] },
  { "id": "cmq_in", "type": "mqtt in", "name": "Suscribirse al topic de temperatura", "x": 160, "y": 160,
    "topic": "your-project/sensors/#", "qos": "1", "datatype": "auto-detect",
    "broker": "cmq_broker", "wires": [["cmq_debug"]] },
  { "id": "cmq_debug", "type": "debug", "name": "Se ejecuta con cada mensaje de un topic suscrito", "x": 420, "y": 160,
    "active": true, "complete": "payload", "wires": [] }
]

Preguntas frecuentes sobre MQTT con Node-RED

¿Cómo conecto Node-RED a un broker MQTT?

Instala mqtt in / mqtt out nodes, conéctate al host del broker en el puerto 1883 (o 8883 con TLS), suscríbete a un topic y publica mensajes en él. Los ejemplos de esta página se conectan al broker público gratuito broker.connectmq.com y a un broker privado de ConnectMQ.

¿Hay un broker MQTT gratuito para probar Node-RED?

Sí. broker.connectmq.com es un broker MQTT público y gratuito que no requiere cuenta. Cualquiera puede leer sus topics, así que úsalo solo para pruebas y con un prefijo de topic único.

¿Cómo protejo una conexión MQTT con Node-RED?

Conéctate mediante TLS en el puerto 8883 con un usuario y una contraseña de tu panel de ConnectMQ, y asigna a cada dispositivo sus propias credenciales y permisos de topic en lugar de usar el broker público.

Broker MQTT público gratuito

Prueba cualquier ejemplo en broker.connectmq.com: sin registro, con MQTT 3.1.1 y 5, TCP, TLS y WebSocket.

Acerca del broker MQTT público gratuito

MQTT serverless seguro para producción

Cuando llegue el momento de usar dispositivos reales, ejecuta el mismo código en un broker de ConnectMQ privado y totalmente gestionado, con TLS y credenciales por dispositivo.

Empieza gratis

Tu broker MQTT privado, a unos pocos clics

Crea una cuenta, obtén las credenciales de tu broker y conecta tu primer dispositivo, sin servidores que instalar, parchear ni escalar.

MQTT sobre WebSocket: conecta un navegador a un broker MQTT con MQTT.js

Los navegadores no pueden abrir sockets TCP directos, así que las aplicaciones web hablan MQTT sobre WebSocket. Construye un cliente de navegador y un cliente Node.js funcionales contra broker.connectmq.com y aprende a resolver los errores de conexión más comunes.

9 min de lectura