El voltaje de alimentación debe estar entre 3.3V y 5V DC. Cuando se suministra energía al sensor, no le envíe ninguna instrucción dentro de un segundo para pasar el estado inestable. Se puede agregar un condensador de 100nF entre VDD y GND para el filtrado de ondas.
Cada sensor de este modelo tiene compensación de temperatura y está calibrado en una cámara de calibración precisa y el coeficiente de calibración se guarda en el tipo de programa en la memoria OTP, cuando el sensor está detectando, citará el coeficiente de la memoria.
El tamaño pequeño, el bajo consumo y la larga distancia de transmisión (20 m) permiten que DHT11 sea adecuado en todo tipo de aplicaciones difíciles.
//Paso 1
#include "DHT.h"
//Paso 2
#define DHTPIN 2
#define DHTTYPE DHT11
//Paso 3
DHT dht(DHTPIN, DHTTYPE);
void setup() {
//Paso 4
Serial.begin(9600);
Serial.println("DHTxx test!");
dht.begin();
}
void loop() {
delay(2000);
//Paso 5
float h = dht.readHumidity();
//Paso 6
float t = dht.readTemperature();
//Paso 7
float f = dht.readTemperature(true);
//Paso 8
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
//Paso 9
float hif = dht.computeHeatIndex(f, h);
float hic = dht.computeHeatIndex(t, h, false);
//Paso 10
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" *C ");
Serial.print(f);
Serial.print(" *F\t");
Serial.print("Heat index: ");
Serial.print(hic);
Serial.print(" *C ");
Serial.print(hif);
Serial.println(" *F");
}
Funcionamiento
A continuación explicamos los pasos del código anterior.
- Cargamos la librería del
DHT11
, esta tiene que estar guardada en el equipo. - Con la variables
DHTPIN
definimos el pin de datos que va a hacer el dos y la variableDHTTYPE
definimos el tipo de sensor a usar que es el DHT11. - Obtenemos la instancia del objeto de la clase DHT, donde le pasamos como parámetros la declaración del pin y del tipo de sensor a usar.
- Inicializamos el puerto serial y el modulo DHT con
begin
. - Con
readHumidity()
obtenemos la humedad y la almacenamos en una variable de tipo flotante. - Con
readTemperature()
obtenemos la temperatura en grados celsius y la almacenamos en una variable de tipo flotante. - Con
readTemperature(true)
obtenemos la temperatura en grados fahrenheit y la almacenamos en una variable de tipo flotante. - Validamos si obtubimos resultados en las lecturas anteriores, si da error o no tenemos datos mostramos un error por consola.
- Con
computeHeatIndex()
obtenemos la sensación térmica del ambiente, esta se calcula con la temperatura y humedad, nos puede devolver los valores en grados celsius o fahrenheit.