En este post vas a aprender como medir la humedad del suelo mediante el sensor FC28 y Arduino.

La medida de humedad del suelo está basada en la medida de la conductividad.

La conductividad es la capacidad de un material o sustancia para dejar circular la corriente a través de él.

Este sistema es muy interesante para controlar sistemas de riego.

El sistema está compuesto por dos elementos.

-Sonda de humedad

-Placa acondicionadora de señal

La sonda del higrómetro

Como podemos apreciar es una baquelita dividida en dos partes conductoras, es decir unas pistas bastante anchas que están comunicadas entre ambas caras a ambos lados.

Sonda del higrómetro
Sonda del higrómetro

Al estar sus dos partes incomunicadas, cuando no hay nada que las una, como puede ser el aire, la resistencia entre ambos puntos es teóricamente infinita.

Sin embargo cuando la introducimos en un material como la tierra, en función de la humedad que tenga esta se permitirá el paso de corriente de un extremo a otro de la sonda.

Cuando la tierra está muy húmeda la resistencia tenderá a ser muy baja incrementado el paso de corriente.

Traduciendo esas variaciones de resistencia entre los dos polos de la sonda a tensiones, se aprovechan para leerlas a través de una de las entradas analógicas como es en este caso de Arduino.

Placa acondicionadora de señal:

Esta placa principalmente está compuesta por un amplificador operacional lm393 en configuración de comparador.

placa acondicionadora de señal del higrómetro
placa acondicionadora de señal del higrómetro
esquema de la placa acondicionadora de señal del higrómrtro
esquema de la placa acondicionadora de señal del higrómrtro
curso arduino
CURSO ARDUINO

Si quieres convertirte en un experto en Arduino pincha en el siguiente botón

.

Para la entrada no inversora pin A0 (patilla 5 del LM393), lee la tensión proveniente de la sonda acondicionada con una resistencia R1 de 10KΩ más un condensador C1 de 20µF y por la entrada inversora (patilla 6 del LM393) lee la tensión proveniente de un potenciómetro de ajuste de 10KΩ.

Con este potenciómetro o trimer ajustaremos el nivel de humedad con el que queremos que nos active la salida digital de esta placa.

Cuando la humedad es inferior a la ajustada mediante el trimmer el Led D1 permanece apagado.

Cuando la humedad es superior a la ajustada mediante el trimmer el Led D1 permanece encendido.

La salida del operacional en modo comparador es donde está conectado el pin D0. 

D0 se pone a HIGH led D0 apagado o a OFF, (ten en cuenta que va al revés) si el suelo está seco, es decir el nivel de humedad es insuficiente al nivel que hemos prefijado mediante el trimer.

D0 se pone a LOW led D0 encendido o a ON cuando la humedad es suficiente o superior al nivel que hemos prefijado con el trimer.

El pin A0 dará tensiones de 5 voltios cuando el terreno está totalmente seco o al aire y 0 Voltios cuando este totalmente húmedo y la tierra es lo suficientemente conductora.

/*AUTOR: JOSE ANTONIO RIVERA MORALES
 *FECHA: 17-2-2020
 *www.pasionelectronica.com
 * Este programa muestra la humedad
 * de la tierra mediante una sonda
 * y una placa acondicionadora de señal 
 * en un display lcd 1602 
 * con un adaptador I2C
 */
#include <Wire.h>//incluimos libreria comunic i2c
#include <LiquidCrystal_I2C.h>//incluimos librería pantalla i2c
LiquidCrystal_I2C lcd1602 (0x27, 16, 2);//creamos un objeto pantalla
int sensorPin = A0;//pin donde se conecta A0 de la pcb de la sonda
int valSonda;//Valor en porcentaje de la sonda
 
void setup() {
   Serial.begin(9600);
   Wire.begin();//comenzamos comunicacion i2c
   lcd1602.begin(16, 2);//conectamos con la pantalla

   lcd1602.clear();//la borramos xa asegurarnos que no salga nada anterior

   lcd1602.backlight();//encendemos retro-iluminacion
}
 
void loop() 
{
   int humedad = analogRead(sensorPin);//almacena lectura entrada analogica
   valSonda=map(humedad,0,1023,100,0);//pasamos a porcentajes
   lcd1602.setCursor(3,0);//posicionamos cursor 4a col 1a fila
  //se empieza a contar desde cero
   lcd1602.print("Humedad ");//mostramos texto humedad
   lcd1602.print(valSonda);//seguido del valor
   lcd1602.print("%");//mas el signo de tanto por ciento
   delay(2000);//lo mantenemos dos segundos
   lcd1602.clear();//borramos la pantalla
   delay(1000);//esperamos para que de tiempo a borrar
}

Puedes descargar este y otros programas en la zona de descargas

Si te ha gustado este articulo puedes compartirlo en tus redes favoritas.