DHT11 y DHT22. Sensores de temperatura y humedad

Los DHT11 y DHT22 son sensores digitales que entregan medidas de temperatura y humedad ambientales simultáneamente. Aunque se usan de la misma forma, el DHT11 es el más básico y tiene menor precisión. Internamente tienen un sensor capacitivo de humedad y un termistor para medir la temperatura. Además, incluyen un procesador interno que convierte las señales analógicas de los sensores en señales digitales listas para su uso.

Las características de ambos sensores son las siguientes:

Características generales

DHT11DHT22
Alimentación3 – 5 VDC3 – 5 VDC
Consumo2,5 mA2,5 mA
Humedad20 – 80% (5% precisión)0 – 100% (2 – 5% precisión)
Temperatura0 – 50 ºC (2 ºC precisión)-40 – 125 ºC (0,5 ºC precisión)
Muestreo1 Hz (una medición por segundo)2 Hz (dos mediciones por segundo)

Como vemos, el DHT22 es más preciso y tiene rangos de medición mayores, tanto en temperatura como en humedad.

Conexión

Las conexiones de ambos sensores son idénticas. Los dos tienen sendos pines de alimentación VCC y GND más un pin de datos DATA. Si usamos los sensores como componente, es necesario añadir una resistencia de 10K entre los pines VCC y DATA. Si usamos los módulos de los sensores (como en las imágenes anteriores), esta resistencia ya viene incluida en el módulo y no necesitamos ponerla.

ArduinoSensor
5VVCC
GNDGND
D2DATA

ATENCIÓN

Hay que tener cuidado con el orden de los pines ya que distintos fabricantes pueden situar los pines en orden distinto. Es necesario mirar la serigrafía del módulo para asegurarnos de seleccionar los pines correctos.

Código Arduino

La comunicación entre los sensores y Arduino se hace mediante una única línea que usa un protocolo de comunicación propio. En cada medición se envía un paquete de 40 bits que podemos interpretar fácilmente con la librería adecuada, por ejemplo podemos usar la librería DHT proporcionada por Adafruit.

#include "DHT.h"

// Descomente la línea del sensor que desea usar.
//#define DHTTYPE DHT11   // DHT 11
#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
//#define DHTTYPE DHT21   // DHT 21 (AM2301)

const int DHTPin = 2;     // Pin DATA al que hemos conectado el sensor

DHT dht(DHTPin, DHTTYPE);

void setup() {
	dht.begin();
}

void loop() {
	// Es necesario esperar algunos segundos entre mediciones
	delay(2000);

	// Tomamos las lecturas humedad y temperatura
	float h = dht.readHumidity();
	float t = dht.readTemperature();

	if (isnan(h) || isnan(t)) {
		return;
	}
	
	// Ahora tenemos la humedad en la variable h
	// y la temperatura en la variable t
}

También te podría gustar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *