Anteproyecto técnico · IoT

AquaGuard-32
Agua bajo control

Sistema integral IoT de monitorización de la calidad del agua, dosificación y alimentación automática.

Estación autónoma para acuarios y piscinas basada en el microcontrolador ESP32: sensórica multiparamétrica del agua (temperatura, pH, turbidez, TDS y nivel), dosificación con bombas peristálticas, alimentador con servo, interfaz local OLED y ecosistema unificado Dashboard Web, App Móvil y App de Escritorio.

Autor Iván Palomo RodríguezMódulo Proyecto Integrado 2FP Electricidad-Electrónica · UnicarlosOctubre de 2026
Temperatura25.8 °C
pH7.1
TDS210 ppm
5Sensores del agua
3Actuadores
3Aplicaciones
12Semanas
88.30 €Coste hardware
01
Contexto

Justificación y contexto

Mantener un acuario o una piscina sana exige vigilar a diario parámetros del agua que cambian lentamente y que casi nadie mide de forma continua. Un pH fuera de rango, una temperatura inestable, el exceso de sólidos disueltos o un nivel de agua bajo estresan a los peces o degradan la calidad del agua antes de que sea visible a simple vista. Los controladores comerciales cubren esa necesidad, pero suelen ser caros, cerrados y poco adaptables.

Calidad del agua

Monitorización continua de temperatura, pH, turbidez y TDS para detectar derivas a tiempo y registrar un histórico que permita analizar tendencias.

Dosificación segura

Corrección automática con bombas peristálticas calibradas, con histéresis y un límite diario de dosis para evitar sobredosificaciones.

Alimentación programada

Raciones exactas con servo y reloj RTC, que siguen funcionando aunque falle la conexión a internet. Ideal para ausencias y vacaciones.

Seguridad y alarmas

Flotador de nivel mínimo que bloquea las bombas, alarma acústica y avisos push ante valores fuera de rango.

02
Objetivos

Objetivos del proyecto

Objetivo general

Diseñar, construir y validar un nodo IoT multipropósito basado en el ESP32 que integre sensórica del agua, actuación de precisión (dosificación y alimentación), interfaz local (OLED y pulsadores) y comunicación en tiempo real con una terna de aplicaciones: Dashboard Web, App Móvil y App de Escritorio.

  1. Gobernar el ciclo de control con FreeRTOS, separando las tareas críticas de sensado y actuación de las de red.
  2. Integrar los sensores DS18B20, pH, turbidez, TDS y nivel, con calibración y compensación por temperatura.
  3. Implementar dosificación con histéresis y límites de seguridad, y un alimentador programable con reloj RTC.
  4. Implementar lógica anti-rebote (debouncing) en los pulsadores para el menú de la pantalla OLED SSD1306.
  5. Desarrollar una API REST / MQTT con persistencia en base de datos para el análisis temporal.
  6. Crear interfaces responsivas para consulta rápida desde el móvil y gestión técnica desde el PC.
03
Arquitectura

Arquitectura global y flujo FreeRTOS

Diagrama operacional del firmware sobre el kernel FreeRTOS. La carga se reparte entre los dos núcleos: las tareas de red nunca bloquean el control de las bombas ni el alimentador.

Arquitectura de tareas y flujo de datos

ESP32 NÚCLEO 1: SENSÓRICA Y CONTROL EN TIEMPO REALTarea Sensado (cada 3 s)DS18B20, pH, turbidez, TDSy nivel (media móvil)Tarea HMI (cada 150 ms)OLED + pulsadoresanti-rebote (debouncing)Tarea AlimentadorServo + horario RTCración exactaInterrupción nivelFlotador: bloqueoinmediato de bombasControl de dosificaciónHistéresis pH / TDS + límitediario de dosis (seguridad)Gestor de alarmasBuzzer, LED rojo y eventourgente al servidorESP32 NÚCLEO 0: CONECTIVIDAD Y COMUNICACIÓNGestor de configuraciónWiFiManager y modo AP(botón SW3)Tarea Wi-Fi / MQTT / HTTPPrioridad 1reconexión automáticaCola de mensajes JSONBuffer no volátil en LittleFS(no se pierden datos si cae la red)MétricasEvento urgenteSERVIDOR Y PERSISTENCIAAPI REST (PHP) ybroker MQTTBase de datos MySQL(histórico temporal)Payloads JSONAcción inversaINTERFACES MULTIPLATAFORMAApp móvil (PWA): alertas y controlDashboard web: supervisión en vivoApp escritorio: calibración e informes
04
Hardware

