• COMPONENTE
    HDT11

O que é?

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.

DHT11 arduino

Propriedades

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.

Montagem dos componentes

Abaixo temos um código exemplo, mostra a temperatura em ºC e a umidade em porcentagem.

LISTA DOS COMPONENTES

  • 1 x Arduino Uno SMD
  • 1 x Cabo USB para comunicação
  • 1 x Protoboard 400 pontos
  • 1 x Sensor DHT11
  • 1 x Resistor 4.7kΩ
  • 4 x Jumpers macho/macho
Esquema montagem dht11

Código exemplo

O código de exemplo abaixo é referente ao esquema ilustrado acima.

IDE Arduino
//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
    }
}
IDE Arduino