O DHT11 é um sensor digital de umidade e temperatura que permite medir temperaturas de 0 a 50 graus Celsius com precisão de + -2 C, e medir umidade de 20% a 80% com precisão de + -5%.
O sensor possui um termistor embutido para medição da temperatura, que é basicamente um resistor variável que altera sua resistência com a mudança de temperatura.
Também possui um sensor capacitivo para medir a umidade do ambiente, um controlador de 8 bits que converte o sinal de temperatura e umidade dos sensores e um sinal serial e envia ao Arduino através do pino de dados (Data).
Pode ser utilizado em diversos projetos como monitoranento e controle de climatização. O DH11 não é recomendável para utilização em ambientes que exigem alta precisão, pois seu tempo de leitura chega a um intervalo de até 2 segundos, logo, pode-se dizer que não é um sensor tão rápido e preciso. Apesar de possuir 4 pinos, o pino 3 não é utilizado.
//Baixar biblioteca DHT Sensor Library ou instalar do gerenciador de bibliotecas da IDE
#include "DHT.h"
#define DHTPIN 6 // o sensor dht11 foi conectado ao pino 6
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup(){
Serial.begin(9600); // inicializa o monitor serial
Serial.println("DHT teste!"); // imprime o texto no serial
dht.begin();
}
void loop(){
//declarar as variáveis para receber os valores
float umidade = dht.readHumidity();
float temperatura = dht.readTemperature();
// Se as variáveis temperatura e umidade não forem valores válidos, acusará falha de leitura.
if (isnan(temperatura) || isnan(umidade)){
Serial.println("Falha na leitura do dht11...");
}
else
{
// se os valores forem válidos, imprime os dados no monitor serial
Serial.print("Umidade: ");
Serial.print(umidade);
Serial.print(" %t"); //quebra de linha
Serial.print("Temperatura: ");
Serial.print(temperatura);
Serial.println(" °C");
delay(1000); //aguardar 1 segundo
}
}