Componentes hardware y sensórica

Cada componente se ha seleccionado por su disponibilidad, la estabilidad de sus librerías en ESP32 y su relación coste-prestaciones.

01Núcleo / MCU

ESP32 NodeMCU

Unidad de Control y Enlace IoT

Microcontrolador Xtensa LX6 dual-core a 240 MHz con Wi-Fi 802.11 b/g/n, Bluetooth LE y periféricos I2C, ADC y PWM.

Bus I2C, ADC1, PWM, GPIOs E/S
02HMI local

Display OLED 0.96"

Visualizador local in situ

Matriz de 128×64 píxeles con controlador SSD1306 vía I2C. Muestra IP, temperatura, pH, TDS y próxima comida.

SDA: GPIO 21 | SCL: GPIO 22
03Agua

Temperatura DS18B20

Sonda sumergible estanca

Sonda digital 1-Wire en acero inoxidable (IP68). Mide la temperatura del agua con ±0.5 °C, clave para peces y para compensar pH y TDS.

DQ: GPIO 4 (pull-up 4.7k)
04Agua · clave

Sensor de pH

Acidez del agua

Sonda de pH con módulo acondicionador (tipo PH-4502C). Rango 0–14, calibrable en dos puntos con soluciones tampón 4.00 y 7.00.

AO: GPIO 34 (ADC1_CH6)
05Agua · clave

Sensor de turbidez

Claridad del agua

Emisor y receptor infrarrojo que miden la transparencia del agua. Detecta restos de comida, algas o filtro saturado.

AO: GPIO 35 (ADC1_CH7)
06Agua · clave

Sensor TDS

Sólidos disueltos totales

Mide la conductividad del agua y la convierte en ppm. Permite decidir cuándo hacer un cambio parcial de agua.

AO: GPIO 32 (ADC1_CH4)
07Seguridad

Sensor de nivel

Interruptor de flotador

Detecta el nivel mínimo de agua. Si baja, bloquea las bombas y el calentador y lanza una alarma.

SIG: GPIO 16 (pull-up interno)
08I2C

Reloj RTC DS3231

Horario fiable sin red

Reloj de tiempo real con pila. Mantiene el horario de comidas y dosificaciones aunque se pierda el Wi-Fi.

I2C compartido (0x68)
09Actuador

2 bombas peristálticas

Dosificación de precisión

Bombas de 12 V accionadas por MOSFET con PWM. Una dosifica acondicionador y otra corrector de pH, con caudal calibrado.

PWM: GPIO 25 | GPIO 26
10Actuador

Servo MG90S

Alimentador automático

Servo que gira el dosificador de comida un ángulo fijo para soltar una ración exacta a la hora programada.

PWM: GPIO 18
05
Esquema

Esquema eléctrico y matriz de conexión

Diagrama de bloques con alimentación dual (12 V para bombas y 5 V / 3.3 V para lógica), buses compartidos y las entradas analógicas agrupadas en ADC1, que no se ve afectado por el uso del Wi-Fi.

Esquema de conexionado de bloques · AquaGuard-32

