Arduino tutorial parte 18: Sensor de humedad de suelo

Publicado el 28 julio 2015 por Guille
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  
  
  
   // Descripción de valores del Sensor 
  
   // 0  -300   muy mojado 
   // 300-700   Húmedo 
   // 700-1023   seco 
  
   int Valor; 
  
  
   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); 
   }