Sensor DHT22
¿QUÉ ES UN SENSOR DHT22?
El DHT22 es un sensor digital que permite realizar la medición de temperatura y humedad.
Estos sensores disponen de un procesador interno que realiza el proceso de medición, por lo que resulta muy sencillo obtener la medición desde un microprocesador como Arduino.
El DHT22 presenta las siguientes características:
- Mide temperaturas entre -40º y 125º, con una precisión de 0.5ºC
- Mide la humedad entre 0 y 100% con una precisión del 2 al 5%
- Frecuencia de muestreo de 2 muestras por segundo (2Hz)
Estas características son aceptables para que sea posible usarlo en proyectos reales de monitorización o registro, que requieran una precisión media.

¿CÓMO FUNCIONA UN DHT22?
Estos sensores poseen integrado un sensor que nos permite medir humedad relativa y el aire circundante o temperatura mediante un termistor. Muestra los datos mediante una señal digital en el pin de datos.
Estos se emplean en aplicaciones de control automático de temperatura, aire acondicionado…
Utilizar el sensor DHT22 con Arduino es muy sencillo, puesto que a nivel de software dispone de librerías para Arduino que puedes encontrar fácilmente y, en cuanto al hardware, solamente es necesario conectar el pin VCC de alimentación (3-5V), el pin GND a Tierra (0V) y el pin de datos (DATA) a un pin digital en el Arduino.
Cada DHT22 se calibra para obtener solamente los coeficientes de calibración que se encuentran grabados en su memoria OTP; asegurándose así de tener una alta estabilidad y fiabilidad. El protocolo de comunicación entre el sensor y el microcontrolador utiliza un único cable, preferiblemente, apantallado (blindado) conocido como 1-wire; y requiere también de un pin de datos.
Debemos proteger el sensor para que no reciba la luz directa del sol.
Una de sus desventajas es que solamente puede obtener nuevos datos cada dos segundos.

ESQUEMA DE MONTAJE
La conexión del DHT22 está compuesta de 4 patillas, de las cuales usaremos 3, VCC, Output (DATA) y GND.
Conectar el sensor es sencillo, simplemente alimentamos desde Arduino al sensor a través de los pines GND (Tierra) y VCC (5V) del mismo. Por otro lado, conectamos la salida DATA, o también llamada Output, a una entrada digital de Arduino. Necesitaremos poner una resistencia de 10K entre VCC y el Pin DATA.


NOTA: El pin Output, se puede conectar a cualquier entrada (5,6,9…)
¿CÓMO PROGRAMAR UN DHT22?
Primeramente, debemos conectar el sensor a un Arduino, en nuestro caso, al Arduino UNO del que disponemos. Una vez tenemos ambos componentes, alimentamos al sensor mediante el Arduino con el pin VCC (5V) y el GND (Tierra). Acto seguido, conectamos la salida Output (DATA) a una de las entradas digitales del Arduino, que en nuestro caso fue la 5. Finalmente, una vez montado todo correctamente, conectamos el Arduino y comenzamos a programar.
Como este sensor posee una librería ya existente para el Arduino, elegimos el apartado “DHTtester” (a modo de ejemplo) para así mostrar su funcionamiento.
Aquí adjunto el enlace para acceder y poder descargar la librería DHT para trabajar con Arduino: https://github.com/adafruit/DHT-sensor-library
Comenzamos con la explicación acerca de las líneas de código y variables para programar:


Encontramos también la función “void setup () { “, que se ejecuta al iniciar o al hacer un reset en el procesador y; la función “void loop () { “, que ocurre como una especie de bucle.
Finalmente, aparece también la función “float h = dht.readHumidity();” ; cuyo significado de esta función es medir el valor de la humedad en decimales. Ocurre exactamente lo mismo con las otras dos variables tipo float que están justo debajo, es decir, que muestra la Temperatura, tanto en Celsius como en Fahrenheit, en decimales.

Nuevamente encontramos una variable “float” para escribir el índice de calor en decimales.
Por último, encontramos líneas de código con la función “Serial.print”, que se emplea para mostrar los valores una vez iniciado el sensor y, en la última línea del código, la función “Serial.println” para indicar un salto a la siguiente línea.