+12V DC (Fuente externa)+5V DC (Regulador buck LM2596)+3.3V DC (LDO del ESP32)BUS I2C COMPARTIDOOLED SSD1306 (0x3C)RTC DS3231 (0x68)Pull-ups 4.7k a 3.3VSONDAS DE AGUADS18B20 OneWire (4.7k)Turbidez | TDS | pH(entradas ADC1)NIVEL DE AGUAFlotador (contacto seco)a GPIO16 con pull-upESP32-WROOMDual-Core 32-bit MCUGPIO 21 (SDA)GPIO 22 (SCL)GPIO 04 (DS18B20)GPIO 34 (pH)GPIO 35 (Turbidez)GPIO 32 (TDS)GPIO 16 (Nivel)25 (Bomba A)26 (Bomba B)18 (Servo)13,14,27 (SW)17,33,23 (LED)05 (Buzzer)3V3 / GNDDRIVERS DE BOMBAS2 x MOSFET IRLZ44NDiodo flyback 1N4007Bomba A | Bomba B 12VSERVO ALIMENTADORMG90S - alim. 5VSeñal PWM 3.3VPANEL HMI LOCAL3x Pulsadores (MENU/FEED/RST)3x LEDs (Verde, Azul, Rojo)1x Buzzer activo 3.3V/5VGND COMÚN (tierra unificada)
DispositivoPin ESP32Función / modoNivel lógicoPropósito en el sistema
OLED + RTC DS3231GPIO 21 (SDA)
GPIO 22 (SCL)
Bus I2C hardware (Master)3.3VPantalla SSD1306 (0x3C) y reloj DS3231 (0x68) para programar comidas aunque falle la red.
DS18B20 inoxGPIO 04Dallas OneWire3.3VTemperatura del agua con pull-up de 4.7 kΩ a 3.3V.
Sensor de pHGPIO 34 (ADC1_CH6)Entrada analógica pura0 a 3.3VLectura de acidez en ADC1 (sin interferencia con el módem Wi-Fi). Tensión adaptada con divisor.
Sensor de turbidezGPIO 35 (ADC1_CH7)Entrada analógica pura0 a 3.3VMedida de la transparencia del agua. Salida adaptada a 3.3V.
Sensor TDSGPIO 32 (ADC1_CH4)Entrada analógica pura0 a 3.3VConductividad convertida a ppm con compensación por temperatura.
Flotador de nivelGPIO 16Entrada con pull-up3.3VNivel mínimo de agua. Si se activa, bloquea las bombas y dispara la alarma.
Bombas peristálticas (2)GPIO 25 (Bomba A)
GPIO 26 (Bomba B)
Salidas digitales PWM3.3V → 12VDosificación de acondicionador y corrector de pH mediante MOSFET.
Servo MG90SGPIO 18Salida PWM 50 Hz3.3V / 5VGiro del dosificador para soltar una ración de comida.
Pulsadores HMI (3)GPIO 13, 14, 27Entradas con pull-up3.3VSW1: menú OLED | SW2: alimentar ahora | SW3: rearmar alarma / modo AP Wi-Fi.
LEDs de estado (3)GPIO 17, 33, 23Salidas digitales3.3VVerde: heartbeat / OK | Azul: dosificando o alimentando | Rojo: alarma.
BuzzerGPIO 05Salida digital3.3V / 5VAviso acústico ante una alarma confirmada.
Nota de seguridad: el agua y la electricidad no se mezclan. Toda la electrónica va en una caja IP65 y el circuito de potencia utiliza solo 12 V DC (baja tensión), con fusible y diodos de protección en las bombas.
06
Software

Ecosistema de software: web, móvil y escritorio

Panel central de mando con widgets y gráficas reactivas de los últimos datos. Pulsa los parámetros para mostrar u ocultar cada curva.

https://aquaguard32.local/dashboard/acuario-salon-01● EN LÍNEA
Temperatura agua25.8°C● Rango tropical
pH7.1● Estable
TDS210ppm● Agua en buen estado
Próxima comida18:00● En 2 h 15 min

Evolución de temperatura, pH y TDS (últimas 12 horas)

00h02h04h06h08h10h12hmaxmin

Aplicación móvil para alertas push y control en directo desde cualquier lugar. Prueba los botones.

