top of page

MEDIR TEMPERATURA Y HUMEDAD CON PIC 18F4550 Y SENSOR DHT11 y AM2301 (DHT21)

Actualizado: 21 nov 2018

Figura 1: Medidor de Temperatura y Humedad con DHT11

DHT11 y DHT21

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


FIGURA 2

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 microcontrolador.

Ambos sensores presentan un encapsulado de plástico. Podemos distinguir ambos modelos por el color de este. El DHT11 presenta una carcasa azul, mientras que en el caso del sensor AM2301 el exterior es negro.

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

ESPECIFICACIONES TÉCNICAS

· Voltaje de Operación: 3V - 5V DC

· Rango de medición de temperatura: 0 a 50 °C

· Precisión de medición de temperatura: ±2.0 °C

· Resolución Temperatura: 0.1°C

· Rango de medición de humedad: 20% a 90% RH.

· Precisión de medición de humedad: 4% RH.

· Resolución Humedad: 1% RH

· Tiempo de sensado: 2 seg.

· Interface: Digital Serial


PINES

· 1- Alimentación: +5V (VCC)

· 2- Datos

· 3- No Usado (NC)

· 4- Tierra (GND)

Se recomienda utilizar una resistencia de 4.7 KΩ en modo Pull-up, entre el pin de datos y vcc.

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.

EL AM2301 es un sensor digital de temperatura y humedad relativa de buena precisión en un empaque robusto. Integra un sensor capacitivo de humedad, un termistor y un microcontrolador encargado de realizar la conversión analógica a digital. Su empaque de plástico es más robusto comparado a los sensores DHT11 y DHT22, esto hace del DHT21 un sensor ideal para aplicaciones en exteriores. Utilizado en aplicaciones de Control automático de temperatura, Aire Acondicionado, Monitoreo ambiental en agricultura y más.

Quizá la única desventaja de este sensor es que sólo se puede obtener nuevos datos cada 2 segundos.

El DHT21 posee mejores prestaciones respecto al sensor DHT11, como mejor resolución, mayor precisión y un empaque más robusto.


ESPECIFICACIONES TÉCNICAS

· Voltaje de Operación: 3.5V - 5.5V DC

· Consumo corriente: 1mA - 1.5mA

· Tiempo de sensado: 2s

· Protocolo digital: Single bus (1 cable)

· Rango de Temperatura: -40 hasta 80°C

· Resolución Temperatura: 0.1°C

· Precisión Temperatura: +- 0.5°C

· Rango de Humedad Relativa: 0 a 100% RH

· Resolución Humedad: 0.1%RH

· Precisión HR: +- 3%

· Modelo: AM2301

· Dimensiones: 60*28*12mm

· Carcasa de plástico negro

· Longitud cable: 50cm


CABLES

· Rojo: Alimentación + (5 VDC)

· Negro: Tierra (0 VDC)

· Amarillo: Datos digitales I/O

Se recomienda utilizar una resistencia de 4.7 KΩ en modo Pull-up, entre el pin de datos y vcc.

Para la comunicación y la sincronización entre el PIC y el AM2301, el formato de datos de un solo bus, una transmisión de 40 datos como se muestra en la Figura 2.


FIGURA 3

Señal de inicio

El PIC manda un cero (es decir, se configura el puerto como salida) por un período de tiempo (al menos 800μs). Yo coloqué 18 ms, luego se envía un 1 por 30μs. Lo que notifica al sensor para preparar los datos.

Señal de respuesta

El PIC recibe la señal de inicio del sensor, se pone a 0 una variable de control (Check), se espera 40μs y se pregunta si el dato es 0, de ser así se espera 80 μs hasta que el dato sea 1 seguido de una respuesta de 80 μs para albergar la señal de inicio y se pone a 1 una variable de control (Check). En la Figura 3 se puede observar como es la parte de código para generar la señal de inicio y como esperar la respuesta.


FIGURA 4

Formato de datos

El PIC recibe la señal de inicio del host, y envía la cadena de una sola vez bit a bit hasta completar los 40, los envía en el siguiente orden: Humedad alta, Humedad baja, Temperatura alta, Temperatura baja, Bit de paridad y luego se pone en modo sleep.

Humedad

Resolución de humedad de 16 bits, Humedad alta, Humedad baja, en el caso del de DHT11, solo se toma en cuenta el Byte Humedad Alta.

Temperatura.

Resolución de humedad de 16 bits, Temperatura alta, Temperatura baja, en el caso del de DHT11, solo se toma en cuenta el Byte Temperatura Alta.

Cuando el bit más alto (Bit15) es igual a 1 indica una temperatura negativa, Cuando el bit más alto (Bit15) es igual a 0 indica una temperatura positiva; además los valores de temperatura más significativos están entre (Bit14 - bit 0).

Bit de paridad

El bit de paridad es la suma de todos los Bytes y sirve para determinar algún error en los datos.

Bit de paridad = humedad alta + humedad baja + temperatura alta + temperatura baja



Ejemplos tomados de la Datasheet

Ejemplo 1:40 Datos recibidos:

0000 0010 1001 0010 0000 0001 0000 1101 1010 0010

Humedad Alta - Humedad Baja - Temp. Alta - Temp. Baja - Bit de Paridad

Calcular:

0000 0010 + 1001 0010 +0000 0001 + 0000 1101 = 1010 0010 Bit de paridad

Los datos recibidos son correctos:

Humedad: 0000 0010 1001 0010 = 0292H (Hexadecimal) = 2 × 256 + 9 × 16 + 2 = 658

=> Humedad = 65.8% RH

Temp .: 0000 0001 0000 1101 = 10DH (Hexadecimal) = 1 × 256 + 0 × 16 + 13 = 269

=> Temp. = 26.9 ℃

Cuando la temperatura está por debajo de 0

Ejemplo: -10.1 ℃ expresado como 1 000 0000 0110 0101

Temp.: 1000 0000 0110 0101 = 0065H (hexadecimal) = 6 × 16 +5 = 101

=> Temp. = -10.1 ℃

Ejemplo 2: 40 datos recibidos:

0000 0010 1001 0010 0000 0001 0000 1101 1011 0010

Alta humedad 8 Baja humedad 8 Alta temp. 8 Baja temp. 8 bit de paridad

Calcular:

0000 0010 + 1001 0010 +0000 0001 + 0000 1101 = 1010 0010 ≠ 1011 0010 error Error de validación


FIGURA 5

En este artículo se hicieron dos ejercicios uno con el DHT11 (Figura 1) y el DHT21 (Figura 5), el primero con una lcd 4x16, y el segundo 4x20, adicionalmente se uso el código de números Grandes analizado en una entrada anterior. además se agregó una rutina de sonido para que en determinado rango de temperatura genere una alarma. Al final del artículo se colocaran los dos códigos en MikroC y la simulación en Proteus para que las analicen y las usen según les convenga.



Referencias:

De estas páginas tome la información presentada en esta entrada:



Link de Descarga de los Códigos hecho en MikroC y Proteus

Gracias por ver este Artículo, Cualquier sugerencia no duden en escribir para ir mejorando.

Comments


© 2019 BY Cdno Didactic - Profesor Pablo Cedeño

bottom of page