14. Conclusiones y trabajo futuro - diegogopa/Challenge-IOT GitHub Wiki
14. Conclusiones y trabajo futuro
14.1 Conclusiones
- Se desarrolló AquaMonitor v3.2, un prototipo IoT basado en ESP32 que integra cuatro sensores (HC-SR04, DHT22, GUVA-S12SD y BMP180) para monitorear un punto de almacenamiento de agua en el contexto de El Niño 2026 en Sabana Centro.
- La medición de nivel alcanzó un error medio de 0.18 cm (máx. 0.60 cm, R² = 0.9998) gracias a la mediana de 5 muestras, el filtro EMA y la compensación de la velocidad del sonido por temperatura.
- La lógica de fusión basada en reglas combina el nivel con su tasa de cambio, un índice de evaporación (temperatura, humedad y UV) y la tendencia de la presión. Esto permitió pasar de 3 a 5 estados y, en particular, distinguir una fuga de una pérdida por evaporación y adelantar la alerta de sequía cuando el clima es desfavorable.
- En el banco de pruebas se detectaron desborde, sequía, riesgo de sequía y falla del sensor en 20/20 repeticiones; la clasificación global alcanzó precisión y sensibilidad de 0.96 y exactitud de 0.93 en 30 pruebas. La histéresis se verificó en los umbrales 95/90 % y 20/25 %.
- Ejecutar la medición en una tarea FreeRTOS, con dos mutex (datos y bus I2C), permitió que la adquisición, la interfaz local y el servidor web funcionen de forma concurrente sin bloquearse.
- La detección de fallas por componente y la reinicialización automática del BMP180 y la OLED aumentaron la robustez: un sensor desconectado se reporta en ≈ 7 s (≈ 12 s el ultrasónico) y el sistema se recupera sin reiniciar.
- Las alertas in situ (OLED y buzzer, ≈ 7 s) son independientes de la red; el tablero de control embebido (≈ 9 s) cumple el acceso restringido a la WLAN (403 fuera de la subred, 401 sin credenciales) y permite silenciar la alarma en menos de 1.5 s.
14.2 Retos encontrados
- Compartir el bus I2C entre la OLED y el BMP180 accedidos desde dos tareas distintas, lo que obligó a introducir un segundo mutex y timeouts en
Wire. - Detectar la desconexión de sensores sin reiniciar el equipo (verificación de presencia en I2C, contadores de fallas, criterios de validez del ADC).
- La señal analógica del GUVA-S12SD: un pin desconectado no se distingue de una lectura real de 0 UV.
- Adaptar la salida ECHO de 5 V a 3.3 V: se compraron las resistencias, pero no se implementó el divisor.
- Definir umbrales de fuga y sequía y validarlos en tiempo corto, lo que requirió ventanas aceleradas.
- Calibrar sin instrumentos de referencia certificados (UV y presión).
- Integrar toda la electrónica en la carcasa conservando la exposición del GUVA y la ventilación del DHT22 y el BMP180.
14.3 Trabajo futuro
- Recalibrar el nivel en el rango y montaje finales y aplicar las constantes
CAL_*propuestas en el firmware. - Medir el consumo real y dimensionar alimentación solar con batería para instalación aislada.
- Validar la detección de fuga con la ventana real de 5 min y más repeticiones; ajustar
UMBRAL_FUGA_EXTRA_PCT_HORA. - Validar la regla de presión con datos de campo de varias semanas.
- Mejorar la detección de desconexión del GUVA (resistencia de pull-down o pull-up conocida en la entrada).
- Incorporar un sensor de caudal.
- Almacenamiento persistente del histórico (flash/LittleFS o microSD) y reloj de tiempo real o NTP.
- HTTPS o autenticación por token para el tablero.
- Comunicación LoRa para redes de varias estaciones y una plataforma centralizada.
- Complementar las reglas con un puntaje de riesgo continuo o un modelo predictivo entrenado con el histórico.
- Ensayo de grado de protección de la carcasa (IEC 60529).
- Montar el divisor 1 kΩ/2 kΩ en el ECHO.
14.4 Limitaciones
Ver sección 12.3.