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:

Hardware Requerido

1×Módulo de Desarrollo ESP32 ESP-WROOM-32
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×Sensor de Humedad del Suelo Capacitivo
1×Protoboard
1×Cables Puente
1×(Opcional) Conector de Alimentación DC
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para ESP32
1×(Recomendado) Breakout Expansion Board for ESP32
1×(Recomendado) Divisor de Alimentación para ESP32

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)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

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

sensor de humedad capacitivo frente a sensor de humedad resistivo

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.

corrosión del sensor de humedad del suelo resistivo

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
Disposición de pines del sensor de humedad del suelo capacitivo

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
Diagrama de cableado del sensor de humedad del suelo ESP32

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ómo conectar el ESP32 y un sensor de humedad del suelo

Código ESP32

/* * Este código de ESP32 fue desarrollado por es.newbiely.com * Este código de ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp32/esp32-soil-moisture-sensor */ #define AOUT_PIN 36 // ESP32 pin GPIO36 (ADC0) that connects to AOUT pin of moisture sensor void setup() { Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } void loop() { int value = analogRead(AOUT_PIN); // read the analog value from sensor Serial.print("Moisture value: "); Serial.println(value); delay(500); }

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:
COM6
Send
Moisture value: 2383 Moisture value: 2395 Moisture value: 1260 Moisture value: 1325 Moisture value: 1271 Moisture value: 1261 Moisture value: 1254 Moisture value: 1241 Moisture value: 1244 Moisture value: 1380 Moisture value: 1368 Moisture value: 1279 Moisture value: 1268 Moisture value: 1259 Moisture value: 1243 Moisture value: 1265 Moisture value: 1308 Moisture value: 1487 Moisture value: 1646
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ 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.

/* * Este código de ESP32 fue desarrollado por es.newbiely.com * Este código de ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp32/esp32-soil-moisture-sensor */ #define AOUT_PIN 36 // ESP32 pin GPIO36 (ADC0) that connects to AOUT pin of moisture sensor #define THRESHOLD 1488 // CHANGE YOUR THRESHOLD HERE void setup() { Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } void loop() { int value = analogRead(AOUT_PIN); // read the analog value from sensor if (value > THRESHOLD) Serial.print("The soil is DRY ("); else Serial.print("The soil is WET ("); Serial.print(value); Serial.println(")"); delay(500); }

El resultado en el Monitor Serial.

COM6
Send
The soil is DRY (2126) The soil is DRY (1841) The soil is DRY (1667) The soil is DRY (1540) The soil is WET (1481) The soil is WET (1419) The soil is WET (1357) The soil is WET (1243) The soil is WET (1224)
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ 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.

Referencias de Funciones

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!