lunes, 25 de abril de 2016

Tutorial-Review Sensor de Temperatura y Humedad DHT11 en LCD 16x02


Sensor DHT11de Temperatura y Humedad

 Para el tutorial de hoy contamos con el sensor cedido por Electrón Perdido DHT11.

Este sensor nos medirá tanto humedad como tempertura con un error en la primera de un 5% (sobre el rango 20 - 95%) y un error en el segundo de 2ºC. Se trata de errores moderados pero siempre depende de la finalidad de nuestro sensor. 

Así pues los materiales que utilizaremos para el tutorial de hoy son:

- 1 x Arduino UNO,
- 1 x Resistencia de 220 Ohmios
- 1 x Protoboard (BreadBoard)
- 1 x Sensor DHT11
- 1 x Potenciómetro de 10K
- 1 x LCD 16x02
- Cables


Empezaremos con el esquema electrónico:

En el esquema podemos observar diferencias entre la práctica y el propio esquema. Respecto el tema de las conexiones del DHT11 dado que nuestro sensor es el módulo que sólo nos saca tres pines en vez de cuatro como en la imagen, conectamos el pin del sensor al pin 7, vcc a 5 voltios y GND a GND. 


El resto de conexiones son las mismas que están planteadas en el resto de tutoriales sobre LCD que tenemos en el blog. Aún así para facilitar la comprensión del tutorial puntualizaremos que el potenciómetro controla el contraste de la LCD y que en ningún caso el sensor y el potenciómetro deben compartir conexiones.

Ahora vayamos al código. En primer lugar nos descargaremos la librería de DHT11.
Esta librería, igual que con cualquier otra, la instalaremos en nuestro Arduino IDE a través de la opción: Include Library -> Add .ZIP Library.

El resto del programa será de la siguiente manera:

 #include <LiquidCrystal.h>//incluimos la libreria para la LCD
 #include <DHT11.h>//incluimos la librería del sensor DHT11
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);//seleccionamos 
//los pines que usaremos en la LCD
int pin=7;//declaramos el pin del sensor
// dado que la librería llama a un pin digital
DHT11 dht11(pin);

void setup() {
  // Definimos la LCD con dimension 2x16 
//y definimos los caracteres que deben salir en las filas:
lcd.begin(16,2);
lcd.print("T=      H=");
lcd.setCursor(0,1);
lcd.print("ECDA");
}

//Hasta aquí hemos definido qué queremos
// que salga impreso por la pantalla y el tamaño de ésta.
void loop() {

       int error;//programa de identificación de error
       float temperatura, humedad;//declaramos 
//las variables que muestra nuestro sensor
       if((error = dht11.read(humedad, temperatura)) == 0){
        
  lcd.setCursor(2,0);
  lcd.print(temperatura);
  lcd.setCursor(10,0);
  lcd.print(humedad);
       }

       else{
        lcd.setCursor(0,0);
        lcd.print("ERROR");
       }
  
  delay(1000);
  
  
}





La verdad es que es un sensor muy cómo de usar si dispones de la librería adecuada. Además se puede comprobar como es realtivamente fácil sacar medidas de este sensor por pantalla.

Como siempre para cualquier pregunta o sugerencia podéis dejarla en los comentarios de más abajo.

C.