Sistema de Monitoreo Hidráulico con ML
Proyecto institucional EIUM — Control y predicción de flujo mediante sensores, Arduino Nano y Random Forest
Ver avancesSobre el Proyecto
Sistema de monitoreo y predicción de flujo hídrico en tiempo real, basado en cinco sensores ZJ-S201, control por Arduino Nano y un modelo de aprendizaje automático Random Forest. El proyecto integra hardware embebido, procesamiento de señales e inteligencia artificial para optimizar el control de recursos hídricos en entornos educativos e industriales.
Monitorear flujo hídrico en tiempo real con 5 sensores de efecto Hall
Controlar 4 válvulas y una bomba IBT-2 mediante señales PWM
Predecir niveles de flujo con modelo Random Forest entrenado
Proveer interfaz educativa interactiva con asistente IA
Sistema Físico
Click en cada componente para ver especificaciones técnicas
Click en cualquier componente para ver sus especificaciones
Metodología
Click en cada etapa para ver detalles
Datos del Sistema (Simulación)
Visualización en tiempo real de los 5 sensores de flujo (L/h)
Datos simulados · Rango real del sistema: 350–700 L/h por canal
Avances del Proyecto
Fase 1: Diseño y selección de hardware
2025-09Definición del sistema físico: sensores ZJ-S201, relés, bomba IBT-2, microcontrolador Arduino Nano.
CompletadoFase 2: Implementación del sistema físico
2025-11Ensamble del circuito hidráulico, firmware Arduino y panel de control en Python/Tkinter.
CompletadoFase 3: Desarrollo del modelo ML
2026-02Recolección de datos de sensores, entrenamiento del modelo Random Forest, evaluación de métricas.
En progresoFase 4: Interfaz educativa y chatbot IA
2026-04Desarrollo de la interfaz educativa con visualizaciones y asistente virtual de aprendizaje.
En progresoFase 5: Validación y pruebas
2026-08Pruebas de integración, validación del modelo en condiciones reales, ajuste fino.
PendienteFase 6: Publicación y documentación
2026-12Redacción de artículo final, presentación en congreso, publicación de resultados.
PendienteStack Tecnológico
Hardware
- Arduino Nano (ATmega328P · 16MHz)
- 5× Sensor ZJ-S201 (1–60 L/min)
- 4× Módulo relé 5V (10A/250VAC)
- Driver IBT-2 (PWM H-bridge)
- Fuente 12V DC
Software
- Python 3.11
- PySerial (comunicación serial)
- Tkinter + Matplotlib (GUI)
- joblib (carga de modelos)
Machine Learning
- scikit-learn RandomForestRegressor
- NumPy / Pandas (preprocesamiento)
- Ventana deslizante 10 muestras
- 50 features de entrada · <50ms latencia
Firmware Arduino (fragmento)
// ZJ-S201 — lectura de pulsos por interrupción
volatile uint32_t pulsos[5] = {0};
float lph[5] = {0};
ISR(sensor_entrada) { pulsos[0]++; }
ISR(sensor_v1) { pulsos[1]++; }
void loop() {
if (millis() - lastSend >= 1000) {
// Convertir pulsos a L/h: (pulsos/7.5) * 60
for (int i = 0; i < 5; i++) {
noInterrupts();
uint32_t p = pulsos[i]; pulsos[i] = 0;
interrupts();
lph[i] = (p / 7.5f) * 60.0f;
}
// Enviar trama: F:val0,val1,val2,val3,val4
Serial.print("F:");
for (int i = 0; i < 5; i++) {
Serial.print(lph[i], 1);
if (i < 4) Serial.print(",");
}
Serial.println();
lastSend = millis();
}
} Resultados y capturas
Resultados
Random Forest
Interfaz
Chatbot Tutor
Equipo
Equipo EIUM
Proyecto Institucional
EIUM