Arduino Nano - Sensor de Humedad del Suelo

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

Hardware Requerido

1×Official Arduino Nano
1×Alternatively, DIYables ATMEGA328P Nano Development Board
1×Cable USB A a Mini-B
1×Sensor de Humedad del Suelo Capacitivo
1×Cables Puente
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

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

sensor de humedad capacitivo frente a sensor de humedad resistivo

Hay dos tipos de sensores de humedad:

  • El sensor de humedad resistivo
  • El sensor de humedad capacitivo

Ambos sensores ofrecen 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 lo siguiente:

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

Esta es una ilustración de un sensor resistivo de humedad del suelo que ha sido dañado debido a la corrosión a lo largo del tiempo.

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 conectarse a GND (0 V)
  • Pin VCC: Debe conectarse a VCC (5 V o 3.3 V)
  • Pin AOUT: Este pin de salida analógica producirá un voltaje proporcional al nivel de humedad del suelo. Debe conectarse al pin de entrada analógica de un Arduino.
pinout del sensor de humedad del suelo capacitivo

Cómo funciona

El pin AOUT tiene una tensión más alta cuando hay menos agua en el suelo.

Diagrama de Cableado

Diagrama de cableado del sensor de humedad del suelo Arduino Nano

This image is created using Fritzing. Click to enlarge image

Ver La mejor forma de alimentar Arduino Nano y otros componentes.

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

/* * Este código de Arduino Nano fue desarrollado por es.newbiely.com * Este código de Arduino Nano se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano/arduino-nano-soil-moisture-sensor */ #define AOUT_PIN A6 // The Arduino Nano 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 el IDE de Arduino.
  • Haz clic en el botón Subir en el IDE de Arduino para compilar y cargar el código en el Arduino Nano.
  • Entierra el sensor en el suelo, luego vierte agua en el suelo. O sumérgelo lentamente en una taza de agua salada.
  • Consulta el resultado en el Monitor Serial. Se ve como 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:

  • Evite realizar pruebas con agua pura, ya que no conduce electricidad, lo que no afectará las lecturas del sensor.
  • Las lecturas del sensor nunca llegarán a cero. Por lo general, oscilan entre 500 y 600, aunque esto puede variar según factores como la profundidad del sensor, el tipo de suelo o agua, y la tensión de suministro.
  • No entierre la parte del circuito (que se encuentra en la parte superior del sensor) en suelo o agua, ya que esto puede dañar el sensor.

Calibración para Sensor Capacitivo de Humedad del Suelo

El valor obtenido del sensor de humedad no es absoluto. Depende de la composición del suelo y de la cantidad de agua presente. Para determinar con precisión el límite entre húmedo y seco, debe realizarse una calibración.

Instrucciones para la calibración:

  • Ejecute el código en Arduino Nano
  • Coloque el sensor de humedad en el suelo
  • Añada gradualmente agua al suelo
  • Revise el Monitor Serial
  • Registre el valor cuando el suelo pase de seco a húmedo. Este valor se conoce como el umbral.

Arduino Nano determina si el suelo está húmedo o seco

Una vez que la calibración esté completa, actualiza el valor THRESHOLD que anotaste en el código a continuación. Este código para Arduino Nano determinará si el suelo está húmedo o seco.

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

La salida mostrada 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

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!