El DHT-22 es un dispositivo de bajo costo para medir la humedad y la temperatura. Los sensores DHT están hechos de dos partes, un sensor de humedad capacitivo y un termistor. El dispositivo requiere una fuente de alimentación de 3 a 5V. Utiliza una sola línea de datos para comunicarse con el Arduino. Tiene una frecuencia de actualización bastante lenta y solo debe muestrearse cada 2 segundos.
Ejemplo de código:
// Ejemplo de croquis para humedad DHT22 – sensor de temperatura
2 // Escrito por cactus.io, con agradecimiento a Adafruit por fragmentos de su biblioteca. dominio público
3
4 #incluye “cactus_io_DHT22.h”
5
6 2 // #define DHT22_PIN el pin Arduino DHT22 al que está conectada la línea de datos
7
8 // Para obtener detalles sobre cómo conectar el sensor a Arduino DHT22, consulte esta página
9 // http://cactus.io/hookups/sensors/temperature-humidity/dht22/hookup-arduino-to-dht22-temp-sensor de humedad
10
11 // Inicializar el sensor DHT para un Arduino normal de 16 mhz.
12 DHT22 DHT (DHT22_PIN);
13 // Nota: si está utilizando una tarjeta con un procesador más rápido que 16 MHz, entonces necesita
14 // declarar una instancia DHT22 usando
15 // DHT22 DHT (DHT22_DATA_PIN, 30);
16 // El parámetro adicional, en este caso 30 se usa para aumentar el número de
17 // ciclos de transición entre bits en las líneas de datos y de reloj. Para las
18 placas Arduino funcionando a 84 MHz, el valor de 30 debería ser correcto.
18
19 configuración vacía() {
20 Serie.comienzo (9600);
21 Serial.println ("DHT22 Humedad - Sensor de temperatura");
22 Serial.println (“RH tTemp (C) tTemp (F) tHeat Index (C) tHeat Index (F)”);
23
24 dht.begin();
25/XNUMX/XNUMX}
26
27 bucle vacío() {
28 // ¡Leer la temperatura o la humedad toma alrededor de 250 milisegundos!
29 // Las lecturas del sensor también pueden retrasarse hasta 2 segundos (es un sensor muy lento)
30 dht.readHumedad();
31 dht.leerTemperatura();
32
33 // Comprobar si alguna lectura falló y salir antes (para volver a intentarlo).
34 if (isnan (dht.humedad) || isnan (dht.temperature_C)) {
35 Serial.println(“Error de lectura del sensor DHT”);
36 vuelta;
38
39 Serial.print(dht.humedad); Serial.imprimir("%tt");
40 Serial.print (dht.temperature_C); Serial.print ("* C t");
41 Serial.print (dht.temperature_F); Serial.print ("* F t");
42 Serial.print(dht.computeHeatIndex_C()); Serial.print ("* C t");
43 Serial.print(dht.computeHeatIndex_F()); Serial.println("*F");
44
45 // Espere unos segundos entre mediciones. El DHT22 no debe leerse a una frecuencia superior a
46 // aproximadamente una vez cada 2 segundos. Así que agregamos 3 segundos de retraso para cubrir eso.
47 retraso (3000);
48/XNUMX/XNUMX}