Arduino - MQTT
En este tutorial, aprenderemos a usar Arduino para enviar/recibir datos a un broker MQTT utilizando el protocolo MQTT. En detalle, aprenderemos:
- Cómo conectar Arduino al broker MQTT
- Cómo programar Arduino para enviar datos al broker MQTT publicando datos en un tema MQTT
- Cómo programar Arduino para recibir datos suscribiéndose a un tema MQTT

Exploraremos dos casos de uso diferentes:
- Usando Arduino con un broker MQTT en línea.
- Usando Arduino con el broker MQTT instalado en tu PC.
Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables STEM V4 IoT Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Acerca de Arduino y MQTT
Asumiendo que ya estás familiarizado con el protocolo MQTT. Si no, por favor investiga en Internet. Este tutorial se centra en programar Arduino para enviar y recibir datos utilizando el protocolo MQTT.
A continuación se presentan los casos de uso de Arduino con MQTT:
- Arduino se conecta a un broker MQTT en línea, por ejemplo: un broker Mosquitto en línea, AWS IoT...
- Arduino se conecta a un broker MQTT instalado en tu PC, por ejemplo: broker Mosquitto, broker HiveMQ
- Arduino se conecta a un broker MQTT instalado en tu Raspberry Pi, por ejemplo: broker Mosquitto
- Arduino se conecta a un broker MQTT instalado en la nube: por ejemplo, broker Mosquitto o HiveMQ en AWS EC2
En este tutorial, comenzaremos comprobando rápidamente si Arduino puede conectarse a un broker Mosquitto en línea. Arduino publicará y se suscribirá a este broker a través de Internet.
A continuación, pasaremos a instalar el broker Mosquitto en nuestro PC. Luego conectaremos Arduino al broker MQTT instalado en nuestro PC, y continuaremos publicando y suscribiéndonos a datos a través de este broker local.
Una vez que hayas completado este tutorial, puedes seguir aprendiendo sobre Arduino con MQTT en los siguientes tutoriales:
Conecta Arduino a un broker MQTT en línea
En esta parte, aprenderemos a conectar Arduino a test.mosquitto.org, un broker MQTT en línea creado por Mosquitto. Tenga en cuenta que este broker debe utilizarse únicamente para fines de prueba.
Código de Arduino
El código de Arduino que se encuentra a continuación hace:
- Conectar al broker MQTT
- Suscribirse a un tema
- Publicar periódicamente mensajes en el mismo tema al que se suscribe
Pasos R\u00e1pidos
- Si es la primera vez que usas Arduino Uno R4, consulta cómo configurar el entorno para Arduino Uno R4 en Arduino IDE.
- Abre Arduino IDE en tu PC
- Abre el Gestor de Bibliotecas haciendo clic en el icono Gestor de Bibliotecas en la barra de navegación izquierda de Arduino IDE
- Escribe MQTT en el cuadro de búsqueda, luego busca la biblioteca MQTT de Joel Gaehwiler.
- Haz clic en el botón Instalar para instalar la biblioteca MQTT.

- Escribe ArduinoJson en la caja de búsqueda, y luego busca la biblioteca ArduinoJson de Benoit Blanchon.
- Haz clic en el botón Instalar para instalar la biblioteca ArduinoJson.

- Copia el código anterior y ábrelo con Arduino IDE
- Reemplaza la información de WiFi (SSID y contraseña) en el código por la tuya.
- En el código verás la palabra 'YOUR-NAME' tres veces. Reemplaza esta palabra con tu nombre o caracteres aleatorios (solo caracteres alfabéticos, sin espacios). Esto es necesario porque si no haces el cambio, puede haber varias personas ejecutando este código al mismo tiempo, lo que podría provocar conflictos porque los IDs de cliente MQTT y los temas son los mismos para todos.
- Haz clic en el botón Upload en Arduino IDE para cargar el código en Arduino
- Abre el Monitor Serial
- Observa el resultado en el Monitor Serial.
Como puedes ver, Arduino publica mensajes al broker MQTT y luego recibe de vuelta el mismo mensaje. Eso se debe a que el código anterior se suscribe al mismo tema al que publica datos. Si no quieres que Arduino reciba el mensaje que publica, simplemente haz que el tema SUBSCRIBE sea diferente del tema PUBLISH.
Conecta Arduino al broker MQTT instalado en tu PC
Instalación del broker MQTT de Mosquitto
- Descargar el Broker MQTT de Mosquitto
- Instálelo en la unidad D: en lugar de la unidad C:. Evite instalar el broker Mosquitto en la unidad C: para prevenir posibles problemas.
Ejecutar el broker MQTT de Mosquitto
Ahora, comprobemos si el broker MQTT funciona correctamente siguiendo estos pasos:
- Vaya al directorio donde se instaló Mosquitto. Por ejemplo: D:\Draft\mosquitto>
- Cree un nuevo archivo llamado test.conf, copie el contenido a continuación y guárdelo en ese directorio:
- Abra un símbolo del sistema como administrador en su PC. Llamémoslo Ventana del Bróker. No lo cierre hasta el final del tutorial.

- Ejecuta los comandos a continuación uno por uno:
- Verás:
- Abra otro Símbolo del sistema como administrador en su PC.
- Encuentre la dirección IP de su PC ejecutando el siguiente comando:
- Anota la dirección IP para uso posterior. En el ejemplo anterior: 192.168.0.26
Probar si funciona el broker de Mosquitto
- Abre otro Símbolo del sistema como administrador en tu PC. Llamémoslo Ventana del Suscriptor
- Suscríbete a un tema ejecutando los siguientes comandos uno por uno (reemplázala por tu dirección IP):
- Abre otro símbolo del sistema como Administrador en tu PC. Llamémosla Ventana de Publicación
- Publica un mensaje en el mismo tema ejecutando los siguientes comandos uno a uno (reemplaza con tu dirección IP):
- Verás:
Verás que ese mensaje se reenvía a la Ventana del Suscriptor como se muestra a continuación:
Ahora, ya has instalado con éxito el broker MQTT Mosquitto en tu PC. Por favor, NO cierres las tres ventanas: Ventana del broker, Ventana del suscriptor, y Ventana del publicador. Las usaremos a continuación.
Código de Arduino
El código de Arduino a continuación hace:
- Conéctate al broker MQTT
- Suscríbete a un tema
- Publica periódicamente mensajes en otro tema
Pasos R\u00e1pidos
- Copia el código anterior y ábrelo con Arduino IDE
- Reemplaza la información de WiFi (SSID y contraseña) en el código por la tuya.
- Reemplaza la dirección del broker MQTT en el código (nombre de dominio o dirección IP).
- Haz clic en el botón Subir en Arduino IDE para cargar el código en Arduino
Enviar mensaje desde Arduino a la PC vía MQTT
Los códigos de Arduino publican datos en el tema MQTT arduino-001/send, Ventana del suscriptor en la PC se suscribe a ese tema para recibir los datos.
- Abre el Monitor Serial y verás que Arduino publica periódicamente un mensaje en un tema.
- Ver la Ventana del Suscriptor, verás que recibe el mensaje publicado por Arduino como se muestra a continuación:
Enviar mensaje desde la PC a Arduino vía MQTT
Arduino se suscribe al tema arduino-001/receive, Ventana del Publicador en la PC publica un mensaje a ese tema para enviarlo al Arduino.
- Publica un mensaje en el tema al que Arduino está suscrito ejecutando el siguiente comando en Ventana de Publicación:"
- Verá que este mensaje es recibido por Arduino en el Monitor Serial como se muestra a continuación:
Video Tutorial
Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.