ESP8266 - Sensor de Humedad del Suelo
Este tutorial explica cómo usar un sensor de humedad con ESP8266. Específicamente, veremos:
- Las diferencias entre un sensor de humedad resistivo y un sensor de humedad capacitivo
- Cómo programar el ESP8266 para leer el valor del sensor de humedad
- Cómo usar el ESP8266 para calibrar el sensor de humedad
- Cómo determina el ESP8266 si el suelo está húmedo o seco
Hardware Requerido
Or you can buy the following kits:
| 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

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.

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.

Cómo funciona
La cantidad de agua presente en el suelo es inversamente proporcional al nivel de voltaje del pin AOUT.
Diagrama de Cableado

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
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:
※ 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.
La salida que se ve en el Monitor serie.
※ 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.