ESP32 - Sensor de humedad del suelo
Este tutorial te enseña cómo usar el ESP32 para leer la humedad del suelo desde un sensor. En detalle, aprenderemos:
- Sensor de humedad capacitivo vs sensor de humedad resistivo
- Cómo usar el ESP32 para leer el valor de un sensor de humedad capacitivo
- Cómo calibrar un sensor de humedad capacitivo
- Cómo determina el ESP32 si el suelo está húmedo o seco
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) |
Buy Note: Many soil moisture sensors available in the market are unreliable, regardless of their version. We strongly recommend buying the sensor with TLC555I Chip from the DIYables brand using the link provided above. We tested it, and it worked reliably.
Acerca del sensor de humedad del suelo Sensor

Hay dos tipos de sensores de humedad:
- Sensor resistivo de humedad
- Sensor capacitivo de humedad.
Ambos sensores proporcionan el valor de la humedad del suelo. Sin embargo, sus principios de funcionamiento son diferentes. Recomendamos encarecidamente utilizar el sensor de humedad capacitivo, por las siguientes razones:
- El sensor de humedad del suelo resistivo se corroe con el tiempo. La corriente eléctrica que fluye entre las sondas del sensor provoca corrosión electroquímica.
- El sensor de humedad del suelo capacitivo NO se corroe con el tiempo. Los electrodos del sensor no están expuestos y no fluye ninguna corriente eléctrica entre ellos.
La imagen de abajo muestra la corrosión en un sensor resistivo de humedad del suelo.

El resto de este tutorial utiliza el sensor de humedad del suelo capacitivo.
Pinout del sensor de humedad del suelo capacitivo
Un sensor capacitivo de humedad del suelo tiene tres pines:
- Pin GND: conecte este pin a GND (0V)
- Pin VCC: conecte este pin a VCC (5V o 3.3V)
- Pin AOUT: la salida analógica de este pin es una tensión inversamente proporcional al nivel de humedad del suelo. Conecte este pin al pin de entrada analógica de un ESP32

Cómo funciona
Cuanto más agua haya en el suelo, menor será el voltaje en el pin AOUT.
Diagrama de Cableado
- Cómo conectar el ESP32 y el sensor de humedad del suelo 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 el sensor de humedad del suelo usando [placa breakout con terminales de tornillo] (alimentados mediante un cable USB)

Código ESP32
Pasos R\u00e1pidos
- Copia el código anterior y pégalo en el IDE de Arduino
- Haz clic en el botón Subir en el IDE de Arduino para subir el código a la placa ESP32
- Entierra el sensor en la tierra, luego vierte agua en la tierra. O sumérgelo lentamente en una taza de agua salada.
- Consulta el resultado en el Monitor Serial. Es como se muestra a continuación:
※ Nota:
- Evita usar agua destilada para las pruebas, ya que no conduce electricidad y, por lo tanto, no afectará las lecturas del sensor.
- Las lecturas del sensor nunca llegan a cero. Es normal que los valores oscilen entre 3100 y 2600, aunque esto puede variar dependiendo de algunos factores: la profundidad de la inserción del sensor, la composición del suelo o del agua, el voltaje de la fuente de alimentación.
- No entierras la parte del circuito (que se encuentra en la parte superior del sensor) en el suelo o en el agua, ya que podría dañar potencialmente el sensor.
Calibración para sensor capacitivo de humedad del suelo
El valor medido por el sensor de humedad es relativo. Depende de la composición del suelo y del agua. En la práctica, necesitamos realizar una calibración para determinar un umbral que sirva como frontera entre húmedo y seco.
Cómo realizar la calibración:
- Ejecute el código anterior en ESP32
- Coloque el sensor de humedad en el suelo
- Coloque el sensor de humedad en el suelo
- Riegue el suelo lentamente
- Observe el Monitor Serial.
- Anote un valor en el momento en que sienta que la humedad del suelo pasa de seca a húmeda. Este valor se llama THRESHOLD.
Determina si el suelo está húmedo o seco
Después de la calibración, actualiza el valor de THRESHOLD que anotaste en el código que se muestra a continuación. Este código determina si el suelo está húmedo o seco.
El resultado en el Monitor Serial.
※ Nota:
Este tutorial utiliza la función analogRead() para leer valores de un ADC (Convertidor Analógico a Digital) conectado a un sensor de humedad del suelo. El ADC del ESP32 es adecuado para proyectos que no requieren alta precisión. Sin embargo, para proyectos que necesiten 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 necesitas calibrar el ADC para cada placa individual.
- La calibración puede ser difícil, especialmente para principiantes, y podría no siempre proporcionar los resultados exactos que deseas.
Para proyectos que necesiten alta precisión, considera usar un ADC externo (p. ej. ADS1115) con el ESP32 o usar un Arduino, que tiene un ADC más confiable. 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.