Protocolos
MQTT
El protocolo pub/sub estándar del IoT
Especificación oficial ↗MQTT
Si te preguntas mqtt qué es exactamente y por qué domina el IoTITérminoIoT (Internet de las cosas)El IoT (Internet of Things) es la red de objetos físicos con sensores, software y conectividad que recogen e intercambian datos y actúan de forma autónoma.Ver perfil industrial, la respuesta corta: es el protocolo pub/sub más ligero que existe para redes inestables. Si partes de cero, primero conviene entender qué es IoT y cómo funciona el ecosistema; si ya tienes esa base, sigue leyendo.
Resumen ejecutivo
- MQTT (Message Queuing Telemetry Transport) es un protocolo de mensajería pub/sub ligero estandarizado en ISO/IEC 20922 y mantenido por OASIS.
- Funciona sobre TCP/IP con cabeceras minúsculas (2 bytes fijos), pensado para dispositivos con poca CPU, batería limitada y redes inestables.
- Arquitectura: clientes (publishers y subscribers) hablan con un broker central que distribuye mensajes por topics jerárquicos.
- Es el protocolo dominante en IoT industrial (Industria 4.0), smart home (Home Assistant, Tasmota, Shelly) y mensajería masiva (WhatsApp y Facebook Messenger lo usan internamente).
- Versiones: MQTT 3.1.1 (ubiquo, 2014) y MQTT 5.0 (2019, añade shared subscriptions, reason codes, message expiry).
- Puertos: 1883 (TCP plano), 8883 (TLS), 80/443 (WebSockets).
- No usar cuando: necesitas request/reply síncrono (usa HTTP/CoAPCTérminoCoAPCoAP (Constrained Application Protocol) es un protocolo web tipo REST sobre UDP para dispositivos muy limitados, definido en el RFC 7252 del IETF.Ver perfil), tienes mensajes grandes (>256 MB), o no puedes mantener un broker.
Qué es MQTT y para qué sirve
MQTT son las siglas de Message Queuing Telemetry Transport. Es un protocolo de comunicación máquina-a-máquina (M2M) diseñado en 1999 por Andy Stanford-Clark (IBM) y Arlen Nipper (Cirrus Link) para monitorizar oleoductos vía satélite — entornos con ancho de banda escaso y conexiones que se cortan. En Plataforma IoT lo cubrimos junto al resto de protocolos IoT que conforman el ecosistema de conectividad.
A diferencia de HTTP (que es punto a punto, request/response, con headers verbosos), MQTT usa un modelo publicación/suscripción asíncrono con un intermediario:
[Dispositivo A] → publica en topic "fabrica/linea1/temperatura" → [Broker] → distribuye a [Dispositivo B, C, D] suscritosEl broker (Mosquitto, EMQXETérminoEMQXEMQX es un broker MQTT open source de alta escala (escrito en Erlang) para producción IoT, con clustering y soporte multiprotocolo.Ver perfil, HiveMQ, AWS IoT Core, etc.) recibe los mensajes y los reenvía a todos los clientes suscritos al topic correspondiente. El emisor no sabe ni necesita saber quién está escuchando — eso desacopla productores de consumidores y permite escalar a millones de dispositivos.
Cómo funciona MQTT
1. Conexión
Un cliente abre una conexión TCP al broker (por defecto puerto 1883) y envía un paquete CONNECT con:
client_id(único por dispositivo)usernameypasswordopcionaleskeep_alive(en segundos: cada cuánto el cliente envía unPINGREQpara mantener viva la sesión)will messageopcional: mensaje que el broker publicará si el cliente se desconecta abruptamenteclean_session: si se preservan las suscripciones entre conexiones
El broker responde con CONNACK (success o código de error).
2. Topics
Los topics son strings UTF-8 jerárquicos separados por /:
fabrica/lineaA/maquina01/temperatura
fabrica/lineaA/maquina01/vibracion
hogar/salon/luz/estadoLos suscriptores pueden usar wildcards:
+(single level):fabrica/+/maquina01/temperaturarecibe temperatura de máquina01 en cualquier línea.#(multi level):fabrica/#recibe todo bajo fabrica.
3. Publish / Subscribe
Para publicar: paquete PUBLISH con topic, payload (cualquier bytes — texto, JSON, binario hasta 256 MB), qos y retain.
Para suscribirse: paquete SUBSCRIBE con lista de topics y QoSQTérminoQoS de MQTTEl QoS (Quality of Service) de MQTT define la garantía de entrega de un mensaje en tres niveles: 0 (como mucho una vez), 1 (al menos una vez) y 2 (exactamente una vez).Ver perfil deseado por cada uno.
4. QoS (Quality of Service)
MQTT define 3 niveles:
| Nivel | Garantía | Coste | Cuándo usar |
|---|---|---|---|
| **QoS 0** | "Fire and forget" (al menos 0, puede perderse) | 1 paquete | Datos de telemetría continua donde perder uno es aceptable |
| **QoS 1** | "At least once" (puede llegar duplicado) | 2 paquetes (PUBLISH + PUBACK) | La mayoría de casos |
| **QoS 2** | "Exactly once" (sin pérdidas ni duplicados) | 4 paquetes (handshake completo) | Comandos críticos (apertura puerta, transferencia financiera) |
Aviso de seguridad: los niveles de QoS son independientes del cifrado. MQTT sin TLS transmite todo en texto plano, incluidas credenciales. Para despliegues en producción consulta nuestra guía de seguridad en IoT donde detallamos las mejores prácticas de autenticación y cifrado para brokers.
Aviso: QoS 2 añade latencia significativa. En IoT industrial, casi siempre QoS 1 + idempotencia en el consumidor es mejor que QoS 2.
5. Retained messages
Si publicas con retain=true, el broker guarda el último mensaje del topic. Cuando un nuevo cliente se suscribe, recibe inmediatamente ese último valor. Útil para estado actual (ej. "última temperatura conocida").
6. Last Will & Testament (LWT)
Si el cliente se desconecta abruptamente (corte de red, crash), el broker publica automáticamente el "will message" que el cliente declaró en CONNECT. Patrón típico: device/123/status con valor online retained + LWT offline retained, permite presencia en tiempo real.
Casos de uso reales
| Sector | Ejemplo concreto |
|---|---|
| **Industria 4.0** | Sistemas SCADA modernos (Ignition, Node-RED) usan MQTT para conectar PLCs a dashboards en tiempo real. Sparkplug B es una especificación encima de MQTT para industria. |
| **Smart Home** | Home Assistant + Mosquitto + Zigbee2MQTT + Tasmota: 2M+ hogares en el mundo. Shelly devices nativamente hablan MQTT. |
| **Smart Cities** | Sensores de tráfico, calidad del aire y aparcamiento envían telemetría a brokers municipales por MQTT sobre [LoRaWAN](/protocolos/lorawan) o [NB-IoT](/protocolos/nb-iot). |
| **Logística / Asset tracking** | Trackers GPS con módem 4G envían posiciones cada N segundos por MQTT — sobrevive cortes de cobertura por el `will message`. |
| **Mensajería masiva** | Facebook Messenger usa MQTT sobre TCP/TLS para el push notification system (40-100B msgs/día). WhatsApp también, históricamente. |
| **Vehículos conectados** | Tesla, Volkswagen y BMW usan MQTT para telemetría de flota. |
Brokers MQTT principales
| Broker | Tipo | Cuándo elegirlo |
|---|---|---|
| **Mosquitto** | Open source, C, single node | Proyectos pequeños/medianos, edge gateway, on-premises |
| **EMQX** | Open source + commercial, Erlang, cluster | Producción a escala (10M+ conexiones), multi-protocol |
| **HiveMQ** | Commercial (free CE), Java, cluster | Enterprise IoT con SLA, integración Kafka |
| **VerneMQ** | Open source, Erlang, cluster | Alternativa libre a EMQX, fuerte en latencia |
| **AWS IoT Core** | Managed cloud | Si ya estás en AWS y quieres olvidarte de la operativa |
| **Azure IoT Hub** | Managed cloud (MQTT subset) | Si stack Microsoft, integración Stream Analytics |
| **NanoMQ** | Open source, C, edge-first | Gateway IoT industrial constrained |
Ventajas y desventajas
Ventajas
- Ligero: cabecera de 2 bytes fijos, ideal para microcontroladores (ESP32, nRF52).
- Resiliente a redes pobres: pensado para conexiones intermitentes.
- Asíncrono: desacopla productores y consumidores, escala bien.
- Standard maduro: ISO/IEC 20922, ecosistema enorme.
- TLS soportado: cifrado de extremo a extremo en transporte.
Desventajas
- Necesita broker: no es peer-to-peer; el broker es punto único de fallo si no haces clustering.
- No nativamente seguro: sin TLS, todo va en plano. Sin auth, cualquiera publica. Hay que configurarlo.
- Difícil de debugear: payload binario, multi-publisher, requiere herramientas (MQTT Explorer, mosquitto_sub).
- QoS 2 caro: 4-way handshake añade latencia.
- Sin discovery automático: no hay forma estándar de listar topics activos (en MQTT 5 puedes hacerlo con
$SYS/, pero depende del broker).
MQTT vs HTTP vs CoAP
| Aspecto | MQTT | HTTP | CoAP |
|---|---|---|---|
| Modelo | Pub/sub asíncrono | Request/response | Request/response |
| Transporte | TCP (+ WebSockets) | TCP | UDP |
| Overhead | Mínimo (2B header) | Alto (headers texto) | Bajo (4B header) |
| Multicast | No | No | Sí |
| Dispositivos | MCU+ (32 KB RAM) | Constrained difícil | Muy constrained (8 KB) |
| Casos uso | Telemetría continua | APIs REST | Sensores extremos low-power |
Resumen: MQTT gana cuando tienes muchos dispositivos enviando datos continuos. HTTP gana para APIs request/response y catálogos. CoAP gana en dispositivos extremadamente constrained que no pueden sostener TCP. Si aún estás evaluando qué protocolo encaja en tu proyecto, la sección de plataformas IoT puede ayudarte a entender el stack completo.
Cómo empezar: setup mínimo
1. Levanta un broker local (Mosquitto)
# macOS
brew install mosquitto
brew services start mosquitto
# Docker (cross-platform)
docker run -d --name mosquitto -p 1883:1883 eclipse-mosquitto2. Suscríbete a un topic
mosquitto_sub -h localhost -t "test/topic" -v3. Publica desde otra terminal
mosquitto_pub -h localhost -t "test/topic" -m "Hola IoT"Verás el mensaje aparecer en el suscriptor. Ya tienes pub/sub funcionando.
MQTT también es el protocolo de elección para patrones de edge computing en IoT: el broker puede correr en un gateway local y procesar los datos antes de subirlos al cloud, reduciendo latencia y coste de transmisión.
4. Conecta un MCU (ESP32 + Arduino)
#include <WiFi.h>
#include <PubSubClient.h>
WiFiClient espClient;
PubSubClient client(espClient);
void setup() {
WiFi.begin("ssid", "pass");
client.setServer("192.168.1.10", 1883);
client.connect("esp32-01");
client.publish("hogar/salon/temperatura", "22.5");
client.subscribe("hogar/salon/luz/cmd");
}
void callback(char* topic, byte* payload, unsigned int length) {
// procesar comando entrante
}Recursos primarios
- OASIS MQTT specification — spec oficial (acceso: 2026-05)
- mqtt.org — sitio oficial OASIS (acceso: 2026-05)
- Eclipse Mosquitto — broker reference open source
- HiveMQ MQTT Essentials — serie pedagógica
- MQTT 5 features (acceso: 2026-05)
Preguntas frecuentes
¿Qué puertos utiliza MQTT?+
Por defecto 1883 (TCP plano, nunca usar en producción) y 8883 (TLS). Sobre WebSockets: 80 (ws) y 443 (wss). Los brokers permiten configurar puertos custom.
¿WhatsApp es MQTT?+
Históricamente sí, WhatsApp usó MQTT sobre TCP/TLS para su sistema de mensajería. Facebook Messenger también. Hoy es probable que usen una variante propia derivada de MQTT, no el estándar puro.
¿Cuáles son las desventajas de MQTT?+
Necesita broker (single point of failure sin clustering), seguridad no es default (requiere configurar TLS + auth), QoS 2 caro, payload binario difícil de debugear sin tooling.
¿Qué es un broker MQTT?+
El servidor central que recibe mensajes de publishers y los reenvía a subscribers según topics. Ejemplos: Mosquitto, EMQX, HiveMQ, AWS IoT Core.
¿MQTT vs HTTP cuál es mejor para IoT?+
MQTT para telemetría continua de muchos dispositivos. HTTP para APIs REST y catálogos. En el mismo proyecto pueden coexistir: dispositivos hablan MQTT, dashboards consumen HTTP.
¿MQTT 5 vs MQTT 3.1.1 vale la pena?+
Sí si tu broker y librerías cliente lo soportan. MQTT 5 añade: shared subscriptions (load balancing), reason codes (debug mejor), message expiry, user properties, request/response pattern. La mayoría de brokers modernos lo soportan.
Dispositivos compatibles
- ESP32, ESP8266, RPi, AVR con sockets, gateways
Hardware relacionado
ESP32WiFi + BT/BLE SoC dual-core a precio de €
Raspberry Pi 5SBC ARM Cortex-A76 quad-core — el edge para IoT serio
- Raspberry Pi IoT: gateway, edge node y más allá del MCUGuía técnica de Raspberry Pi en proyectos IoT: modelos (Pi 5, Zero 2W, CM4), uso como gateway MQTT y edge node, GPIO, co
- Sensores IoT: panorama técnico por categoría y busSensores IoT por categoría: ambientales (BME280, SHT40), IMU, presencia (PIR, mmWave), corriente y GPS. Buses I2C/SPI/UA
Empresas
Artículos relacionados

