Ir al contenido principal

C贸mo hacer un sensor de nivel de agua con ESP32 y un solo cable (sensor touch casero)

Hola a todos 馃槃

Hoy les traigo una forma curiosa, sencilla (y claro, barata) de detectar si hay agua en un recipiente, usando solo un cable y un ESP32. No necesitas sensores capacitivos, ni m贸dulos caros, ni nada complicado. Solo aprovechamos una funci贸n poco conocida del ESP32: su capacidad de detectar toques… y s铆, el agua cuenta como "toque".


¿C贸mo funciona un sensor de nivel de agua con ESP32?

El ESP32 tiene pines especiales llamados "touch" que detectan cambios en la capacitancia. Normalmente se usan para sensores t谩ctiles, como botones, pero tambi茅n pueden servir para detectar agua, porque el agua conduce electricidad y altera la capacitancia.

Conectando un cable a uno de esos pines touch y sumergiendo la punta en el agua, el ESP32 detecta ese cambio como si estuvieras tocando el pin con el dedo. As铆, puedes crear un sensor de agua casero sin componentes extra. Solo se necesita el ESP32, un cable y agua. Si colocas el cable a cierta altura, puedes detectar niveles de llenado de un recipiente.


Materiales necesarios

  • Un ESP32 (cualquier modelo con pines touch)
  • Un solo cable (puede ser de jumper, cobre, o lo que tengas a la mano)
  • Un vaso o recipiente con agua
  • (Opcional) Cinta para fijar el cable a una altura espec铆fica

Conexi贸n del "sensor"

Solo conecta el cable a un pin touch del ESP32. Yo us茅 el T0, que es el GPIO4.


La otra punta del cable va dentro del recipiente. Si lo quieres usar como sensor de nivel, col贸calo a la altura que quieras detectar para que solo toque el agua cuando haya suficiente.


C贸digo en Arduino IDE

const int sensPin = 4;
const int ledPin = 2;
const int umbral = 45; //Este valor se obtiene haciendo pruebas de funcionamiento

void setup() {
  Serial.begin(115200);
  pinMode(ledPin, OUTPUT);
}

void loop() {
  int sensRead = touchRead(sensPin);
  Serial.println(sensRead);
  
  if(sensRead < umbral) digitalWrite(ledPin, HIGH);
  else digitalWrite(ledPin, LOW);
  
  delay(250);
}

馃敡 Nota: El valor de detecci贸n (45) depende del ambiente, tipo de cable, calidad del agua, etc. Si siempre detecta agua aunque no haya, sube el n煤mero. Si nunca detecta, b谩jalo. Se ajusta f谩cilmente haciendo pruebas.


¿Y si quiero medir varios niveles?

¡Tambi茅n se puede! Solo necesitas m谩s cables y m谩s pines touch. Cada uno act煤a como un "sensor de altura". Por ejemplo:

  • Cable 1 (nivel m铆nimo) -> T4
  • Cable 2 (nivel medio) -> T5
  • Cable 3 (nivel alto) -> T6

As铆 puedes saber si el recipiente est谩 medio lleno, casi vac铆o o hasta el tope.


¿Para qu茅 sirve este sensor de agua casero?

  • Detectar si hay agua en un tinaco o cisterna

  • Evitar que una bomba se queme por falta de agua

  • Automatizar un sistema de riego casero

  • Proyectos de ciencia o tecnolog铆a con ni帽os o estudiantes

  • Ahorrar dinero usando materiales comunes


Conclusi贸n

Este proyecto es ideal si est谩s buscando una soluci贸n barata y efectiva para detectar agua con un ESP32. No necesitas sensores costosos ni complicaciones electr贸nicas. Solo un cable, agua y tu creatividad.

Adem谩s, te abre la puerta a automatizar tareas caseras con cosas que ya tienes. F谩cil de probar, ideal para aprender.


Descarga el programa

Comentarios

Entradas m谩s populares de este blog

Dimmer AC por PWM

A la hora de controlar dispositivos de corriente alterna solemos recurrir a los 煤tiles tiristores (SRC o TRIAC) pues con la correcta configuraci贸n se puede controlar el 谩ngulo de disparo de 茅stos con un potenci贸metro (de manera manual). Control de potencia por medio del 谩ngulo de disparo (cortes铆a wikipedia) Desafortunadamente ante la necesidad de automatizar este control de potencia con un microcontrolador se dificulta enormemente la configuraci贸n a utilizar puesto que debemos estar al pendiente todo el tiempo del cruce por cero de la corriente alterna (si les interesa el H11AA1 es el indicado para esa tarea) para activar nuestro SCR o TRIAC en el momento adecuado lo que nos impide realizar otras tareas/rutinas como la recepci贸n y env铆o de datos, control de actuadores o lectura de entradas. Precauci贸n: El siguiente circuito se encuentra conectado directamente a la red el茅ctrica, el mal manejo de 茅sta puede provocar heridas graves. Por otro lado tenemos el siguiente circuit...

Aplicaci贸n Java para dimmer con Arduino

Hola electr贸nicos, hoy les dejo una aplicaci贸n Java hecha en Processing que acabo de rehacer desde cero. Sirve para variar el brillo de hasta seis salidas anal贸gicas en nuestro Arduino (como el pin 3 o cualquier otro compatible con PWM). Esta aplicaci贸n funciona en pantalla completa y cuenta con seis sliders independientes, ideales para controlar m煤ltiples LEDs o dispositivos desde tu computadora de forma sencilla. La aplicaci贸n env铆a un valor de 0 a 255 dependiendo de la posici贸n de cada slider. El valor se transmite al Arduino en forma de cadena de caracteres usando un formato simple y directo: P{Pin}V{Valor} donde {Pin} indica el n煤mero del pin al que se enviar谩 el dato, y {Valor} es el nivel de brillo (duty cycle del PWM) correspondiente. Por ejemplo, si el slider est谩 controlando el pin 3 y se encuentra a la mitad, la cadena enviada ser谩 P3V128. As铆 es como se ve la aplicaci贸n Por otra parte, el c贸digo a cargar en nuestro Arduino puede parecer algo complicado, ya que debe deco...