¿Alguna vez te has preguntado cómo funciona el sensor de humedad del suelo? En este artículo, te explicaremos todo lo que necesitas saber sobre este dispositivo y cómo puedes conectarlo a tu Arduino. Descubre cómo aprovechar al máximo esta tecnología para mantener tus plantas sanas y fuertes. ¡Sigue leyendo para aprender más!
Cuando escuchas el término «jardín inteligente», lo primero que te viene a la mente es un sistema que controla el contenido de humedad del suelo y suministra automáticamente a las plantas la cantidad de agua necesaria.
Este sistema permite regar las plantas sólo cuando sea necesario, evitando riegos excesivos o insuficientes.
Si desea construir un sistema de este tipo, sin duda necesitará un sensor de humedad del suelo.
¿Cómo funciona un sensor de humedad del suelo?
El sensor de humedad del suelo funciona fácilmente.
La sonda en forma de horquilla con dos conductores expuestos actúa como una resistencia variable (similar a un potenciómetro) cuyo valor de resistencia varía con el contenido de humedad del suelo.
Esta resistencia varía inversamente con la humedad del suelo:
- Cuanta más agua haya en el suelo, mejor será la conductividad y menor la resistencia.
- Cuanta menos agua haya en el suelo, menor será la conductividad y mayor la resistencia.
El sensor genera un voltaje de salida según la resistencia, que podemos utilizar para determinar el contenido de humedad del suelo midiendolo.
Descripción general del hardware
Un sensor de humedad del suelo típico consta de dos partes.
La sonda
El sensor consta de una sonda bifurcada con dos conductores expuestos que se inserta en el suelo u otro lugar donde se va a medir el contenido de humedad.
Como se mencionó anteriormente, actúa como una resistencia variable cuya resistencia varía según la humedad del suelo.
El módulo
Además, el sensor contiene un módulo electrónico que conecta la sonda al Arduino.
El módulo genera un voltaje de salida basado en la resistencia de la sonda, que está disponible en un pin de salida analógica (AO).
La misma señal se envía a un comparador de alta precisión LM393, que la digitaliza y la pone a disposición en un pin de salida digital (DO).
El módulo contiene un potenciómetro para ajustar la sensibilidad de la salida digital (DO).
Le permite establecer un umbral para que el módulo tenga una salida BAJA y, de lo contrario, ALTA cuando la humedad del suelo supere el umbral.
Esta configuración es muy útil para desencadenar una acción cuando se alcanza un determinado umbral. Por ejemplo, si el contenido de humedad del suelo supera un determinado umbral, puedes activar un relé para empezar a regar la planta.
Gire la perilla en el sentido de las agujas del reloj para aumentar la sensibilidad y en el sentido contrario a las agujas del reloj para disminuirla.
El módulo también contiene dos LED. El LED de encendido se enciende cuando el módulo está encendido y el LED de estado se enciende cuando la humedad del suelo excede el umbral.
Asignación de pines del sensor de humedad del suelo
El sensor de humedad del suelo es extremadamente fácil de usar y solo requiere cuatro pines para conectarlo.
AO (salida analógica) Produce un voltaje de salida analógico proporcional al nivel de humedad del suelo, por lo que un valor más alto da como resultado un voltaje más alto y un valor más bajo da como resultado un voltaje más bajo.
HACER (salida digital) Indica si la humedad del suelo está dentro del límite. D0 se vuelve BAJO si el contenido de humedad excede el umbral (establecido por el potenciómetro), ALTO en caso contrario.
VCC suministra energía al sensor. Se recomienda alimentar el sensor de 3,3V a 5V. Tenga en cuenta que la salida analógica puede variar dependiendo del voltaje suministrado al sensor.
Tierra es el pin de tierra.
Experimento 1: medición de la humedad del suelo mediante salida analógica (A0)
En nuestro primer experimento, leemos la salida analógica para estimar el nivel de humedad del suelo.
alambrado
Conectemos el sensor de humedad del suelo al Arduino.
Empecemos por encender el sensor. Para hacer esto, puedes conectar el pin VCC del módulo al pin de 5V del Arduino.
Sin embargo, un problema conocido con estos sensores es que tienen una vida útil más corta debido a la exposición constante a la humedad. Además, la tasa de corrosión se acelerará significativamente si el sensor recibe energía constantemente mientras está enterrado en el suelo.
Para evitar esto, se recomienda encender el sensor únicamente durante la medición.
Una manera fácil de hacer esto es conectar el pin de alimentación del sensor a un pin digital en un Arduino y configurarlo en ALTO o BAJO según sea necesario. Además, el consumo total de corriente del módulo (cuando ambos LED están encendidos) es de aproximadamente 8 mA, por lo que alimentar el módulo desde un pin digital está bien. Entonces conectamos el pin VCC al pin digital n.° 7 del Arduino.
Finalmente, conecte el pin A0 al pin A0 ADC del Arduino.
El cableado se muestra en la siguiente imagen.
Encontrar los umbrales
Para estimar el contenido de humedad del suelo, registre los valores de la salida de su sensor cuando el suelo esté lo más seco posible y completamente saturado.
Tenga en cuenta que su sensor puede ser más o menos sensible según el tipo de suelo utilizado. Los minerales disueltos en agua provenientes de fertilizantes y otras fuentes también pueden afectar la salida del sensor.
Simplemente ejecute el boceto a continuación y tome sus medidas.
// Sensor pins
#define sensorPower 7
#define sensorPin A0
void setup() {
pinMode(sensorPower, OUTPUT);
// Initially keep the sensor OFF
digitalWrite(sensorPower, LOW);
Serial.begin(9600);
}
void loop() {
//get the reading from the function below and print it
Serial.print("Analog output: ");
Serial.println(readSensor());
delay(1000);
}
// This function returns the analog soil moisture measurement
int readSensor() {
digitalWrite(sensorPower, HIGH); // Turn the sensor ON
delay(10); // Allow power to settle
int val = analogRead(sensorPin); // Read the analog value form sensor
digitalWrite(sensorPower, LOW); // Turn the sensor OFF
return val; // Return analog moisture value
}
Cuando ejecute el boceto, debería ver medidas similares a las siguientes:
- Cuando el suelo esté seco (aprox. 850)
- Cuando el suelo esté completamente saturado (aprox. 400)
Esta prueba puede requerir algunos intentos. Una vez que tenga las métricas, puede utilizarlas como umbral para desencadenar una acción.
código arduino
El siguiente esquema estima la humedad del suelo utilizando los siguientes umbrales:
- < 500 está demasiado húmedo
- 500-750 es el rango objetivo
- > 750 está lo suficientemente seco para ser regado
/* Change these values based on your calibration values */
#define soilWet 500 // Define max value we consider soil 'wet'
#define soilDry 750 // Define min value we consider soil 'dry'
// Sensor pins
#define sensorPower 7
#define sensorPin A0
void setup() {
pinMode(sensorPower, OUTPUT);
// Initially keep the sensor OFF
digitalWrite(sensorPower, LOW);
Serial.begin(9600);
}
void loop() {
//get the reading from the function below and print it
int moisture = readSensor();
Serial.print("Analog Output: ");
Serial.println(moisture);
// Determine status of our soil
if (moisture < soilWet) {
Serial.println("Status: Soil is too wet");
} else if (moisture >= soilWet && moisture < soilDry) {
Serial.println("Status: Soil moisture is perfect");
} else {
Serial.println("Status: Soil is too dry - time to water!");
}
delay(1000); // Take a reading every second for testing
// Normally you should take reading perhaps once or twice a day
Serial.println();
}
// This function returns the analog soil moisture measurement
int readSensor() {
digitalWrite(sensorPower, HIGH); // Turn the sensor ON
delay(10); // Allow power to settle
int val = analogRead(sensorPin); // Read the analog value form sensor
digitalWrite(sensorPower, LOW); // Turn the sensor OFF
return val; // Return analog moisture value
}
Si todo está bien, deberías ver algo similar en el monitor serie.
Experimento 2: medición de la humedad del suelo mediante salida digital (D0)
En nuestro segundo experimento, usaremos la salida digital para determinar si el contenido de humedad del suelo está dentro de los límites aceptables.
alambrado
Reutilizaremos el circuito del experimento anterior. Simplemente desconecte el pin ADC y conecte el pin D0 del módulo al pin digital n.° 8 del Arduino.
La siguiente imagen muestra el cableado.
Establecer umbral
El módulo tiene un potenciómetro incorporado para ajustar el umbral de humedad por encima del cual la salida del módulo es BAJA y el LED de estado se ilumina.
Ahora, para establecer el umbral, inserte la sonda en el suelo cuando su planta necesite riego y gire la maceta en el sentido de las agujas del reloj hasta que se encienda el LED de estado. Luego gire la olla hacia la izquierda hasta que se apague el LED.
Eso es todo; Su módulo ahora está listo para usar.
código arduino
Ahora sube el siguiente boceto a tu Arduino.
// Sensor pins
#define sensorPower 7
#define sensorPin 8
void setup() {
pinMode(sensorPower, OUTPUT);
// Initially keep the sensor OFF
digitalWrite(sensorPower, LOW);
Serial.begin(9600);
}
void loop() {
//get the reading from the function below and print it
int val = readSensor();
Serial.print("Digital Output: ");
Serial.println(val);
// Determine status of our soil moisture situation
if (val) {
Serial.println("Status: Soil is too dry - time to water!");
} else {
Serial.println("Status: Soil moisture is perfect");
}
delay(1000); // Take a reading every second for testing
// Normally you shoul take reading perhaps every 12 hours
Serial.println();
}
// This function returns the analog soil moisture measurement
int readSensor() {
digitalWrite(sensorPower, HIGH); // Turn the sensor ON
delay(10); // Allow power to settle
int val = digitalRead(sensorPin); // Read the analog value form sensor
digitalWrite(sensorPower, LOW); // Turn the sensor OFF
return val; // Return analog moisture value
}
Debería ver un resultado similar en el monitor serie.
¿Cómo funciona el sensor de humedad del suelo y cómo conectarlo a Arduino?
¿Cómo funciona un sensor de humedad del suelo?
El sensor de humedad del suelo opera de manera muy sencilla. Consiste en una sonda en forma de horquilla con dos conductores expuestos que actúan como un resistor variable cuya resistencia varía con el contenido de humedad del suelo.
Esta resistencia varía de forma inversa con la humedad del suelo:
- Cuanto más agua haya en el suelo, mejor será la conductividad y menor será la resistencia.
- Cuanto menos agua haya en el suelo, menor será la conductividad y mayor será la resistencia.
El sensor produce un voltaje de salida de acuerdo con la resistencia, lo que nos permite determinar el nivel de humedad del suelo.
Descripción del hardware
Un sensor de humedad del suelo típico consta de dos partes:
- La Sonda: Conforma en una sonda en forma de horquilla con dos conductores expuestos que se inserta en el suelo o donde se desea medir la humedad.
- El Módulo: Este conecta la sonda a Arduino y genera un voltaje de salida basado en la resistencia de la sonda. Se conecta a un comparador de alta precisión LM393 que digitaliza la señal y la hace disponible en un pin de Salida Digital (DO).
Pinout del sensor de humedad del suelo
El sensor de humedad del suelo es muy fácil de usar y solo requiere cuatro pines para conectarse:
- AO (Salida Analógica): Genera un voltaje de salida proporcional al nivel de humedad del suelo.
- DO (Salida Digital): Indica si el nivel de humedad del suelo está dentro del límite.
- VCC: Suministra energía al sensor.
- GND: Es el pin de tierra.
Para leer el artículo completo y acceder a los códigos de Arduino relacionados, visita Electronic Wings.