Está en la página 1de 10

Arduino Tutorial 20: Sensor de humedad de suelo

En este tutorial os voy a hablar del modulo HL-69, un


sensor de humedad de suelo que utiliza la
conductividad entre dos terminales para determinar
ciertos parámetros relacionados a agua, líquidos y
humedad.

Este sensor tiene la capacidad de medir la humedad


del suelo. Aplicando una pequeña tensión entre los
terminales del módulo, hace pasar una corriente que
depende básicamente de la resistencia que se genera
en el suelo y ésta depende mucho de la humedad. Por
lo tanto al aumentar la humedad la corriente crece y al
bajar la corriente disminuye.

Características técnicas:
Posee dos tipos de salidas, una analógica y una
digital. La salida digital entregará un pulso bajo cuando
haya conductividad suficiente entre cada una de las
puntas. El umbral de disparo se puede establecer
moviendo el potenciómetro del circuito de control. En
la salida analógica el nivel de voltaje dependerá
directamente de cuanta humedad haya en el suelo. Es
decir, dependiendo de cuanta conductividad (producto
del agua en el suelo) haya entre las puntas del
módulo, así variará el valor entregado por Arduino
(entre 0 y 1023).

Nosotros en este ejemplo, solo hemos conectado a la


salida analógica, ya que queremos saber si el suelo
esta seco, húmedo o muy mojado:
  
0  -300         muy mojado  
300-700       húmedo  
700-1023     seco  

Estos valores dependen de la planta que quieras


regar, ya que no es lo mismo un captus que una cala,
aunque para la mayoría de las plantas esos valores
valen.

Una anotación muy importante es que depende el


módulo que tengamos, alomejor los valores cercanos a
0 es porque la planta está seca y los cercanos a 1023
es porque esta muy aguada. Os recomiendo que al
cargar el programa probeis como actúa vuestro sensor
metiendolo en un vaso de agua.

Conexionado: 
 
 
Código
// Sensor de Humedad     
            
    // Conectamos el sensor de la siguiente forma:        
    // GND    -> GND        
    // VCC    -> 5V        
    // DAT    -> A0            
      

int Valor;  
    
void setup() {
Serial.begin(9600);

void loop(){  
Serial.print("Sensor de Humedad valor:");  
Valor = analogRead(0);  
Serial.print(Valor);  
if (Valor <= 300)  
   Serial.println(" Encharcado");  
if ((Valor > 300) and (Valor <= 700))  
    Serial.println(" Humedo, no regar");   
if (Valor > 700)  
    Serial.println(" Seco, necesitas regar");  
delay(1000); 

MEDIR LA HUMEDAD
DEL SUELO CON
ARDUINO E
HIGRÓMETRO FC-28
SHARE ON:     

— 19 ENERO, 2016


¿QUÉ ES UN HIGRÓMETRO FC-
28?
Un higrómetro de suelo FC-28 es un sensor que mide la humedad del suelo.
Son ampliamente empleados en sistemas automáticos de riego para detectar cuando
es necesario activar el sistema de bombeo.

El FC-28 es un sensor sencillo que mide la humedad del suelo por la variación de
su conductividad. No tiene la precisión suficiente para realizar una medición absoluta
de la humedad del suelo, pero tampoco es necesario para controlar un sistema de
riego.

El FC-28 se distribuye con una placa de medición estándar que permite obtener
la medición como valor analógico o como una salida digital, activada cuando la
humedad supera un cierto umbral.

Los valores obtenidos van desde 0 sumergido en agua, a 1023 en el aire (o en


un suelo muy seco). Un suelo ligeramente húmero daría valores típicos de 600-700.
Un suelo seco tendrá valores de 800-1023.

La salida digital dispara cuando el valor de humedad supera un cierto umbral,


que ajustamos mediante el potenciómetro. Por tanto, obtendremos una señal LOW
cuando el suelo no está húmedo, y HIGH cuando la humedad supera el valor de
consigna.

El valor concreto dependerá del tipo de suelo y la presencia de elementos


químicos, como fertilizantes. Además, no todas las plantas requieren la misma
humedad, por lo que lo mejor es que hagáis una pequeña calibración en el terreno
real.

PRECIO
El sensor de humedad FC-28 es realmente barato. Podemos encontrarlo por
0,85€ en vendedores internacionales de Ebay y Aliexpress.

ESQUEMA DE MONTAJE
El esquema eléctrico es sencillo. Alimentamos el módulo conectando GND y 5V a
los pines correspondientes de Arduino.

Ahora si queremos usar la lectura analógica, conectamos la salida A0 a una de las


entradas analógicas de Arduino.
Mientras que la conexión vista desde Arduino quedaría así,
Si quisiéramos emplear el valor digital, que se ajusta con el potenciómetro de la
placa, en su lugar conectaríamos la salida D0 del sensor a una entrada digital de
Arduino.

EJEMPLOS DE CÓDIGO
El código necesario es realmente sencillo. Si estamos empleando la señal
analógica A0, leemos el valor mediante la entrada analógica, y usamos el puerto de
serie para mostrar el valor por pantalla. En un caso real, este valor se emplearía para
ejecutar acciones, en lugar de mostrar el valor.

1 const int sensorPin = A0;

2  

3 void setup() {

4    Serial.begin(9600);

5 }

6  

7 void loop()

8 {

9    int humedad = analogRead(sensorPin);

1    Serial.print(humedad);
0
  
1
1

1
2

1    if(humedad < 500)


3
   {
1
4       Serial.println("Encendido");  

1       //hacer las acciones necesarias


5    }

1    delay(1000);
6
}
1
7

1
8

Si estamos empleando la señal digital, empleamos una entrada digital para leer
el estado. En el ejemplo mostramos un mensaje por la pantalla, pero igualmente en
un caso real ejecutaríamos las acciones oportunas.

1 const int sensorPin = 10;

2  

3 void setup()

4 {

5    Serial.begin(9600);

6    pinMode(sensorPin, INPUT);

7 }

8  

9 void loop()

1 {
0
   int humedad = digitalRead(sensorPin);
1
1  

1    //mandar mensaje a puerto serie en función del valor leido


2
   if (humedad == HIGH)
1
3

1
4

1
5    {

1       Serial.println("Encendido");  
6
      //aquí se ejecutarían las acciones
1
   }
7
   delay(1000);
1
8 }

1
9

2
0

También podría gustarte