10. Configuracion experimental - diegogopa/Challenge-IOT GitHub Wiki
10. Configuración experimental
10.1 Objetivo
La configuración experimental define las condiciones utilizadas para validar el comportamiento del prototipo AquaMonitor v3.2. Las pruebas permiten evaluar calibración, clasificación de estados, respuesta ante condiciones críticas, robustez, notificaciones, repetibilidad y consumo.
Esta sección describe el protocolo de cada banco y sus formatos de registro; los resultados obtenidos se presentan en la sección 11. Todos los resultados numéricos corresponden a mediciones realizadas por el equipo, salvo el consumo de corriente (B6), que es una estimación a partir de hojas de datos y se identifica como tal.
10.2 Condiciones generales
| Parámetro | Configuración |
|---|---|
| Firmware | AquaMonitor v3.2, sin constantes de calibración aplicadas (CAL_T, CAL_H y CAL_P en 1.0 y 0.0) |
| Microcontrolador | ESP32 DevKit V1 |
| Sensor de nivel | HC-SR04 (ECHO directo al GPIO 18, sin divisor) |
| Sensor ambiental | DHT22 |
| Sensor UV | GUVA-S12SD |
| Sensor de presión | BMP180 (I2C 0x77) |
| Pantalla | OLED SH1106 I2C (0x3C) |
| Alarma | Buzzer activo |
| Periodo de sensado | 2 s (ciclo real ≈ 2.4 s) |
| Ventana de tasa de cambio | 5 min; 60 s durante la emulación acelerada |
| Ventana de tendencia de presión | 3 h; 60 s durante la emulación acelerada |
| Rango de nivel (firmware) | 4 cm = 100 % · 9 cm = 0 % |
| Rango de nivel (caracterización B1) | 5 cm = 100 % · 20 cm = 0 % |
| Histórico | 60 muestras, una por minuto (≈ 1 h), más los últimos 10 eventos, en RAM |
| Consulta del tablero | cada 4 s |
| Red | WLAN local; el tablero web se accede en http://192.168.1.19/ |
| Modelo a escala | Recipiente con rango de medición de 5 a 20 cm entre el sensor y la superficie del agua |
Nota: la caracterización del HC-SR04 se hizo entre 5 y 20 cm (rango del recipiente), mientras que el firmware usa 4–9 cm. El error en distancia es válido para ambos, pero el error en nivel con la geometría del firmware es mayor (ver 11.2).
10.3 Banco B1 — Calibración
Nivel de agua
Se midieron 7 distancias conocidas (5 a 20 cm, cada 2.5 cm) con regla o cinta métrica, y se tomaron 10 lecturas del sensor por distancia (L1–L10).
| Punto | Referencia (cm) | Promedio (cm) | Sesgo (cm) | σ (cm) | Error máx. (cm) |
|---|---|---|---|---|---|
| 1 | 5 | 5.15 | +0.15 | 0.12 | 0.30 |
| 2 | 7.5 | 7.68 | +0.18 | 0.09 | 0.30 |
| 3 | 10 | 10.15 | +0.15 | 0.08 | 0.30 |
| 4 | 12.5 | 12.59 | +0.09 | 0.07 | 0.20 |
| 5 | 15 | 15.14 | +0.14 | 0.11 | 0.30 |
| 6 | 17.5 | 17.69 | +0.19 | 0.23 | 0.40 |
| 7 | 20 | 20.39 | +0.39 | 0.10 | 0.60 |
Resultados reportados:
- Error medio: 0.18 cm.
- Error máximo: 0.60 cm (a 20 cm).
- Ajuste lineal:
y = 0.9895x − 0.051(distancia real = f(distancia medida)). - Coeficiente R²: 0.9998.
Temperatura y humedad
Se comparó el DHT22 con un higrómetro de referencia (resolución 0.1 °C) en tres condiciones de temperatura y tres de humedad.
| Variable | Condición | Referencia | DHT22 | Error (sesgo) |
|---|---|---|---|---|
| Temperatura | Ambiente (N = 10) | 29.7 °C | 29.4 °C | −0.30 °C |
| Temperatura | Calentador (N = 11) | 31.9 °C | 32.0 °C | +0.11 °C |
| Temperatura | Nevera (N = 8) | 11.4 °C | 8.55 °C | −2.85 °C (régimen transitorio, no usado para calibrar) |
| Humedad relativa | Ambiente (10 lecturas) | 52.0 % | 53.4 % | +1.45 % HR |
| Humedad relativa | Ambiente seco (10 lecturas) | 38.0 % | 39.8 % | +1.79 % HR |
| Humedad relativa | Humidificado (10 lecturas) | 72.1 % | 73.3 % | +1.14 % HR |
Limitación: con solo dos niveles de temperatura estacionarios, el ajuste lineal (Ref = 0.840·DHT22 + 5.00) es indicativo y no se aplicó en el firmware. Para la humedad, el ajuste propuesto es Ref = 1.019·DHT22 − 2.51 (R² = 0.9997), tampoco aplicado.
Radiación UV
No se contó con un radiómetro UV calibrado ni con un servicio meteorológico de referencia. Se usó la sensibilidad nominal del sensor (UV_V_POR_INDICE ≈ 0.1 V por índice UV) y un índice UV de referencia asignado a cada condición (habitación cerrada, luz solar por ventana, lámpara UV). El offset UV_V_OFFSET = 0.14 V se fijó midiendo el voltaje con el sensor tapado. La validación cubre el orden de magnitud y la respuesta cualitativa, no una calibración fina (ver 11.2).
Presión atmosférica
Se comparó el BMP180 con el barómetro de un celular (app Atmospheric Pressure Barometer) en cuatro momentos del día, promediando 10 lecturas por momento. Sesgo medio: +1 hPa, constante. Calibración propuesta: CAL_P_A = 1.0, CAL_P_B = −1.0 (no aplicada). La referencia no es instrumentación calibrada.
10.4 Banco B2 — Emulación acelerada
Para reproducir condiciones críticas en un tiempo razonable, se redujeron temporalmente VENTANA_TASA_MS y PRES_VENTANA_MS a 60 000 ms (en operación normal son 5 min y 3 h). Cada escenario se repitió 5 veces.
| Escenario | Condición simulada | Tiempo hasta alerta (medio) | Observación |
|---|---|---|---|
| Desborde (nivel alto) | Nivel por encima del umbral de 95 % | 7.4 s (6.4–8.9) | 5/5 detecciones, estado DESBORDE |
| Sequía (nivel bajo) | Nivel por debajo del umbral de 20 % | 5.9 s (5.1–6.9) | 5/5 detecciones, estado SEQUIA |
| Riesgo de sequía por evaporación | Lámpara + ventilador, evaporación ≥ 70 % | 6.5 s (5.9–7.2) | 5/5 detecciones, estado SEQUIA |
| Fuga simulada | Salida controlada de agua | 90.0 s (68–117) | 4/5 detecciones, estado FUGA |
| Falla de sensor | Ultrasónico sin eco | 12.3 s (12.0–12.6) | 5/5 detecciones, estado ERROR_SENSOR |
Las condiciones ambientales se emularon con una lámpara (calor y UV), un ventilador o secador (humedad baja) y un humidificador (humedad alta). La fuga se emuló con una salida controlada de agua en el recipiente (jeringa o válvula).
10.5 Banco B3 — Lógica de clasificación
Se realizaron 5 repeticiones por escenario (30 pruebas en total).
| Escenario | Estado esperado | Estado observado | TP | FP | FN | TN | Histéresis |
|---|---|---|---|---|---|---|---|
| Nivel normal | OK | OK (4/5); FUGA en rep. 3 | — | 1 | — | 4 | — |
| Desborde | DESBORDE | DESBORDE | 5 | 0 | 0 | — | Entra 95.6 %, sale 89.8 % (diseño 95/90) |
| Sequía | SEQUIA | SEQUIA | 5 | 0 | 0 | — | Entra 19.7 %, sale 25.4 % (diseño 20/25) |
| Riesgo de sequía | SEQUIA | SEQUIA | 5 | 0 | 0 | — | — |
| Fuga | FUGA | FUGA (4/5); OK en rep. 4 | 4 | 0 | 1 | — | — |
| Falla de sensor | ERROR_SENSOR | ERROR_SENSOR | 5 | 0 | 0 | — | — |
| Total | 24 | 1 | 1 | 4 | Banda ≈ 6 pp |
Indicadores: precisión 0.96, sensibilidad 0.96, exactitud 0.93.
10.6 Banco B4 — Notificaciones
Se midió, en 10 repeticiones, el tiempo desde que se cumple la condición hasta:
- Activación del buzzer.
- Actualización de la OLED.
- Actualización del tablero.
- Aplicación de la orden de silenciar desde el tablero. Los resultados se registraron por canal.
| Canal | Latencia media (s) | σ (s) | Máximo (s) |
|---|---|---|---|
| Buzzer | 7.03 | 1.12 | 8.6 |
| OLED | 6.88 | 1.11 | 8.4 |
| Tablero web | 9.06 | 1.47 | 11.6 |
| Silenciar | 0.89 | 0.31 | 1.4 |
Silenciado correcto: 10/10. El registro del evento se verificó en el historial del tablero, sin medir su latencia de forma independiente.
10.7 Banco B5 — Robustez
| Prueba | Resultado esperado | Resultado observado | Cumple |
|---|---|---|---|
| Desconectar sensor de nivel (sin eco) | ERROR_SENSOR tras 5 ciclos (≈ 12 s) | ERROR_SENSOR, nivel ERR, alarma sonora, 12.3 s | Sí |
| Desconectar DHT22 (DATA) | FALLA_DHT22 tras 3 ciclos (≈ 7 s), ERR, chirrido | Aviso DHT22, ERR en OLED y tablero, chirrido, 7.2 s | Sí |
| Desconectar BMP180 (SDA) | FALLA_BMP180 tras 3 ciclos, P:ERR, reinicializa al volver | Aviso BMP180, P:ERR, reinicializó al reconectar, 7 s | Sí |
| Desconectar GUVA-S12SD (cable S) | Aviso de falla | Sin aviso: la lectura queda en un valor bajo indistinguible de 0 UV | No (limitación conocida) |
| Desconectar OLED (SDA/SCL) | FALLA_OLED en tablero, reinicializa al volver | Pantalla apagada, aviso FALLA_OLED en tablero, 3 s | Sí |
| Valores fuera de rango | Lectura inválida sin clasificación incorrecta | Lectura descartada por el firmware, 7.1 s | Sí |
| Apagar WLAN (router apagado 30 s) | Alertas locales continúan, x en OLED |
x en OLED, evento FALLA_WIFI |
Sí |
| Recuperar WLAN | Reconexión automática | Reconectó solo (< 10 s tras volver el router) | Sí |
| Clave web incorrecta | Acceso rechazado | HTTP 401, 0.5 s | Sí |
| Acceso desde red no autorizada (datos móviles) | Acceso rechazado | HTTP 403, 0.5 s | Sí |
| Reinicio del ESP32 | Histórico y eventos se borran (RAM) | Borrados, inició en OK | Sí (comportamiento esperado) |
10.8 Banco B6 — Repetibilidad y energía
Repetibilidad. Se evaluó la desviación estándar sobre 10 lecturas repetidas en condiciones constantes, en cada punto de calibración.
| Métrica | Resultado |
|---|---|
| Desviación estándar, distancia (7 puntos × 10 lecturas) | 0.07 – 0.23 cm |
| Desviación estándar, temperatura DHT22 (ambiente / calentador) | 0.00 / 0.12 °C |
| Desviación estándar, humedad DHT22 | 0.19 – 0.22 % HR |
| Tiempos de detección de desborde / sequía | 6.4–8.9 s / 5.1–6.9 s |
| Tiempos de detección de falla de sensor | 12.0 – 12.6 s |
Consumo de corriente (estimado, no medido). Los valores se estimaron a partir de las hojas de datos de los componentes.
| Estado | Corriente estimada | Rango de referencia |
|---|---|---|
| Reposo (WiFi conectado, sin alarma) | 168 mA | ≈ 160–260 mA |
| Alarma activa (buzzer) | 186 mA | reposo + ≈ 10–30 mA |
| Arranque (pico) | 430 mA | ≈ 400–500 mA al iniciar WiFi |
Para estimar la autonomía con una fuente de capacidad útil conocida:
Autonomía ≈ capacidad útil (mAh) / corriente media (mA)
Para dimensionar fuente o batería conviene medir la corriente con un multímetro en serie.
10.9 Instrumentos utilizados
| Instrumento | Uso |
|---|---|
| Regla o cinta métrica | Calibración de nivel (distancias de 5 a 20 cm) |
| Higrómetro / termohigrómetro (resolución 0.1 °C) | Referencia de temperatura y humedad relativa |
| Sensibilidad nominal del GUVA-S12SD | Referencia UV (sin radiómetro ni servicio meteorológico) |
| Documentación de los componentes | Estimación del consumo de corriente (sin multímetro) |
| Celular con la app Atmospheric Pressure Barometer | Referencia de presión |
| Lámpara UV y calentador | Emulación de radiación UV y temperatura |
| Ventilador o secador | Emulación de humedad baja |
| Humidificador | Emulación de humedad alta |
| Nevera doméstica | Condición de baja temperatura |
| Jeringa o válvula | Salida controlada de agua para emular fugas |