martes, 3 de febrero de 2015

MSP430: DHT11

En esta entrada, vamos a explicar el funcionamiento del dispositivo DHT11. Para tal fin, hemos diseñado una librería que es capaz de obtener el valor de temperatura, humedad relativa y el checksum.


Para tal tarea, como venimos haciendo, vamos a emplear la placa MSP430 Launchpad. Para empezar, vamos a mostrar algunas características técnicas de éste dispositivo:


Características DHT11
· No requiere de componentes externos· Periodo mínimo de muestreo de 1 segundo
· Alimentación desde 3V a 5.5V· Bus propio, solo se necesita un pin
· Medición de Temperatura: 0°C a +50°C (±2°C de precisión)· Medición de Humedad Relativa: 20%RH a +90%RH (±5%RH de precisión)


Tanto la descripción de los pines como la conexión con un microcontrolador, se muestran en las siguientes imágenes:


Sensor DHT11


El sensor DHT11, destaca por ofrecernos tanto la temperatura como la humedad relativa, más 1-Byte llamado checksum (suma de los valores: temperatura + humedad relativa), que nos alertará si la lectura es correcta. Y a parte de ser un dispositivo bastante completo para obtener la información de temperatura y humedad relativa, además es bastante barato y fácil de usar.

Para usarlo, deberemos implementar un su bus por software, cuya morfología es la que se muestra a continuación:



Donde la línea roja es la que deberemos implementar mediante el microcontrolador (señal de comienzo) y la azul, es la señal propia del dispositivo DHT11. El bus se puede desglosar en tres partes:


· 1.-  Señal de Comienzo (Start signal): Es la que está dibujada en colo rojo de la figura anterior. Consiste en lanzar la señal de comienzo para la lectura de datos. Es el microcontrolador el que debe realizarla.

· 2.-  Señal de Respuesta (Response signal): Una vez transmitida la señal de comienzo, el dispositivo DHT11 emite un pulso (80 μs señal baja y 80 μs señal alta) que determina que está presente.

· 3.-  Datos (Data): Se empieza a transmitir los datos (40-bit).


Pero en este capítulo no pretendemos hacer una explicación exhaustiva de este periférico, nuestro propósito es mostrar cómo controlarlo mediante la librería que hemos diseñado para tal fin. Esta librería contiene dos archivos:

· DHT11.c : Dónde se alojan todas las funciones necesarias para el control del DHT11.
· DHT11.h : Dónde se alojan todas las definiciones, constantes y declaraciones necesarias del DHT11.

Librería: DHT11
· Lo que podemos hacer:
· Realizar una lectura completa del sensor DHT11.

La configuración del microcontrolador para trabajar con este dispositivo externo es la siguiente:

Configuración por defecto: DHT11
· Puerto a usar:
· P1

Pin Launchpad
Pin DHT11
P1.5--->DQ

La función que nos permite obtener una lectura completa del dispositivo DHT11 es la que se muestra a continuación:

Leer desde el DHT11
· Función:
void DHT11_ini (void)
· Ejemplos:Descripción
DHT11_ini ();Almacena en una variable vector global una lectura completa.


Y llegados a este punto, ya se han presentado todas las funciones fundamentales y necesarias para controlar el dispositivo DHT11.


Os pongo a vuestra disposición, los archivos que componen la librería para el manejo y control del dispositivo DHT11:

MSP430: Librería DHT11
Compilador IARCompilador MSPGCC
CC
DHT11
DHT11
DHT11
DHT11


Para poner en práctica los conceptos y el control del dispositivo DHT11, os dejo un ejemplo:

Ejemplo: MSP430 + DHT11 + UART
1. ProgramaLectura de temperatura y humedad relativa del dispositivo DHT11.


· NOTA: Esta librería no está optimizada. Emplea el Timer A TA0 como recurso para generar retardos o tiempo de seguridad (Timeout).

Una lectura completa suele durar aproximadamente 23 ms.

En este capítulo, se han usado imágenes de terceros.

0 comentarios: