Sensor Humedad DHT11

Para la toma de datos de humedad he optado, por el momento, por el modelo más barato, el DHT11. Existe un modelo de sensor mejor en muchos aspectos, el DHT22, más preciso y fiable, pero también más caro. Como primera opción el DHT11 es suficiente para el tipo de proyecto en el que estoy embarcado.

El modelo seleccionado fue comprado en DealExtreme.

El sensor tiene las siguientes características:

- Panel trasero que incluye resistencia pul-down integrada, por lo que no es necesario añadir otra.
- El sensor incluye componente resistivo de toma de humedad y temperatura con un conector de 8-byte MCU.
- Respuesta rápida, gran resistencia anti interferencias y resistente.
- Rango de transimisión: 20m
- Voltaje: 5V
- Rango de temperatura: 0-50'C
- Rango de Humedad: 20-90%RH

El sensor tiene salida de temperatura, si bien dado que el rango es de 0 a 50 no la emplearemos.

Las características del sensor no son muy buenas y en la lectura en ocasiones no responde correctamente. Esto se debe, según he podido averiguar, a la dependencia de tiempos en la lectura. Las lecturas no son instantaneas, es decir, no pides datos y los recibes de manera sencilla sino que hay una serie de pasos que seguir para transmitir la petición de datos y recibir la información de vuelta. Cualquier retardo en uno de los pasos provoca que los datos no sean tomados correctamente. Por el momento, mientras no pasemos a la versión superior DHT22 y dado que no necesitamos datos 100% en tiempo real simplemente ignoramos los datos corruptos.

Diagrama:

Los datos de este sensor los leeremos directamente en el puerto GPIO al que vaya conectado. En Adafruit teneís un tutorial de cómo conectar y leer este sensor.

El diagrama que se muestra se corresponde con un sensor DHT11 sin resistencia, en nuestro caso no es necesaria por lo que la conexión se hace de manera directa. En la sección de integración donde se muestra todo el proyecto podeis ver de qué manera he conectado el sensor.

Para implementar la lectura en C de los datos del sensor he utilizado las librerías wiringPi que podeís consultar en la sección de software.