{{tag>arduino humedad sensor }}
===== 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
{{ :electronica:arduino:humedad_temperatura_y_fc28.jpg?600 |}}
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 ====
* http://www.luisllamas.es/2016/01/arduino-humedad-suelo-fc-28/
* http://www.prometec.net/sensor-agua/
* http://blog.whatgeek.com.pt/2014/08/arduino-hygrometer-or-humidity-sensor/
* http://arduinotronics.blogspot.com.es/2014/01/when-do-i-water-my-plants-soil.html