Proyecto Institucional · EIUM · 2025–2026

Sistema de Monitoreo Hidráulico con ML

Proyecto institucional EIUM — Control y predicción de flujo mediante sensores, Arduino Nano y Random Forest

Ver avances
Arduino Nano · Random Forest · 5× ZJ-S201

Sobre 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.

Arduino Nano ZJ-S201 Random Forest Python 3.11 IBT-2 PWM Serial 115200 PySerial scikit-learn
1

Monitorear flujo hídrico en tiempo real con 5 sensores de efecto Hall

2

Controlar 4 válvulas y una bomba IBT-2 mediante señales PWM

3

Predecir niveles de flujo con modelo Random Forest entrenado

4

Proveer interfaz educativa interactiva con asistente IA

Sistema Físico

Click en cada componente para ver especificaciones técnicas

Arduino NanoATmega328PS. EntradaZJ-S201S. Salida V1ZJ-S201S. Salida V2ZJ-S201S. Salida V3ZJ-S201S. Salida V4ZJ-S201Válvula 1Relé 5VVálvula 2Relé 5VVálvula 3Relé 5VVálvula 4Relé 5VBomba IBT-2PWM

Click en cualquier componente para ver sus especificaciones

Metodología

Click en cada etapa para ver detalles

Metodología del sistema

Datos del Sistema (Simulación)

Visualización en tiempo real de los 5 sensores de flujo (L/h)

En vivo · Simulación

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-09

Definición del sistema físico: sensores ZJ-S201, relés, bomba IBT-2, microcontrolador Arduino Nano.

Completado

Fase 2: Implementación del sistema físico

2025-11

Ensamble del circuito hidráulico, firmware Arduino y panel de control en Python/Tkinter.

Completado

Fase 3: Desarrollo del modelo ML

2026-02

Recolección de datos de sensores, entrenamiento del modelo Random Forest, evaluación de métricas.

En progreso

Fase 4: Interfaz educativa y chatbot IA

2026-04

Desarrollo de la interfaz educativa con visualizaciones y asistente virtual de aprendizaje.

En progreso

Fase 5: Validación y pruebas

2026-08

Pruebas de integración, validación del modelo en condiciones reales, ajuste fino.

Pendiente

Fase 6: Publicación y documentación

2026-12

Redacción de artículo final, presentación en congreso, publicación de resultados.

Pendiente

Stack 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)

firmware.ino
// 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

Resultados

Random Forest

Random Forest

Interfaz

Interfaz

Chatbot Tutor

Chatbot Tutor