ESP32 - Sensor de agua
Este tutorial explica cómo utilizar ESP32 y un sensor de agua para detectar lluvia, fugas de agua, desbordamiento del tanque y medir el nivel de agua.
Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | |
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Acerca del sensor de nivel de agua
Esquema de pines del sensor de nivel de agua
El sensor de nivel de agua incluye 3 pines:
- Pin S (Señal): Este pin genera una tensión analógica que es proporcional al nivel de agua. Este pin debe conectarse a un pin de entrada analógica del ESP32.
- Pin + (VCC): conecta este pin a 3.3V o 5V.
- Pin - (GND): conecta este pin a GND.

Cómo funciona el sensor de nivel de agua
Simplemente, cuanto más agua esté sumergido el sensor, mayor será el voltaje de salida en el pin S. Al medir ese voltaje, podemos conocer el nivel de agua.
Diagrama de Cableado
En teoría, podemos alimentar al sensor de agua conectando los pines VCC y GND del sensor a los pines de 3,3 V y GND del ESP32, respectivamente.
Sin embargo, esa forma no se recomienda en la práctica. Si suministramos energía al sensor de agua de forma constante, el sensor se corroerá electroquimicamente más rápido debido al ambiente húmedo. Es mejor suministrar energía al sensor de agua solo cuando se vaya a leer su valor. Para ello, podemos conectar el pin VCC del sensor al pin digital de un ESP32 y programar ese pin del ESP32 para que esté en HIGH antes de leer y en LOW después de leer.
- Cómo conectar el ESP32 y un sensor de agua usando una placa de pruebas

This image is created using Fritzing. Click to enlarge image
Si no sabe c\u00f3mo alimentar ESP32 y otros componentes, encuentre instrucciones en el siguiente tutorial: C\u00f3mo alimentar ESP32.
- Cómo conectar el ESP32 y un sensor de agua usando placa breakout con terminales de tornillo (alimentada a través de un cable USB)

Código para ESP32 - Lectura del valor de un sensor de agua
Pasos R\u00e1pidos
- Si es la primera vez que usa ESP32, consulte cómo configurar el entorno para ESP32 en Arduino IDE.
- Copie el código anterior y péguelo en el IDE de Arduino.
- Compilar y subir el código a la placa ESP32 haciendo clic en el botón Subir en el IDE de Arduino.
- Sumerja lentamente el sensor en el agua (un vaso de agua).
- Vea el resultado en el Monitor serie. Parece lo siguiente: El valor es 0 cuando el sensor no está tocando nada.
※ Nota:
El sensor de agua no está diseñado para quedar completamente sumergido; solo las trazas expuestas en la placa de circuito impreso pueden quedar sumergidas en el agua. Por favor, tenga cuidado al instalarlo.
Cómo detectar fugas de agua
Para detectar la fuga de agua, la lluvia y el desbordamiento del tanque, solo necesitamos comparar el valor del sensor con un umbral. El umbral se determina en la parte de calibración de este tutorial.
Hagamos que el ESP32 encienda un LED si se detecta una fuga de agua.
Diagrama de cableado

This image is created using Fritzing. Click to enlarge image
Código ESP32 - Detección de Fugas de Agua
Cómo Medir el Nivel de Agua
El código siguiente divide el nivel de agua en 4 niveles.
※ Nota:
- SENSOR_MIN y SENSOR_MAX se determinan por el proceso de calibración.
- El método de mapeo anterior no es preciso. Sin embargo, es aceptable en muchas aplicaciones.
Calibración del sensor de nivel de agua
Ver cómo calibrar el sensor de nivel de agua
※ Nota:
Este tutorial utiliza la función analogRead() para leer valores de un ADC (convertidor analógico-digital) conectado a un sensor de agua. El ADC del ESP32 es adecuado para proyectos que NO requieren alta precisión. Sin embargo, para proyectos que necesitan mediciones precisas, tenga en cuenta:
- El ADC del ESP32 no es perfectamente preciso y podría necesitar calibración para obtener resultados correctos. Cada placa ESP32 puede variar un poco, por lo que es necesario calibrar el ADC para cada placa individual.
- La calibración puede ser difícil, especialmente para principiantes, y puede que no siempre dé los resultados exactos que deseas.
Para proyectos que requieren alta precisión, considera usar un ADC externo (por ejemplo ADS1115) con el ESP32 o usar un Arduino, que tiene un ADC más fiable. Si aún quieres calibrar el ADC del ESP32, consulta ESP32 ADC Calibration Driver
Video Tutorial
Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.