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

  1. Recalibrar el nivel en el rango y montaje finales y aplicar las constantes CAL_* propuestas en el firmware.
  2. Medir el consumo real y dimensionar alimentación solar con batería para instalación aislada.
  3. Validar la detección de fuga con la ventana real de 5 min y más repeticiones; ajustar UMBRAL_FUGA_EXTRA_PCT_HORA.
  4. Validar la regla de presión con datos de campo de varias semanas.
  5. Mejorar la detección de desconexión del GUVA (resistencia de pull-down o pull-up conocida en la entrada).
  6. Incorporar un sensor de caudal.
  7. Almacenamiento persistente del histórico (flash/LittleFS o microSD) y reloj de tiempo real o NTP.
  8. HTTPS o autenticación por token para el tablero.
  9. Comunicación LoRa para redes de varias estaciones y una plataforma centralizada.
  10. Complementar las reglas con un puntaje de riesgo continuo o un modelo predictivo entrenado con el histórico.
  11. Ensayo de grado de protección de la carcasa (IEC 60529).
  12. Montar el divisor 1 kΩ/2 kΩ en el ECHO.

14.4 Limitaciones

Ver sección 12.3.