, ,

2. Sensor de humedad de la tierra con Arduino

Para medir la humedad de la tierra vamos a utilizar un sensor FC-28 que mide la conductividad eléctrica entre sus terminales y que nos dará un valor según sea el grado de humedad del terreno.

El sensor dispone de dos salidas, una salida analógica A0 que nos da un valor entre 0 y 1023 y una salida digital D0 que ajustaremos con el potenciómetro para definir el umbral de cuando dará “1”

Podemos usar cualquiera de las salidas, pero en nuestro caso vamos a utilizar la salida analógica para aprovechando nuestro anterior proyecto con el sensor DH-11 incorporarle el FC-28

El código sería el siguiente

// wiki.intrusos.info
// modificacion del Sketch de prueba para sensores DHT humedad / temperatura de  www.internetdelascosas.cl
// Escrito por @joniuz basado en el sketch de Ladyada


// Libreria para Sensores DHT
#include "DHT.h"

#define DHTPIN 2     // Pin del Arduino al cual esta conectado el pin 2 del sensor

// Descomentar segun el tipo de sensor DHT usado
#define DHTTYPE DHT11   // DHT 11 

// Inicializa el sensor
DHT dht(DHTPIN, DHTTYPE);
//Definimos a que patilla esta conectado el FC-28
const int sensorPin = A0;

// Configura Arduino 
void setup() {
  Serial.begin(9600); 
  Serial.println("Medir temperatura, humedad y humedad tierra\n\n");
 
  dht.begin();
}

void loop() {
  // Espera dos segundos para realizar la primera medición.
  delay(2000);

  // Lee los datos entregados por el sensor, cada lectura demora 250 milisegundos
  // El sensor muestrea la temperatura cada 2 segundos}
  
  // Obtiene la Humedad
  float h = dht.readHumidity();
  // Obtiene la Temperatura en Celsius
  float t = dht.readTemperature();
  //obtiene la humedad de la tierra
  int humedadtierra = analogRead(sensorPin);
  
  // Control de errores, valida que se obtuvieron valores para los datos medidos
  if (isnan(h) || isnan(t)) {
    Serial.println("Falla al leer el sensor DHT!");
    return;
  }

  Serial.print("Humedad: "); 
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperatura: "); 
  Serial.print(t);
  Serial.print(" *C ");
  Serial.print(" \t");
  Serial.print("Humedad Tierra: "); 
  Serial.print(humedadtierra);
  Serial.println();
}

0 es máxima humedad y 1023 es que está completamente seco
También podríamos poner unos leds para que nos indiquen el grado de humedad → http://www.instructables.com/id/Soil-Moisture-Sensor/

Referencias