ESP8266 - Sensor de Humedad del Suelo

Este tutorial explica cómo usar un sensor de humedad con ESP8266. Específicamente, veremos:

Hardware Requerido

1×ESP8266 NodeMCU
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×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para ESP8266
1×(Recomendado) Divisor de Alimentación para ESP8266 Tipo-C

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

sensor de humedad capacitivo frente a sensor de humedad resistivo

Existen dos tipos de sensores de humedad: el sensor de humedad resistivo y el sensor de humedad capacitivo.

Ambos sensores ofrecen información sobre la humedad del suelo. Sin embargo, sus métodos de funcionamiento difieren. Sugerimos utilizar el sensor de humedad capacitivo debido a lo siguiente:

  • El sensor de humedad del suelo resistivo es propenso a la corrosión con el tiempo, ya que la corriente eléctrica pasa entre sus sondas, lo que provoca corrosión electroquímica.
  • El sensor de humedad del suelo capacitivo, por otro lado, se corroe mucho más lentamente que el sensor de humedad del suelo resistivo. Eso se debe a que sus electrodos no están expuestos y es relativamente resistente a la corrosión.

Esta es una ilustración de un sensor resistivo de humedad del suelo que ha sido dañado por la corrosión.

Sensor resistivo de humedad del suelo corroído.

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

Pinout del sensor de humedad del suelo capacitivo

El sensor de humedad del suelo capacitivo tiene tres pines:

  • Pin GND: Debe estar conectado a GND (0V).
  • Pin VCC: Debe estar conectado a VCC (5V o 3.3V).
  • Pin AOUT: Es el pin de salida de la señal analógica que genera un voltaje proporcional al nivel de humedad del suelo. Debe conectarse a un pin de entrada analógica en un ESP8266.
pinout del sensor de humedad del suelo capacitivo

Cómo funciona

La cantidad de agua presente en el suelo es inversamente proporcional al nivel de voltaje del pin AOUT.

Diagrama de Cableado

Diagrama de cableado del sensor de humedad del suelo ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Para obtener m\u00e1s informaci\u00f3n, consulte Pines del ESP8266 y c\u00f3mo alimentar ESP8266 y otros componentes.

Código ESP8266 para leer el valor de un sensor de humedad del suelo

/* * Este código de ESP8266 NodeMCU fue desarrollado por es.newbiely.com * Este código de ESP8266 NodeMCU se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp8266/esp8266-soil-moisture-sensor */ #define AOUT_PIN A0 // The ESP8266 pin ADC0 that connects to AOUT pin of moisture sensor void setup() { Serial.begin(9600); } void loop() { int value = analogRead(AOUT_PIN); // read the analog value from sensor Serial.print("Moisture: "); Serial.println(value); delay(500); }

Pasos R\u00e1pidos

Para empezar con ESP8266 en el IDE de Arduino, siga estos pasos:

  • Consulta el tutorial cómo configurar el entorno para ESP8266 en Arduino IDE si es la primera vez que usas ESP8266.
  • Conecta los componentes como se muestra en el diagrama.
  • Conecta la placa ESP8266 a tu computadora con un cable USB.
  • Abre Arduino IDE en tu computadora.
  • Elige la placa ESP8266 correcta, como (p. ej. NodeMCU 1.0 (ESP-12E Module)), y su puerto COM correspondiente.
  • Copia el código y ábrelo con Arduino IDE.
  • Haz clic en el botón Upload en Arduino IDE para compilar y subir el código al ESP8266.
  • Entierra el sensor en el suelo, luego vierte agua sobre el suelo. O sumerge lentamente el sensor en un vaso de agua salada.
  • Consulta el resultado en el Monitor de serie. A continuación se muestra:
COM6
Send
Moisture: 581 Moisture: 581 Moisture: 575 Moisture: 566 Moisture: 556 Moisture: 547 Moisture: 539 Moisture: 530 Moisture: 521 Moisture: 513 Moisture: 506 Moisture: 500 Moisture: 495 Moisture: 492 Moisture: 490 Moisture: 489 Moisture: 488
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Nota:

  • No uses agua destilada para las pruebas porque no conduce electricidad, por lo que no cambiará las lecturas del sensor.
  • Las lecturas del sensor nunca serán cero. Es habitual que los valores estén entre 500 y 600, aunque esto podría variar en función de factores como la profundidad a la que se coloque el sensor, el tipo de suelo o agua y el voltaje de la fuente de alimentación.
  • Evita enterrar la parte del circuito (que se encuentra en la parte superior del sensor) en suelo o agua, ya que podría dañar el sensor.

Calibración para Sensor Capacitivo de Humedad del Suelo

El valor obtenido del sensor de humedad no es absoluto. Se basa en la composición del suelo y en su contenido de agua. Para determinar con precisión el límite entre lo húmedo y lo seco, debemos realizar una calibración.

Instrucciones para la calibración:

  • Ejecuta el código en el ESP8266
  • Coloca el sensor de humedad en el suelo
  • Añade agua gradualmente al suelo
  • Monitorea el Monitor Serial
  • Anota el valor cuando el suelo pasa de seco a mojado. A este valor se le conoce como el umbral.

El código ESP8266 determina si el suelo está húmedo o seco

Una vez que se haya realizado la calibración, actualiza el valor THRESHOLD que anotaste en el código que se muestra a continuación. Este código se utilizará para decidir si el suelo está húmedo o seco.

/* * Este código de ESP8266 NodeMCU fue desarrollado por es.newbiely.com * Este código de ESP8266 NodeMCU se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp8266/esp8266-soil-moisture-sensor */ #define AOUT_PIN A0 // The ESP8266 pin ADC0 that connects to AOUT pin of moisture sensor #define THRESHOLD 530 // CHANGE YOUR THRESHOLD HERE void setup() { Serial.begin(9600); } 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); }

La salida que se ve en el Monitor serie.

COM6
Send
The soil is DRY (581) The soil is DRY (575) The soil is DRY (566) The soil is DRY (547) The soil is DRY (539) The soil is WET (521) The soil is WET (513) The soil is WET (492) The soil is WET (488)
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Nota:

Este tutorial utiliza la función analogRead() para obtener datos de un ADC (Convertidor Analógico-Digital) que está conectado a un sensor u otra parte. El ADC del ESP8266 funciona bien para proyectos en los que no se requieren lecturas muy precisas. Pero recuerda, el ADC del ESP8266 no es muy preciso para mediciones detalladas. Si tu proyecto necesita ser muy preciso, quizá quieras usar un ADC separado como el ADS1115 con el ESP8266, o usar un Arduino como el Arduino Uno R4 WiFi, que tiene un ADC más fiable.

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

Tutoriales Relacionados

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