Arduino - Sensor de Humedad del Suelo

En este tutorial, vamos a aprender a usar el sensor de humedad con Arduino. En detalle, aprenderemos:

Hardware Requerido

1×Arduino Uno R3
1×Cable USB 2.0 tipo A/B (para PC USB-A)
1×Cable USB 2.0 tipo C/B (para PC USB-C)
1×Sensor de Humedad del Suelo Capacitivo
1×Cables Puente
1×(Recomendado) Shield de Bloque de Terminales de Tornillo para Arduino Uno
1×(Recomendado) Shield de Protoboard para Arduino Uno
1×(Recomendado) Carcasa para Arduino Uno
1×(Recomendado) Placa Base de Prototipado y Kit de Protoboard para Arduino Uno

Or you can buy the following kits:

1×DIYables STEM V3 Starter Kit (Arduino 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 información sobre la humedad del suelo. Sin embargo, sus principios de funcionamiento son diferentes. Recomendamos encarecidamente utilizar el sensor de humedad capacitivo, debido a la siguiente razón:

  • El sensor de humedad del suelo resistivo se corroe con el tiempo. Eso se debe a que la corriente eléctrica fluye entre sus sondas. Esto provoca corrosión electroquímica.
  • El sensor de humedad del suelo capacitivo no se corroe con el tiempo. Eso se debe a que sus electrodos no están expuestos y, en comparación, son libres de corrosión.

La imagen de abajo muestra un sensor de humedad del suelo resistivo que se corroyó con el tiempo.

sensor resistivo de humedad del suelo corroído

El resto de este tutorial utilizará 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: debe conectarse a GND (0V)
  • Pin VCC: debe conectarse a VCC (5V o 3.3V)
  • Pin AOUT: salida analógica que entrega una tensión que varía en proporción inversa al nivel de humedad del suelo. Conecta este pin al pin de entrada analógica de un Arduino.
Pinout del sensor de humedad del suelo capacitivo

Cómo funciona

Cuanto más agua haya en el suelo, menor será el voltaje en la salida AOUT.

Diagrama de Cableado

Diagrama de cableado del sensor de humedad del suelo para Arduino

This image is created using Fritzing. Click to enlarge image

Código de Arduino

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-soil-moisture-sensor */ #define AOUT_PIN A0 // Arduino pin 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

  • Copia el código anterior y ábrelo con Arduino IDE
  • Haz clic en el botón Subir en el IDE de Arduino para subir el código al Arduino
  • Entierra el sensor en el suelo y luego añade agua al suelo. O sumérgelo lentamente en una taza de agua salada.
  • Consulta el resultado en el Monitor Serial. Se muestra lo siguiente:
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, ya que no conduce electricidad, lo que significa que no afectará las lecturas del sensor.
  • Las lecturas del sensor normalmente no bajan a cero. Es normal que permanezcan dentro del rango de 500 a 600, pero esto podría cambiar según factores como la profundidad a la que se coloca el sensor, el tipo de suelo o agua y el voltaje de la fuente de alimentación.
  • Nunca 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 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 funcione como frontera entre húmedo y seco.

Cómo hacer la calibración:

  • Ejecuta el código anterior en Arduino
  • Inserta el sensor de humedad en el suelo
  • Inserta el sensor de humedad en el suelo
  • Añade agua al suelo lentamente
  • Abre el Monitor Serial.
  • Anota un valor en el momento en que sientas que el suelo cambia de seco a húmedo. Este valor se llama UMBRAL.

Determine 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 de abajo. El código de abajo determina si el suelo está húmedo o seco.

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-soil-moisture-sensor */ #define AOUT_PIN A0 // Arduino pin 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); }

El resultado en el Monitor Serial.

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  

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!