martes, 10 de junio de 2014

Termohigrómetro con DHT11 y arduino

En esta ocasión se tratara el tema de un termohigrómetro realizado con Arduino y el sensor DHT11, este sensor se puede encontrar en diferentes presentaciones como las que se muestran a continuación:
tomada de: http://www.google.com.co/imgres?imgurl=&imgrefurl=http%3A%2F%2Fwww.geeetech.com%2Fwiki%2Findex.php%2FElectric_thermometer_by_using_DHT11_sensor_module&h=0&w=0&tbnid=NR6fgFq5ibt4nM&zoom=1&tbnh=225&tbnw=225&docid=w18NBeAYKlgFGM&tbm=isch&ei=UZiXU77aJ6Xn8AHZh4DwDw&ved=0CAgQsCUoAg
tomada de: http://www.proyectosarduino.com.ar/wp-content/uploads/2012/11/DHT11Sensor1.jpg


Un poco de teoría:

El sensor DHT11 provee las medidas de temperatura y humedad relativa, en su salida se presenta una señal calibrada digitalmente, el sensor incluye un sensor resistivo para el componente de humedad y un NTC para realizar la medida de temperatura, conectándose todo a un microcontrolador interno de 8 bits. 

Algunas consideraciones técnicas:


Se debe tener en cuenta que solo mide hasta 50 °C, de tal manera que en aplicaciones industriales, superiores a este límite se hace necesario el uso de otro tipo de sensor.

Un aporte importante:

Puede seguir este tutorial para conocer como instalar una librería nueva a su compilador de arduino en el siguiente link:


La librería se consigue en el link de dropbox:

Circuito a implementar:

 

No olvide hacer las conexiones de alimentación de su LCD y del backlight, por cuestiones de simulación se omiten algunas conexiones.

A continuación se muestra el fucionamiento:


el código:
//basado en el ejemplo de la libreria MASTER DHT
#include "DHT.h" // Se incluye la librería
#include <LiquidCrystal.h> // libreria para LCD

LiquidCrystal lcd(3,4,5,6,7,8);//(RS,E,D4,D5,D6,D7)
#define DHTPIN 2  // pin de comunicación con el sensor
#define DHTTYPE DHT11// se selecciona el sensor, existen más opciones
DHT dht(DHTPIN, DHTTYPE); // se creael objeto dht con el pin y el tipo

void setup() 
{
    lcd.begin(16, 2); // se inicia una lcd de 2x16.
    lcd.setCursor(0,0);//cursor en posición 0 de la línea 0 
}
void loop()
{
  float h = dht.readHumidity();// se guarda el valor de humedad en H
  float t = dht.readTemperature();// se guarda el valor de temperatura en t
  lcd.setCursor(0,0);// cursor en posición 0,0
  lcd.print("TEMP: ");
  lcd.print(t);
  lcd.setCursor(0,1);//posición columna 0, fila 1
  lcd.print("HUM; ");
  lcd.print(h);
  delay(200);
  lcd.clear();// limpieza de la pantalla.
}

Fin del proyecto