Skip to the content
PCBKitNew board
2 layers77.8 × 73.8 mmUNAB agua, the printed circuit board in 3D

Refluye

Size
77.8 × 73.8 mm
Copper layers
2
Thickness
1.6 mm
Parts
35
Nets
46
Pads
119
Tracks, vias
238, 4
Pours
1
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
21 Aug 2026
Updated
21 Aug 2026

Overview

UNAB agua is an open-source printed circuit board by adiacla, from the adiacla/refluye repository on GitHub. It is a 2-layer board of 77.8 × 73.8 mm with 35 parts on 46 nets, routed with 238 tracks and 4 vias.

Its parts include 10 capacitors, 10 resistors, 8 connectors, 4 diodes and 2 ICs. It belongs with the ESP32 boards of this library.

README

README.md

RE-FLUYE: Dispositivo IoT de Bajo Costo para Evaluación de Calidad Hídrica

¡Bienvenido al repositorio del proyecto RE-FLUYE! Este proyecto presenta un sistema de monitoreo inteligente de la calidad del agua diseñado para entornos rurales sin conectividad a internet. Re-Fluye combina el análisis físico-químico mediante sensores electrónicos con la observación humana cualitativa para brindar recomendaciones de tratamiento precisas e inmediatas de acuerdo con el destino del agua (consumo humano, consumo animal o riego agrícola) [2, 74].


📌 Tabla de Contenidos

  1. Descripción y Propuesta de Valor
  2. Arquitectura del Sistema
  3. Modelos de Hardware
  4. Esquemas y Pinouts
  5. Cálculo del ICA y Lógica Híbrida de Clasificación
  6. Firmware e Instalación de Librerías
  7. Aplicación Móvil (MIT App Inventor)
  8. Pruebas de Campo y Calibración
  9. Cronograma y Gestión del Proyecto
  10. Licencia y Créditos

🌊 Descripción y Propuesta de Valor

En muchas comunidades rurales, el acceso a laboratorios para analizar la calidad del agua es nulo o extremadamente costoso, y los kits de análisis comerciales requieren formación técnica avanzada [2, 3]. La contaminación hídrica es la principal causa de enfermedades gastrointestinales en el sector agropecuario rural [3].

RE-FLUYE soluciona este problema a través de una propuesta de valor única [3]:

  • 4 Sensores Electrónicos: Medición cuantitativa del pH, turbidez, sólidos disueltos (TDS) y temperatura [4].
  • 3 Variables de Observación Humana: Incorporación del valioso conocimiento empírico de las comunidades campesinas (olor, aspecto visual y origen del agua) [3, 80].
  • Lógica Híbrida local: Algoritmo de clasificación robusto que se ejecuta localmente sin necesidad de conexión a internet para emitir recomendaciones accionables y comprensibles [3].

📐 Arquitectura del Sistema

El proyecto opera bajo una arquitectura estructurada de 3 capas y un canal de comunicación de sensor humano [80]:

  1. Capa de Percepción (Sensores): Adquiere los datos físico-químicos del agua mediante sensores analógicos y digitales [80].
  2. Capa de Procesamiento (Microcontrolador): Lee las señales de los sensores, aplica las curvas de calibración, empaqueta los datos en formato JSON y los transmite vía inalámbrica (Bluetooth) [80].
  3. Capa Humana (Usuario): El usuario ingresa su observación cualitativa sobre el origen del agua, su olor y su aspecto visual en la interfaz móvil [80].
  4. Capa de Presentación (App Android): Recibe las lecturas del hardware, procesa el formulario cualitativo, ejecuta el algoritmo de clasificación híbrida y presenta el veredicto en un semáforo interactivo con recomendaciones de tratamiento [80, 85].

🛠 Modelos de Hardware

El proyecto contempla una evolución técnica desde la simulación conceptual en entornos virtuales hasta el montaje físico real con sensores de grado de campo [5, 41].

Versión 1: Arduino Uno (Simulación y Prototipado)

  • Objetivo: Comprender las bases de la programación del microcontrolador y la lógica del LCD [5].
  • Entorno: Simulación pública en Tinkercad [17].
  • Componentes simulados: Se utilizan potenciómetros de 10 kΩ para emular los sensores de pH, Turbidez y Sólidos Totales Disueltos (TDS), y un TMP36 para la temperatura [5].
  • LCD: Conexión mediante módulo LCD 16x2 I2C para simplificar pines [5, 6].