AquaGuard MobileBLE activo
ALERTA DE NIVELFlotador de nivel mínimo activado a las 03:14. Bombas bloqueadas y buzzer ejecutado.
Estado generalAcuario salón 01● Conexión directa Wi-Fi / BLE
Accionamiento manual
✔ Ración servida (1 giro de servo)
✔ Dosis aplicada (límite diario 5 ml)

Estación técnica para configurar el sistema y calibrar los sensores.

AquaGuard Desktop Pro (PyQt6 / Electron)Módulo de configuración y calibración de sensores
Exportar auditoría PDF

Pensada para el responsable técnico del acuario o la piscina. Permite calibrar la sonda de pH con soluciones tampón (4.00 y 7.00), ajustar la dosis de cada bomba, programar las comidas, consultar el histórico completo e imprimir informes de calidad del agua.

// Calibración de pH en dos puntos (valores de ejemplo)
#define ADC_PH7 2150   // lectura con tampón pH 7.00
#define ADC_PH4 2700   // lectura con tampón pH 4.00
float m  = (4.00 - 7.00) / (float)(ADC_PH4 - ADC_PH7);
float ph = 7.00 + m * (analogRead(34) - ADC_PH7);
07
Cronograma

Planificación temporal y cronograma

Plan de desarrollo dividido en 5 etapas durante un período de 12 semanas (S1 a S12):

S1
S2
S3
S4
S5
S6
S7
S8
S9
S10
S11
S12
1. Hardware y sensórica
Pruebas de sensores en protoboard
Calibración de pH, TDS y turbidez
Montaje de potencia y caja IP65
2. Firmware embebido
Drivers I2C, OneWire y ADC
Dosificación, alimentador y alarmas
Multitarea FreeRTOS y WiFiManager
3. Backend y base de datos
API REST (PHP / JSON) y MySQL
4. Apps web, móvil y PC
Dashboard web interactivo
App móvil (alertas y control)
App de escritorio (calibración)
5. Validación en acuario real
Ensayos de 7 días en acuario
Redacción de la memoria final
08
Presupuesto

Presupuesto detallado de materiales

Desglose económico del prototipo con costes de componentes comerciales estándar (precios orientativos):

ÍtemDescripción / referencia comercialCant.Coste unit.Subtotal
1Placa de desarrollo ESP32-WROOM-32 (NodeMCU 38 pines)16.50 €6.50 €
2Display gráfico OLED 0.96" I2C SSD1306 (128×64 px)13.80 €3.80 €
3Sonda de temperatura sumergible DS18B20 acero inox. (1 m)13.50 €3.50 €
4Sensor de pH con sonda y módulo acondicionador (PH-4502C)114.00 €14.00 €
5Sensor de turbidez analógico con módulo16.00 €6.00 €
6Sensor TDS analógico con sonda18.00 €8.00 €
7Sensor de nivel de agua tipo flotador12.00 €2.00 €
8Módulo RTC DS3231 con pila12.50 €2.50 €
9Bomba peristáltica 12 V (dosificación)27.00 €14.00 €
10Servo MG90S y dosificador de comida (impreso 3D)13.00 €3.00 €
11Módulos MOSFET con diodo de protección (2 canales)12.50 €2.50 €
12Kit interfaz: 3x pulsadores, 3x LEDs 5 mm y buzzer activo12.50 €2.50 €
13Fuente conmutada 12 V 2 A + módulo buck LM2596 (5 V)18.50 €8.50 €
14Caja estanca de derivación IP65 con prensaestopas17.50 €7.50 €
15Tornillería, cables siliconados, resistencias y clemas14.00 €4.00 €
Coste total estimado de hardware 88.30 €
Análisis de rentabilidad: los controladores comerciales de acuario con monitorización multiparamétrica y dosificación suelen costar varios cientos de euros y son sistemas cerrados. AquaGuard-32 ofrece una alternativa abierta y adaptable por menos de 90 € de hardware.

Propuesta lista para validación técnica

El presente anteproyecto proporciona la base técnica, esquemática y de software para el despliegue del sistema AquaGuard-32 en acuarios y piscinas.