Mantener viva una planta de interior puede ser una tarea difícil, ¿verdad? Y muchas veces es sólo cuestión de acordarse de regarla. Afortunadamente, los sensores de humedad del suelo pueden ayudarnos a recordar regar nuestras plantas y ayudarlas a vivir más tiempo.
Sin embargo, la mayoría de los sensores de humedad del suelo económicos son resistivos, lo que significa que tienen dos puntas y el sensor mide el contenido de agua en el suelo en función de la conductividad entre ellas. Al principio funcionan bien, pero con el tiempo empiezan a oxidarse, ¡aunque estén bañados en oro! Esta oxidación afecta las métricas, por lo que debes ajustar constantemente tu código para hacerlo bien. Además, no funcionan bien en suelos sueltos.
Afortunadamente, existe una mejor opción: Sensores capacitivos de humedad del suelo.. Estos sensores funcionan sobre la base de medición capacitiva, lo que ofrece importantes ventajas sobre la medición de resistencia. Estos sensores solo tienen una sonda, no tienen metal oxidado y no dañarán sus plantas al liberar electricidad en el suelo.
En este tutorial aprenderá cómo utilizar eficazmente sensores capacitivos de humedad del suelo con Arduino. Al final de este tutorial, tendrá el conocimiento y las habilidades para garantizar que sus plantas prosperen sin preocuparse por el riego excesivo o insuficiente. ¡Vamos a empezar!
Descripción general del hardware
Los sensores capacitivos de humedad del suelo son realmente sorprendentes. Simplemente péguelos en el suelo y emitirán una señal analógica proporcional a la humedad del suelo.
Estos sensores utilizan un IC de temporizador 555 y miden qué tan rápido (o lentamente) se carga un capacitor a través de una resistencia. En estos sensores, sin embargo, el condensador no es un componente real, sino que está formado por dos pistas de la placa de circuito que están muy juntas. Su capacidad y por tanto su tasa de carga cambian dependiendo de la cantidad de agua que haya a su alrededor.
El sensor tiene un regulador de voltaje integrado de 3,3 V, lo que lo hace adecuado para MCU de 3,3 V y 5 V. Además, consume menos de 5 mA de corriente.
Tenga en cuenta que este sensor sólo puede proporcionar una medición cualitativa de la humedad del suelo. Cuanto más húmedo esté el suelo, menor será el valor de rendimiento; cuanto más seco esté el suelo, mayor será el valor de rendimiento. Con una fuente de alimentación de 5 V, el voltaje de salida oscila entre aproximadamente 1,5 V (para suelo húmedo) y 3 V (para suelo seco).
Sin embargo, el valor de salida final se ve afectado por la profundidad de inserción de la sonda y la densidad del suelo circundante.
Especificaciones técnicas
Aquí están las especificaciones:
Tensión de funcionamiento | 3,3 a 5,5 V |
Corriente de funcionamiento | <5mA |
Tensión de salida a 5V | 1,5 V a 3 V (aprox.) |
Sonda de sensor L x An (PCB) | 98 x 23 mm (3,86 x 0,91 pulgadas) |
Longitud del cable | 20 cm (8″) |
¿Cómo funciona un sensor capacitivo de humedad del suelo?
Para comprender cómo funciona un sensor capacitivo de humedad del suelo, primero debe comprender el comportamiento del condensador en un circuito RC.
En un circuito RC simple como este, cuando se aplica un voltaje positivo a la entrada, el capacitor (C) comienza a cargarse a través de la resistencia (R). El voltaje en el capacitor cambia. Con el tiempo, el voltaje del capacitor aumenta hasta el mismo voltaje de entrada. Aquí puede ver un gráfico que representa el voltaje versus el tiempo para el capacitor de carga.
El tiempo que tarda el condensador en cargarse completamente depende de los valores de la resistencia y del condensador. Si mantiene R constante y prueba dos valores de capacitancia diferentes para C, encontrará que un capacitor con mayor capacidad tardará más en cargarse.
mientras que un condensador con menor capacidad tarda menos en cargarse.
Ahora volvamos a nuestro sensor: el condensador C en la placa del sensor no es un componente real, sino simplemente dos pistas conductoras de cobre que actúan como un condensador. Este efecto, conocido como Capacidad parasitariaOcurre con frecuencia en los circuitos y suele ser insignificante. Sin embargo, si aumentamos deliberadamente el tamaño de las dos pistas conductoras de cobre, podemos aprovechar este efecto.
La capacitancia de este condensador parásito está determinada por la forma de las pistas conductoras y el entorno que las rodea (conocido en términos técnicos como constante dieléctrica). Cuando el sensor se inserta en el suelo, el entorno alrededor del condensador cambia dependiendo de si el suelo se vuelve más húmedo o más seco. Esto cambia su capacidad y en consecuencia afecta su tiempo de carga.
Cuando el suelo está seco, el condensador tiene menor capacidad y por tanto se carga más rápido. Por el contrario, cuando el suelo está mojado, el condensador tiene mayor capacidad y, por tanto, se carga más lentamente.
Para comprender mejor cómo se implementa esto en el sensor, veamos el diagrama del circuito.
El sensor utiliza un 555 configurado como oscilador astable. Las ondas cuadradas generadas por el 555 se alimentan al integrador RC, cuyo condensador está formado por la sonda de tierra. La señal del integrador es más bien una onda triangular que se alimenta al rectificador y a un condensador de suavizado para producir una salida de CC.
Este rendimiento es proporcional al contenido de humedad del suelo. Entonces, cuando la tierra está seca, el capacitor se carga rápidamente, lo que da como resultado una amplitud de onda triangular mayor y, por lo tanto, un voltaje de salida más alto. Por el contrario, cuando el suelo está mojado, el condensador se carga más lentamente, lo que da como resultado una amplitud de onda triangular más pequeña, lo que a su vez produce un voltaje de salida más bajo.
Asignación de pines del sensor capacitivo de humedad del suelo
El sensor capacitivo de humedad del suelo tiene un conector JST PH2.0 de 3 pines. Un extremo del cable incluido se conecta a este puerto, mientras que el otro extremo es un enchufe estándar estilo Dupont de 3 pines. El cable está codificado por colores para que pueda identificar fácilmente de qué cable se trata: negro para tierra, rojo para VCC y amarillo para AOUT.
VCC es el pin de fuente de alimentación. 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.
AFUERA El pin proporciona una salida de voltaje analógico que es proporcional a la cantidad de humedad en el suelo. La salida se puede leer a través de una entrada analógica en su microcontrolador. A medida que aumenta el contenido de humedad, el voltaje de salida disminuye y viceversa.
Instrucciones de uso
Al utilizar el sensor, tenga en cuenta lo siguiente:
- Se recomienda no colocar la sonda a una profundidad que exceda la línea límite del sensor.
- Los componentes de esta placa NO son impermeables. Por lo tanto, asegúrese de que no entren en contacto con agua o salpicaduras. Para protección adicional, considere usar un tubo retráctil ancho alrededor de la parte superior del tablero.
- Tenga en cuenta que los bordes de la placa de circuito pueden absorber humedad con el tiempo, acortando la vida útil del sensor. Para aumentar la durabilidad, considere aplicar una capa protectora, como: B. resina epoxi transparente, que no afecta el rendimiento del sensor.
Cableado de un sensor capacitivo de humedad del suelo a un Arduino
Conectar un sensor capacitivo de humedad del suelo a un Arduino es muy sencillo. Sólo necesitas conectar tres cables.
Primero, conecte el cable rojo (VCC) del sensor a la fuente de alimentación. De 3,3 V a 5 V está bien. Utilice el mismo voltaje en el que se basa la lógica de su microcontrolador. Para la mayoría de los Arduinos, esto es 5V. Para dispositivos lógicos de 3,3 V, utilice 3,3 V. Ahora conecte el cable negro (GND) a tierra.
Finalmente, conecta el cable amarillo (AOUT) a uno de los pines de entrada analógica de tu Arduino. En nuestro caso está conectado al pin A0.
La siguiente tabla enumera las conexiones de pines:
Sensor de humedad del suelo | arduino | |
VCC | 5V | |
Tierra | Tierra | |
AFUERA | A0 |
El cableado se muestra en la siguiente imagen.
Encontrar los umbrales
No es posible determinar el contenido real de humedad del suelo directamente a partir de las mediciones tomadas. Sin embargo, es relativamente fácil definir rangos básicos de lo que se considera «demasiado seco», «demasiado húmedo» y «perfecto».
Simplemente ejecute el siguiente esquema y registre la salida de su sensor bajo tres condiciones básicas:
- Cuando el suelo está tan seco que la planta necesita riego.
- Cuando el suelo ha sido regado hasta el nivel de humedad ideal para la planta.
- Si la tierra ha sido muy regada y está demasiado húmeda, lo cual no es lo ideal para la planta.
// Define analog input
#define sensorPin A0
void setup() {
// Setup Serial Monitor
Serial.begin(9600);
}
void loop() {
// Read the Analog Input
int value = analogRead(sensorPin);
// Print the value to the serial monitor
Serial.print("Analog output: ");
Serial.println(value);
// Wait for 1 second before the next reading
delay(1000);
}
Al ejecutar el boceto, debe esperar medidas similares a las que se enumeran a continuación:
- Al aire libre: aprox. 590
- Suelo seco que necesita riego: aprox. 380
- Humedad ideal del suelo: entre 277 y 380
- Suelo recién regado: aprox. 277
- En una taza de agua: aprox.
Esta prueba puede requerir algunos intentos. Una vez que tenga las métricas, puede utilizarlas como umbral para desencadenar una acción.
código de ejemplo de arduino
El siguiente esquema estima la humedad del suelo utilizando los siguientes umbrales:
- < 277 está demasiado mojado
- 277 – 380 es el rango objetivo
- > 380 está demasiado seco
/* Change these values based on your observations */
#define wetSoil 277 // Define max value we consider soil 'wet'
#define drySoil 380 // Define min value we consider soil 'dry'
// Define analog input
#define sensorPin A0
void setup() {
Serial.begin(9600);
}
void loop() {
// Read the Analog Input and print it
int moisture = analogRead(sensorPin);
Serial.print("Analog output: ");
Serial.println(moisture);
// Determine status of our soil
if (moisture < wetSoil) {
Serial.println("Status: Soil is too wet");
} else if (moisture >= wetSoil && moisture < drySoil) {
Serial.println("Status: Soil moisture is perfect");
} else {
Serial.println("Status: Soil is too dry - time to water!");
}
Serial.println();
// Take a reading every second
delay(1000);
}
Si todo está bien, debería ver un resultado similar en el monitor serie.
Muy interesante, me encantaría probarlo en mi jardín.