Versión 2: ESP32 (Montaje Real de Campo)

  • Objetivo: Desplegar un dispositivo real de campo con sensores físicos e interactuar con la app móvil de manera estable [41].
  • Microcontrolador: ESP32 DevKit V1 (38 pines) por su procesador de doble núcleo, bajo costo, y conectividad integrada Bluetooth Classic [41, 42].
  • Sensores Reales Utilizados:
    • Sensor de pH: Módulo DFRobot pH Meter V1.1 (electrodo de vidrio) [41, 44].
    • Sensor de Sólidos Disueltos (TDS): Módulo Gravity DFRobot TDS Meter V1.0 [41, 44].
    • Sensor de Turbidez: Módulo analógico DFRobot SEN0189 [36, 41].
    • Sensor de Temperatura: Sonda sumergible DS18B20 (impermeable IP67 con protocolo 1-Wire) [41, 44, 71].
⚠️ El Cambio Crítico: Voltaje de Operación (Protección del ESP32)

El Arduino Uno opera a 5V lógicos, pero el ESP32 opera a 3.3V lógicos (ADC con resolución de 12 bits: 0–4095) [42, 43]. Los sensores analógicos DFRobot se alimentan a 5V y sus salidas de señal pueden llegar hasta 5V [43]. ¡Conectar 5V directamente al ESP32 dañará sus pines de forma permanente! [43]

Para solucionar esto, es obligatorio construir un divisor de voltaje resistivo en cada línea de señal analógica que conecte al ESP32 [43]:

  • Fórmula: $V_{out} = V_{in} \times \frac{R_2}{R_1 + R_2}$ [71]
  • Resistencias recomendadas: $R_1 = 10 \text{ k}\Omega$ (unido al sensor) y $R_2 = 20 \text{ k}\Omega$ (unido a GND) [47].
  • Relación de división: Reduce las señales analógicas un factor de 0.667 ($5.0\text{V} \rightarrow 3.33\text{V}$), lo cual es completamente seguro para el ESP32 [48]. El factor de compensación en el código para recuperar la lectura real del sensor es DIV_FACTOR = 1.5 [48, 71].

📌 Esquemas y Pinouts

Pinout de la Versión 1 (Arduino Uno - Tinkercad) [8]

Pin ArduinoTipoComponenteFunción
D3Digital INS1 - Pulsador OLORToggle de mal olor (hueleRaro)
D4Digital INS2 - Pulsador VISUALToggle de turbidez visual (visualTurbia)
D5Digital INS3 - Pulsador ORIGENToggle de origen estancado (esEstancada)
D6Digital INDHT11 DATAMedición de temperatura (en montaje físico real V1)
D8Digital OUTLED VerdeVeredicto de agua EXCELENTE
D9Digital OUTLED AmarilloVeredicto de agua CONDICIONADA
D10Digital OUTLED RojoVeredicto de agua NO APTA
A0Analógico INPotenciómetro pHEmulación de sensor pH
A1Analógico INPotenciómetro TurbidezEmulación de sensor Turbidez
A2Analógico INPotenciómetro TDSEmulación de sensor TDS
A4 (SDA)I2C DataLCD 16x2Línea de datos de la pantalla
A5 (SCL)I2C ClockLCD 16x2Línea de reloj de la pantalla

Pinout de la Versión 2 (ESP32 DevKit v1) [51]

