You are on page 1of 11

TRABAJO PRACTICO: “MEDIDOR DE HUMEDAD”

El DHT11 o DHT22. Fueron los que elegimos en éste modelo porque con un
único sensor podemos medir temperatura y humedad.

Una particularidad de estos sensores es que la señal de salida es digital, por lo


tanto, lo tendremos que conectar a pines digitales.

Llevan un pequeño microcontrolador interno para hacer el tratamiento de señal.

FUNCIONAMIENTO

Los DHT11 y DHT22 se componen de un sensor capacitivo para medir la


humedad y de un termistor.

La principal diferencia entre ambos es que el ciclo de operación es menor en el


DHT11 que en el DHT22, sin embargo, el DHT22 tiene rangos de medida más
amplios y mayor resolución, a cambio de resultar algo más caro.

Ambos sensores están calibrados en laboratorio y tienen una buena fiabilidad.

Son además muy fáciles de conectar y sólo requieren de un pin de Arduino.


Encapsulado.

Existen en el mercado tres variantes:

El sensor suelto, con un encapsulado azul y cuatro pines disponibles para


conectar. (Será necesario añadir la resistencia pull-up)

El sensor con una placa soldada, con tres pines disponibles para conectar y
una resistencia pull-up (normalmente de 4,7-10 kΩ).

El mismo formato que el anterior, pero con un condensador de filtrado


(normalmente de 100 nF).

A modo de recomendación, si podéis, comprarlo con la resistencia pull-up y


evitar tener que soldarla, nos hace más sencillo la construcción.

Características de cada uno de los sensores:

Parámetro DHT11 DHT22

Alimentación 3Vdc ≤ Vcc ≤ 5Vdc 3.3Vdc ≤ Vcc ≤ 6Vdc

Señal de Salida Digital Digital

Rango de medida De 0 a 50 °C De -40°C a 80 °C


Temperatura

Precisión Temperatura ±2 °C <±0.5 °C

Resolución Temperatura 0.1°C 0.1°C

Rango de medida De 20% a 90% RH De 0 a 100% RH


Humedad
Precisión Humedad 4% RH 2% RH

Resolución Humedad 1%RH 0.1%RH

Tiempo de respuesta 1s 2s

Tamaño 12 x 15.5 x 5.5mm 14 x 18 x 5.5mm

Ciclo de operación.

Es el tiempo que el sensor tarda en ofrecer una respuesta desde que se le


pide.

Formato de datos de un solo bus para la comunicación y sincronización


entre MCU y el sensor. El proceso de comunicación es de 4 ms
aproximadamente.

Una transmisión de datos completa es de 40 bits. Donde obtenemos la


temperatura y la humedad.

Ejemplo: Recibimos 40 bits:

 0011 0101 0000 0000 0001 1000 0000 0000 0100 1101
High humidity 8 + Low humidity 8 + High temp. 8 + Low temp. = 8 Parity bit
Calculando:
 0011 0101+0000 0000+0001 1000+0000 0000= 0100 1101
Datos correctos recibidos:
Humedad:0011 0101 = 35H = 53%RH
Temperatura:0001 1000 = 18H = 24℃

El microcontrolador externo y el microcontrolador que lleva integrado el sensor,


se hablan entre sí de la siguiente manera:

 Se inicia la comunicación.
 El sensor responde estableciendo un nivel bajo de 80 μs y un nivel
alto de 80 μs .
 El sensor envía 5 bytes con la información de temperatura y humedad.

Ahora que ya sabemos esto, podemos decidir si utilizar la librería que nos
proporciona para arduino, o simplemente realizar éstas operaciones nosotros
mismos sin necesidad de libreria.

Pinout.
Los pines del DHT11 y del DHT22 siguen el mismo orden.

 VCC.
 Señal.
 NC.
 GND.

Conexión de un DHT11 a Arduino Uno.

Del montaje realizado, destacamos que no utilizamos el pin 3, y que el resistor


tiene que conectarse entre la alimentación y el pin de salida de datos.

Si hemos comprado el sensor suelto, debemos basarnos en este esquema


para conectar con nuestro arduino.

Conectamos el sensor con arduino.


Por el contrario, si hemos comprado el sensor con la resistencia pull-up
conectamos cada ping con arduino directamente.

Vemos el skecth con el que tenemos que programar el microcontrolador.

#include "DHT.h"
#include <LiquidCrystal.h>
#define DHTPIN 8 //Data
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
dht.begin();
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();

lcd.setCursor(0,0);
lcd.print("Temperatura ");
lcd.print(t,0);
lcd.print("C");
lcd.setCursor(0,1);
lcd.print("Humedad ");
lcd.print(h,0);
lcd.print("%");
delay(1200);

En éste caso utilizaremos una pantalla LCD para ver el resultado que nos envía
el sensor.

También es interesante recordar, que aunque el sensor entrega señales de


naturaleza analógica como son la humedad y la temperatura, estas señales las
leemos por un pin digital de Arduino y que en un solo pin somos capaces de
obtener dos lecturas, viendo así la ventaja que aportan las señales digitales
frente a las analógicas: menos cables y más simplicidad en los montajes.

PROCEDIMIENTO

 Simulación
 Placa que usamos para quemar y soldar
 Código escrito en arduino
 Componentes que utilizamos para la fabricación

 Finalmente lo armamos y lo probamos


BIBLIOGRAFÍA:

 http://www.omniblug.com/index.php/blog/115-sensor-dht11#startOfPage
ANEXOS

 https://github.com/adafruit/DHT-sensor-library
 http://www.omniblug.com/images/blog/dht11/DHT11_dataSheet.pdf
 https://youtu.be/H0XWHY7DGv4

You might also like