Monitorización de Silos Industriales en Tiempo Real con ESP32, Backend Predictivo y Sensores Radar de 120m
Sistema IoT completo diseñado desde cero tras un estudio técnico-económico: selección de sensores radar de libre espacio (rango 120m), desarrollo de firmware en ESP32 con ADC de 24 bits, backend en FastAPI con TimescaleDB, modelo predictivo basado en Prophet y descomposición STL, y frontend React con WebSockets para visualización en tiempo real y proyecciones de consumo.
// 01_EL RETO
El reto
La planta carecía de cualquier sistema de medición de nivel en sus silos de HDPE. El inventario se estimaba visualmente, con errores recurrentes que provocaban desabastos o sobrecostos por compras de emergencia. Se requería una solución completa que incluyera: estudio de selección de sensores adecuados para material plástico en polvo/gránulos, considerando polvo en suspensión, temperatura y vibraciones; diseño de infraestructura de comunicaciones en áreas con cobertura WiFi limitada; y un sistema de monitoreo que no solo mostrara niveles, sino que predijera consumos para planificar reaprovisionamiento. El presupuesto era ajustado, lo que obligó a optimizar cada componente, desde la electrónica hasta el software, evitando soluciones comerciales de alto costo y apostando por arquitectura open-source y hardware de bajo consumo.
// 02_ROLE
Mi rol y tecnologías
Estudio técnico-económico completo, selección de componentes, diseño de arquitectura end-to-end, desarrollo de firmware, backend, modelo predictivo y frontend. Además, elaboración de especificaciones para instalación en campo (cableado, protección IP, alimentación, puesta a tierra) y pruebas de validación.
- Estudio de mercado y selección de sensores radar de libre espacio con rango 120m, adecuados para material granular y condiciones ambientales (polvo, temperatura -20°C a 60°C, vibración).
- Diseño de la electrónica de acondicionamiento: resistencia shunt de alta precisión, protección ESD y filtrado pasivo para la señal 4-20 mA.
- Firmware en C++ para ESP32 con lectura diferencial del ADS1220 vía SPI, sincronización por DRDY, y pipeline de filtrado (validación de rango, detección de outliers por delta, filtro de mediana).
- Backend en Python con FastAPI: endpoints de telemetría, gestión de silos, calibración multipunto con interpolación lineal, y proxy para configuración remota de ESP32 (HTTP).
- Persistencia en TimescaleDB con hipertablas particionadas por día y optimización de consultas para series de tiempo de alta frecuencia (lecturas cada 5-10 segundos).
- Modelo predictivo basado en Prophet con descomposición STL (tendencia, estacionalidad y residuo) para pronosticar niveles y calcular tiempo estimado de vaciado con intervalos de confianza.
- Sistema de difusión en tiempo real vía WebSocket (ConnectionManager) y frontend React con ECharts para gráficos interactivos de nivel, consumo y predicciones.
- Especificaciones de instalación en campo: selección de cableado apantallado, protecciones IP65 para nodos, sistema de alimentación 24V DC con respaldo y esquema de puesta a tierra para minimizar ruido.
// 03_SOLUTION
Solución e impacto
El sistema SMITS se diseñó tras un estudio que determinó que los sensores radar de libre espacio (FMCW) con rango de 120m, frecuencia 80 GHz y salida 4-20 mA eran la opción óptima para material granular, por su inmunidad al polvo y vibraciones. Cada sensor se conecta a un nodo ESP32 con ADS1220 de 24 bits, montado en gabinete IP65 con protección ESD y fuente dedicada. El firmware aplica validación de rango (3.5-20.5 mA), filtro por delta (>0.5 mA) y mediana (32 muestras) para eliminar ruido. Los datos se envían por HTTP POST al backend FastAPI, que calcula el nivel usando geometría del silo (cilindro + cono invertido) y calibración multipunto. La persistencia en TimescaleDB permite consultas rápidas. El modelo predictivo, ejecutado en segundo plano, usa Prophet con descomposición STL para generar pronósticos de nivel y consumo, actualizando métricas como 'horas hasta alerta' y 'horas hasta vacío'. El frontend React consume WebSockets para actualizaciones en tiempo real y muestra gráficos ECharts con histórico, tendencia y proyecciones. El backend también actúa como proxy para reconfigurar remotamente los ESP32 (intervalo de muestreo, offset) sin intervención física. Se documentaron todas las especificaciones de instalación y se realizaron pruebas de validación en campo.
Arquitectura conceptual
// 04_RESULTS
Resultados
100%
Eliminación de mediciones manuales
±0.1%
Precisión de nivel
120 m
Rango de sensores radar
< 500 ms
Latencia de difusión WebSocket
90%
Reducción de costos vs soluciones comerciales
24/7
Monitoreo continuo con alertas predictivas