GPIO ESP32TipoComponenteDescripción / Notas
GPIO34 (ADC1)Analógico INSensor pHSeñal del sensor mediante divisor de voltaje 10k + 20k [44, 51]
GPIO35 (ADC1)Analógico INSensor TurbidezSeñal del sensor mediante divisor de voltaje 10k + 20k [44, 51]
GPIO32 (ADC1)Analógico INSensor TDSSeñal del sensor mediante divisor de voltaje 10k + 20k [44, 51]
GPIO4Digital INDS18B20 DATASonda digital 1-Wire. Requiere resistencia Pull-up de 4.7kΩ a 3.3V [44, 51]
GPIO13Digital INPulsador ORIGENConector para toggle origen (configurado como INPUT_PULLUP) [51]
GPIO14Digital INPulsador OLORConector para toggle olor (configurado como INPUT_PULLUP) [51]
GPIO27Digital INPulsador VISUALConector para toggle visual (configurado como INPUT_PULLUP) [51]
GPIO26Digital OUTLED VerdeClasificación EXCELENTE (Resistencia de 220Ω en serie) [51]
GPIO25Digital OUTLED AmarilloClasificación CONDICIONADA (Resistencia de 220Ω en serie) [51]
GPIO33Digital OUTLED RojoClasificación NO APTA (Resistencia de 220Ω en serie) [51]
GPIO21 (SDA)I2C DataLCD 16x2 I2CComunicación I2C para pantalla LCD [51]
GPIO22 (SCL)I2C ClockLCD 16x2 I2CComunicación I2C para pantalla LCD [51]
5V / VINAlimentaciónSensores DFRobotAlimentación de 5V requerida por los sensores analógicos [51, 52]
3.3VAlimentaciónPull-ups, LCD LógicaVoltaje para el bus digital de temperatura y LCD logic [51, 52]
GNDTierraComúnTierra unificada para todo el circuito [51]

Nota Crítica sobre los ADC de ESP32: El ESP32 cuenta con dos módulos convertidores analógicos (ADC1 y ADC2). Sin embargo, el módulo ADC2 no funciona correctamente cuando se activan las funciones inalámbricas (WiFi o Bluetooth) [50]. Por ende, todos los sensores analógicos de Re-Fluye se configuran estrictamente en los pines del módulo ADC1 (GPIOs 32, 34 y 35) para asegurar lecturas estables mientras se transmite vía Bluetooth [50].


📈 Cálculo del ICA y Lógica Híbrida de Clasificación

Cálculo del ICA (Índice de Calidad del Agua) [12]

Re-Fluye utiliza una versión simplificada del Índice de Calidad del Agua (ICA) adaptada para microcontroladores, basada en los lineamientos internacionales de la NSF y el IDEAM colombianos [12]. Se calcula utilizando el pH, la turbidez y los Sólidos Totales Disueltos (TDS), asignando los siguientes pesos ponderados [13]:

  1. Sub-índice pH ($sPH$): El valor óptimo es 7.4 (ligeramente alcalino). Cada unidad de desviación resta 30 puntos al sub-índice [13, 14].
    • $sPH = 100 - |pH - 7.4| \times 30$ [13]
  2. Sub-índice Turbidez ($sTU$): Rango de 0 a 200 NTU [13].
    • $sTU = 100 - \text{Turbidez}$ [13]
  3. Sub-índice TDS ($sTD$): Rango de 0 a 2000 ppm [13].
    • $sTD = 100 - \frac{\text{TDS}}{10}$ [13]

Fórmula de Agregación Lineal: $$\text{ICA} = (sPH \times 0.40) + (sTU \times 0.30) + (sTD \times 0.30)$$ [13] (Con "clamping" inferior de manera que si el ICA resultante es menor a 0, se establece en 0) [13].

Matriz de Decisiones de la Lógica Híbrida

Los sensores numéricos no pueden medir parámetros cualitativos esenciales como la apariencia o el aroma [16]. Es por ello que la Lógica Híbrida implementa reglas con prioridad descendente para procesar la información del usuario [14, 15]:

  • Regla 1 (Máxima prioridad - Olor): Si el Olor es Raro (olor_val = "raro"), el agua se clasifica directamente como NO APTA (LED Rojo), independientemente de las lecturas numéricas de los sensores, por riesgo de contaminación biológica o química grave [15, 84, 120, 121].
  • Regla 2 (Apariencia Visual): Si la Apariencia Visual es Aceitosa, se asume contaminación por hidrocarburos y la calidad se degrada a NO APTA (LED Rojo), limitándose únicamente a riego de cultivos no alimentarios [83, 84, 121].
  • Regla 3 (pH Crítico): Si el pH es crítico ($pH < 5.5$ o $pH > 9.5$), la clasificación desciende inmediatamente a NO APTA debido a niveles dañinos de acidez o alcalinidad [122].
  • Regla 4 (Visual Verdosa + Estancada): Si el agua es de Origen Estancado y la apariencia visual es Verdosa, el agua es clasificada como CONDICIONADA (LED Amarillo) por sospecha de cianobacterias/algas [83, 123].
  • Regla 5 (Excelente): Si el ICA es alto ($\ge 75$) y no hay ninguna observación humana desfavorable (Origen Corriente, Olor normal, Apariencia limpia), el agua es APTA (LED Verde) para el consumo directo [15, 124].

