Monitoreo remoto de sensores con MQTT y dashboard web
Arquitectura y configuración para monitorear sensores de temperatura, humedad y presión en tiempo real usando MQTT y un dashboard web.
Maykol Rey
Monitoreo remoto de sensores con MQTT y dashboard web
Una de las aplicaciones más comunes de IoT es el monitoreo remoto de variables físicas: temperatura, humedad, presión, niveles, etc. En este artículo veremos cómo diseñar una arquitectura robusta usando MQTT como columna vertebral y un dashboard web para visualización.
Arquitectura propuesta
[Sensores físicos]
|
[ESP32 / nodo IoT]
|
MQTT TLS
|
[Broker MQTT (Kuska)]
|
+----+----+
| |
WebSocket API REST + DB
| |
[Dashboard] [Históricos / Apps]
Los beneficios de esta arquitectura:
- Desacoplamiento total entre sensores y visualización
- Escalabilidad horizontal agregando más nodos sin tocar el backend
- Tolerancia a fallos gracias a la naturaleza asíncrona de MQTT
¿Qué sensores usar?
Para un sistema de monitoreo ambiental básico recomiendo:
| Sensor | Variable | Interfaz | Precio aprox. |
|---|---|---|---|
| DHT22 | Temp + Humedad | OneWire | ~$5 USD |
| BME280 | Temp + Hum + Presión | I2C/SPI | ~$8 USD |
| DS18B20 | Temperatura | OneWire | ~$3 USD |
| SHT30 | Temp + Humedad | I2C | ~$6 USD |
Código ESP-IDF de ejemplo
Este fragmento lee un BME280 por I2C y publica los valores cada 30 segundos:
#define TOPIC_TEMP "proyecto/sensor/temperatura"
#define TOPIC_HUM "proyecto/sensor/humedad"
void publish_sensor_data(void *arg) {
float temp = bme280_read_temperature();
float hum = bme280_read_humidity();
char buf[16];
snprintf(buf, sizeof(buf), "%.1f", temp);
esp_mqtt_client_publish(client, TOPIC_TEMP, buf, 0, 1, 0);
snprintf(buf, sizeof(buf), "%.1f", hum);
esp_mqtt_client_publish(client, TOPIC_HUM, buf, 0, 1, 0);
ESP_LOGI(TAG, "Publicado: temp=%.1f hum=%.1f", temp, hum);
}
Visualización en el dashboard
Con Kuska IoT, cada mensaje MQTT queda registrado automáticamente. Puedes:
- Ver los últimos valores de cada sensor en el dashboard en tiempo real
- Consultar históricos con filtros por fecha y proyecto
- Exponer los datos por API REST para integrarlos con sistemas externos
Conclusión
MQTT + un dashboard web es la combinación más efectiva para monitoreo remoto. Con un ESP32 y sensores básicos puedes tener un sistema productivo funcionando en horas, no en semanas. La clave está en elegir los sensores adecuados para tu entorno y definir una estructura de topics clara desde el inicio.