Soluciones de IoT industrial: casos de uso por sector
Las soluciones de IoT industrial convierten plantas heredadas en operaciones guiadas por datos. Una empresa regional de procesamiento de alimentos trabaja a tre
28 may 2026

¿Qué es la IA industrial? Guía práctica para fábricas 2026
¿Qué es la IA industrial y por qué está de pronto en todas partes? La respuesta corta: es inteligencia artificial aplicada a operaciones físicas. Pero la respue
28 may 2026

Cloud Studio IoT v1.7.1: 2FA nativa, downlinks LoRa y control de alarmas más fino
Cloud Studio IoT v1.7.1 trae 2FA nativa, downlinks LoRa bidireccionales vía ThingPark y Loriot, suspensión de alarmas de primera clase con auditoría, y un toolkit de widgets más fino para quien opera despliegues IoT cada día.
21 may 2026

Día de Internet 2026: del primer mensaje ARPANET al futuro del Internet of Things
Descubre por qué se celebra el Día de Internet el 17 de mayo y cómo ha evolucionado del primer mensaje ARPANET al Internet of Things en 2026.
17 abr 2026

Plataforma SCADA IoT en 2026: Evaluación para Compradores
Una plataforma SCADA IoT sustituyó al HMI aislado en 2026. Esto es lo que integradores y fabricantes deben evaluar antes de elegir.
15 abr 2026

De Islandia a Buenos Aires: Cómo la iluminación inteligente y el IoT están transformando las ciudades de todo el mundo
La iluminación inteligente de calles es un sistema avanzado que utiliza sensores, conectividad y controles inteligentes para adaptar la iluminación según condiciones en tiempo real como el flujo de tráfico, el clima o la presencia humana. Estos sistemas integran tecnología LED pa
15 abr 2026