💻 Firmware e Instalación de Librerías

El firmware del microcontrolador está escrito en C++ para el ecosistema de Arduino [1, 41].

Librerías Requeridas

Instala las siguientes librerías desde el Gestor de Librerías del Arduino IDE (Ctrl + Shift + I) [23]:

  1. LiquidCrystal_I2C (por Frank de Brabander): Control de la pantalla LCD mediante protocolo I2C [23].
  2. DHT sensor library (por Adafruit): Para el sensor de temperatura y humedad DHT11 en la V1 física [24]. (Al instalarla, selecciona "Install All" para que añada automáticamente la librería de sensores unificada de Adafruit).
  3. OneWire (por Jim Studt): Soporte de comunicación para el sensor digital de temperatura de la V2 [56, 60].
  4. DallasTemperature (por Miles Burton): Control del sensor de sonda sumergible DS18B20 [56, 60].

Carga del Software

  1. Abre el IDE de Arduino e instala la extensión para placas ESP32 [57]:
    • Ve a Archivo -> Preferencias y en Gestor de URLs Adicionales de Tarjetas copia la siguiente dirección: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json [57]
    • Ve a Herramientas -> Placa -> Gestor de Tarjetas, busca esp32 por Espressif Systems e instálalo [58].
  2. Conecta tu placa ESP32 por USB y selecciona la placa ESP32 Dev Module junto con el puerto COM correspondiente [58].
  3. Abre el código provisto en este repositorio (re_fluye_esp32.ino), compílalo (Ctrl + R) y cárgalo (Ctrl + U) [27, 28].
  4. Abre el monitor serie a 115200 baudios para ver las lecturas y la inicialización del Bluetooth [62, 65].

📱 Aplicación Móvil (MIT App Inventor)

La aplicación móvil de Re-Fluye actúa como la consola central de visualización y el capturador de datos del usuario campesino. Fue desarrollada utilizando la plataforma sin código MIT App Inventor 2 [76, 95].

Estructura de Pantallas [85]

  • Screen1 (Bienvenida): Pantalla inicial con logo e inicio de comprobación para validar que el Bluetooth del smartphone esté habilitado [85, 97].
  • Screen2 (Conexión BT): Escanea los dispositivos Bluetooth emparejados en el teléfono para realizar la conexión con el nodo ReFluye-V2 y guarda la dirección MAC en la memoria local (TinyDB) [85, 99].
  • Screen3 (Lectura Sensores): Temporiza la recepción de datos en formato JSON transmitidos desde el ESP32, extrayendo las variables de pH, Turbidez, TDS y Temperatura para mostrarlas de forma interactiva con tarjetas coloreadas [85, 103, 106].
  • Screen4 (Sensor Humano): Formulario intuitivo con pictogramas grandes para registrar las tres observaciones cualitativas del campesino (Origen, Olor y Visual) [85, 110].
  • Screen5 (Resultado): Muestra un semáforo visual (Verde, Amarillo, Rojo) con las recomendaciones exactas de tratamiento del agua y permite guardar el historial en TinyDB o compartir los resultados a través de WhatsApp [85, 117].

⚖️ Licencia y Créditos

Este proyecto se distribuye bajo la licencia Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0) [1].

  • Autor: Alfredo Antonio Díaz Claros [1, 41]
  • Institución: Director del Centro de Competencias Digitales (CCD), Universidad Autónoma de Bucaramanga (UNAB) [1, 41]
  • Ubicación: Bucaramanga, Santander, Colombia (2026) [1, 41].

Este repositorio ha sido estructurado con fines educativos e investigativos para el beneficio de las comunidades rurales y la academia [40, 73].


Parts

