Está en la página 1de 4

TEMA: ARDUINO - SENSORES DE HUMEDAD Y TEMPERATURA

CICLO LECTIVO 2022


PROFESOR GERARDO DÍAZ

MEDIR TEMPERATURA Y HUMEDAD CON ARDUINO Y SENSOR DHT11-DHT22

¿QUÉ ES UN DHT11 / DHT22?

El DHT11 y el DHT22 (o AM2302) son dos modelos de una misma familia de sensores, que
permiten realizar la medición simultánea de temperatura y humedad.

Estos sensores disponen de un procesador interno que realiza el proceso de medición,


proporcionando la medición mediante una señal digital, por lo que resulta muy sencillo obtener
la medición desde un microprocesador como Arduino.

Ambos sensores presentan un encapsulado de plástico similar. Podemos distinguir


ambos modelos por el color del mismo. El DHT11 presenta una carcasa azul, mientras que
en el caso del sensor DHT22 el exterior es blanco.

De ambos modelos, el DHT11 es el hermano pequeño de la familia, y cuenta peores


características técnicas. El DHT22 es el modelo superior, pero, por contra, tiene un precio
superior.

Las características del DHT11 son realmente escasas, especialmente en rango de medición
y precisión.

• Medición de temperatura entre 0 a 50, con una precisión de 2ºC

• Medición de humedad entre 20 a 80%, con precisión del 5%.

• Frecuencia de muestreo de 1 muestras por segundo (1 Hz)

El DHT11 es un sensor muy limitado que podemos usar con fines de formación, pruebas,
o en proyectos que realmente no requieran una medición precisa.

Por el contrario, el modelo DHT22 tiene unas características mucho más aceptables.

• Medición de temperatura entre -40 a 125, con una precisión de 0.5ºC

• Medición de humedad entre 0 a 100%, con precisión del 2-5%.

• Frecuencia de muestreo de 2 muestras por segundo (2 Hz)

EL DHT22 (sin llegar a ser en absoluto un sensor de alta precisión) tiene unas
características aceptables para que sea posible emplearlo en proyectos reales de
monitorización o registro, que requieran una precisión media.

ESQUEMA MONTAJE

La conexión del DH11 y el DHT22 son idénticas, ya que como hemos comentado la única
diferencia entres modelos son sus prestaciones. En ambos casos, disponemos de 4 patillas, de
las cuales usaremos 3, Vcc, Output y GND.
TEMA: ARDUINO - SENSORES DE HUMEDAD Y TEMPERATURA
CICLO LECTIVO 2022
PROFESOR GERARDO DÍAZ

Conectar el sensor es sencillo, simplemente alimentamos desde Arduino al sensor a través


de los pines GND y Vcc del mismo. Por otro lado, conectamos la salida Output a una entrada
digital de Arduino. Necesitaremos poner una resistencia de 10K entre Vcc y el Pin Output.

El esquema eléctrico queda como la siguiente imagen

Mientras que el montaje en una breadboard sería el siguiente:


TEMA: ARDUINO - SENSORES DE HUMEDAD Y TEMPERATURA
CICLO LECTIVO 2022
PROFESOR GERARDO DÍAZ

EJEMPLOS DE CÓDIGO

Los sensores DHT11 y DHT22 usan su propio sistema de comunicación bidireccional


mediante un único conductor, empleando señales temporizadas.

En cada envío de medición el sensor envía un total de 40bits, en 4ms. Estos 40 bits
corresponden con 2 Bytes para la medición de humedad, 2 Bytes para la medición de
temperatura, más un Byte final para la comprobación de errores (8bit integral RH data + 8bit
decimal RH data + 8bit integral T data + 8bit decimal T data + 8bit check sum)

Para mayor información sobre el funcionamiento y detalles de la comunicación, consultar el


datasheet de la serie DHTXX.

Podemos leer los datos del sensor directamente generando y leyendo las señales
temporizadas según el protocolo del DHTXX. En general, lo normal es que empleemos una
librería existente para simplificar el proceso.

Existen varias librerías disponibles. Por ejemplo, podemos usar la librería de Adafruit
disponible en este enlace.

Descargamos e instalamos la librería y cargamos el código de ejemplo, o la siguiente


versión simplificada

#include "DHT.h"

// Uncomment whatever type you're using!


//#define DHTTYPE DHT11 // DHT 11
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)

// Connect pin 1 (on the left) of the sensor to +5V


// NOTE: If using a board with 3.3V logic like an Arduino Due connect pin 1
// to 3.3V instead of 5V!
// Connect pin 2 of the sensor to whatever your DHTPIN is
// Connect pin 4 (on the right) of the sensor to GROUND
// Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor

const int DHTPin = 5; // what digital pin we're connected to

DHT dht(DHTPin, DHTTYPE);

void setup() {
Serial.begin(9600);
Serial.println("DHTxx test!");

dht.begin();
}
void loop() {
// Wait a few seconds between measurements.
delay(2000);

// Reading temperature or humidity takes about 250 milliseconds!


float h = dht.readHumidity();
float t = dht.readTemperature();

if (isnan(h) || isnan(t)) {
TEMA: ARDUINO - SENSORES DE HUMEDAD Y TEMPERATURA
CICLO LECTIVO 2022
PROFESOR GERARDO DÍAZ

Serial.println("Failed to read from DHT sensor!");


return;
}

Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" *C ");
}

También podría gustarte