Magazine

16.- DHT11 Sensor de Temperatura y Humedad

Publicado el 01 diciembre 2013 por Practicandoarduino @PracticaArduino

Buenos días, bienvenidos de nuevo a un tutorial de Practicando Arduino, esta vez vamos a ver un simple ejemplo de como usar el sensor DHT11, el cual recoge la temperatura y la humedad. Es un sensor muy barato, pero no muy preciso y no representa temperatura negativas y solo nos dará valores enteros, sus intervalos son de temperaturas de 0 a 50ºC con un margen de error de 2ºC y de humedad del 20% al 95% con un margen de error del 5%. Para usarlo sin riesgos necesitamos una resistencia pull-up en el pin S, en mi caso mi sensor la trae incluida por lo que no la necesito, os pongo una foto del que si la necesita (con 4 patillas) y luego del mío (no la necesita).
Para realizar este proyecto necesitamos bajarnos la librería DHT

dht11_pins

DHT11

Que necesitamos:

1 Placa Arduino Uno
1 Protoboard (opcional)
1 Sensor DHT11
Cables para realizar las conexiones

Tenemos, en cualquier caso, 3 patillas válidas, S (signal), – (GND) y 5V, es obvio donde se conecta cada una.
Voy a poner el esquema como si tuviera el sensor sin módulo (el que necesita la resistencia pull-upp).

dth11_bb

dth11_esquema

#include "DHT.h"
#define DHTPIN 14 //Pin analógico 0
#define DHTTYPE DHT11 //tipo de sensor
DHT dht(DHTPIN, DHTTYPE); //indicamos el pin y tipo de sensor
float humedad, temperatura;
void setup() {
	Serial.begin(9600); //iniciamos comunicación serie
	dht.begin(); //iniciamos captura de datos del sensor
}
void loop() {
        float temperatura = dht.readTemperature(); //guardamos la temperatura
	float humedad = dht.readHumidity(); //guardamos la humedad
	if (isnan(temperatura) || isnan(humedad)) { //comprobamos que este correcto
		Serial.println(" Sensor desconectado");
	} else {
		Serial.println(temperatura); //mostramos temperatura
		Serial.println(humedad); //mostramos humedad
		delay(1200);
	}
}

Esta vez no voy a poner video porque el resultado final se muestra en el monitor serie, pero debería mostrar 2 lines por ciclo, una con la temperatura y otra con la humedad.

Respecto al código, muy simple, especificamos el pin y tipo de sensor que vamos a usar, en el void setup() iniciamos la comunicación serie con el pc y la captura de datos del sensor. En el void loop() capturamos la temperatura y la humedad y comprobamos que sean valores correctos, si lo son los mostramos y esperamos 1,2 segundos para no saturar al sensor con peticiones de información, como mínimo habría que esperar 1 segundo.


Volver a la Portada de Logo Paperblog