35
QtyValueFootprintReferences
10RResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1, R2, R3, R4, R5, R6, R7, R8, R9, R10
5100nFCapacitor_THT:C_Disc_D3.4mm_W2.1mm_P2.50mmC3, C5, C6, C7, C10
1100nFCapacitor_THT:C_Disc_D6.0mm_W2.5mm_P5.00mmC11
110nFCapacitor_THT:C_Disc_D3.4mm_W2.1mm_P2.50mmC4
11uFCapacitor_THT:C_Disc_D3.4mm_W2.1mm_P2.50mmC9
1220uFCapacitor_THT:CP_Radial_D8.0mm_P3.50mmC1
1470uFCapacitor_THT:CP_Radial_D8.0mm_P3.50mmC2
14P4CConnector_RJ:RJ12_Amphenol_54601-x06_HorizontalJ7
1AmaLED_THT:LED_D5.0mmD3
1BateriasTerminalBlock:TerminalBlock_bornier-2_P5.08mmJ2
1ESP32_Devkit_v4GermanKick:ESP32-Devkitc_v4U2
1GeneralTerminalBlock:TerminalBlock_Altech_AK300-4_P5.00mmJ8
1IntTerminalBlock:TerminalBlock_bornier-2_P5.08mmJ1
1LCD 2x20 I2CConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ6
1LEDLED_THT:LED_D5.0mmD1
1LOGOLogos:Logo_SmartRegionsG***
1PHConnector_JST:JST_EH_B3B-EH-A_1x03_P2.50mm_VerticalJ5
1RojLED_THT:LED_D5.0mmD2
1SolidosConnector_JST:JST_EH_B3B-EH-A_1x03_P2.50mm_VerticalJ3
1TurbiedezConnector_JST:JST_EH_B3B-EH-A_1x03_P2.50mm_VerticalJ4
1VerLED_THT:LED_D5.0mmD4
1~GermanKick:Fuente_BoostU1

Questions

How big is the UNAB agua PCB?

It measures 77.8 × 73.8 mm and has 2 copper layers, 1.6 mm thick.

What parts does the UNAB agua use?

35 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the UNAB agua KiCad files?

From the adiacla/refluye repository on GitHub, at the commit this page was made from: the board is UNAB_agua/UNAB_agua.kicad_pcb and its schematic UNAB_agua/UNAB_agua.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the UNAB agua design in my own project?

Its repository states no licence, so its author keeps all rights: ask adiacla before reusing the design.

Similar boards

  • 2 layers97.2 × 59.1 mmArmLEDsPrototype, the printed circuit board in 3D

    ArmLEDsPrototype

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    35 parts915
  • 2 layers62 × 42 mmMod cell 0 02, the printed circuit board in 3D

    Mod cell 0 02

    Green-bms/SmartBMS

    Open source Smart Battery Management System

    35 parts756
  • 2 layers75 × 26 mmDIY detector electron variant, the printed circuit board in 3D

    DIY detector electron variant

    ozel/DIY_particle_detector

    A mobile low-cost spectrometer for measuring radioactivity and the energy of ionising radiation like alpha particles and electrons

    35 parts558BSD-2-Clause
  • 2 layers45 × 25 mmReCamera Basically Board, the printed circuit board in 3D

    ReCamera Basically Board

    Seeed-Studio/OSHW-reCamera-Series

    reCamera is a series of open-source AI cameras.

    35 parts495Apache-2.0
  • 2 layers160.8 × 24.4 mmHUD VID RCD PANEL, the printed circuit board in 3D

    HUD VID RCD PANEL

    jrsteensen/OpenHornet

    OpenHornet 1:1 F/A-18C Simulator Repository

    35 parts431
  • 2 layers75 × 50 mmBackplane tester, the printed circuit board in 3D

    Backplane tester

    dennisss/dacha

    Monorepo for awesome tools/projects/libraries

    35 parts397Apache-2.0
  • 2 layers50 × 20.5 mmOtterIron PRO Top, the printed circuit board in 3D

    OtterIron PRO Top

    Jana-Marie/Otter-Iron-PRO

    USB-PD soldering station for JBC C245 handles.

    35 parts321
  • 2 layers50.5 × 67.1 mmHackheld Vega, the printed circuit board in 3D

    Hackheld Vega

    SpacehuhnTech/HackHeld

    Hackable Handheld

    35 parts277