Arduino Nano ESP32 - Sensor de humedad del suelo

Este tutorial proporciona instrucciones sobre cómo usar Arduino Nano ESP32 para leer la humedad del suelo desde un sensor. En detalle, aprenderemos:

Hardware Requerido

1×Arduino Nano ESP32
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 Arduino Nano
1×(Recomendado) Placa de Expansión Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentación para Arduino Nano ESP32

Or you can buy the following kits:

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 de Sensor de Humedad del Suelo Sensor

sensor de humedad capacitivo vs 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 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 resistivo de humedad del suelo

El resto de este tutorial utiliza el sensor de humedad del suelo capacitivo.

Esquema de pines del sensor capacitivo de humedad del suelo

Un sensor de humedad del suelo capacitivo tiene tres pines:

  • Pin GND: conecte este pin a GND (0 V)
  • Pin VCC: conecte este pin a VCC (5 V o 3,3 V)
  • Pin AOUT: salida de señal analógica; la tensión es inversamente proporcional al nivel de humedad del suelo. Conecte este pin al pin de entrada analógica del ESP32.
Esquema de pines del sensor de humedad del suelo capacitivo

Cómo funciona

Cuanto más agua haya presente en el suelo, menor es la tensión en el pin AOUT.

Diagrama de Cableado

Diagrama de cableado del sensor de humedad del suelo para Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Código de Arduino Nano ESP32

/* * Este código de Arduino Nano ESP32 fue desarrollado por es.newbiely.com * Este código de Arduino Nano ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-soil-moisture-sensor */ #define AOUT_PIN A6 // Arduino Nano ESP32 pin A6 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 Arduino Nano ESP32
  • Entierra el sensor en el suelo, luego vierte agua en el suelo. O sumerge lentamente en un vaso de agua salada.
  • Consulta el resultado en el Monitor de serie. Se ve a continuación:
COM6
Send
Moisture value: 2230 Moisture value: 2223 Moisture value: 2255 Moisture value: 2279 Moisture value: 2313 Moisture value: 2350 Moisture value: 2383 Moisture value: 2395 Moisture value: 1260 Moisture value: 1325 Moisture value: 1271 Moisture value: 1261 Moisture value: 1254 Moisture value: 1261 Moisture value: 1264 Moisture value: 1360 Moisture value: 1258 Moisture value: 1263 Moisture value: 1266 Moisture value: 1258 Moisture value: 1239 Moisture value: 1264 Moisture value: 1307 Moisture value: 1488 Moisture value: 1647 Moisture value: 1746 Moisture value: 1846
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Nota:

  • No use agua pura para las pruebas porque no conduce electricidad, por lo que no afectará las lecturas del sensor.
  • Las lecturas del sensor nunca caen a cero. Es normal que los valores estén entre 2600 y 3100, aunque esto puede cambiar debido a factores como la profundidad a la que se coloca el sensor, la composición del suelo o del agua y la tensión de la fuente de alimentación.
  • Evite enterrar la parte del circuito (que se encuentra en la parte superior del sensor) en tierra o agua, ya que esto 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, es necesario realizar una calibración para determinar un umbral que funcione como frontera entre húmedo y seco.

Cómo calibrar:

  • Ejecute el código anterior en Arduino Nano ESP32
  • Coloque el sensor de humedad en el suelo
  • Coloque el sensor de humedad en el suelo
  • Riegue el suelo lentamente
  • Observe el monitor de serie.
  • Escriba un valor en el momento en que sienta que la humedad del suelo pasa de seca a húmeda. Este valor se llama UMBRAL.

Determina si el suelo está húmedo o seco

Después de la calibración, actualiza el valor THRESHOLD que anotaste en el código que aparece a continuación. El código que aparece a continuación determina si el suelo está húmedo o seco.

/* * Este código de Arduino Nano ESP32 fue desarrollado por es.newbiely.com * Este código de Arduino Nano ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-soil-moisture-sensor */ #define AOUT_PIN A6 // Arduino Nano ESP32 pin A6 that connects to AOUT pin of moisture sensor #define THRESHOLD 1500 // 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 (2129) The soil is DRY (1941) The soil is DRY (1767) The soil is DRY (1549) The soil is WET (1471) The soil is WET (1419) The soil is WET (1397) The soil is WET (1373) The soil is WET (1264)
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 o componente. El ADC del Arduino Nano ESP32 es adecuado para proyectos que no requieren alta precisión. Sin embargo, para proyectos que necesiten mediciones precisas, tenga en cuenta lo siguiente:

  • El ADC del Arduino Nano ESP32 no es perfectamente preciso y podría requerir calibración para obtener resultados correctos. Cada placa Arduino Nano ESP32 puede variar ligeramente, por lo que la calibración es necesaria para cada placa individual.
  • La calibración puede ser desafiante, especialmente para los principiantes, y podría no siempre obtener los resultados exactos que deseas.

Para proyectos que requieren alta precisión, considera usar un ADC externo (por ejemplo, ADS1115) con el Arduino Nano ESP32 o usar otro Arduino, como el Arduino Uno R4 WiFi, que tiene un ADC más fiable. Si aún desea calibrar el ADC del Arduino Nano ESP32, consulte el 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!