Sensor de umidade e temperatura DHT11/DHT22 com Arduino
Os sensores DHT11 e DHT22 são usados para medir a temperatura e a umidade relativa. Esses sensores contêm um chip que faz a conversão analógica para digital e emite um sinal digital com a temperatura e a umidade. Isso os torna muito fáceis de usar com qualquer microcontrolador.
Apresentando os sensores DHT11 e DHT22
Os sensores DHT11 e DHT22 são usados para medir a temperatura e a umidade relativa. Eles são muito populares entre fabricantes e amadores de eletrônica.

Esses sensores contêm um chip que faz a conversão analógica para digital e emite um sinal digital com a temperatura e a umidade. Isso os torna muito fáceis de usar com qualquer microcontrolador.

DHT11 vs. DHT22
O DHT11 e o DHT22 são muito semelhantes, mas diferem em suas especificações. A tabela a seguir compara algumas das especificações mais importantes dos sensores de temperatura e umidade DHT11 e DHT22. Para obter uma análise mais detalhada desses sensores, consulte a folha de dados dos sensores. (Guia abaixa do Folha de dados Original)

O sensor DHT22 tem uma resolução melhor e uma faixa de medição de temperatura e umidade mais ampla. Entretanto, é um pouco mais caro e você só pode solicitar leituras com intervalo de 2 segundos.
O DHT11 tem uma faixa menor e é menos preciso. No entanto, você pode solicitar leituras do sensor a cada segundo. Ele também é um pouco mais barato.
Apesar das diferenças, eles funcionam de forma semelhante, e você pode usar o mesmo código para ler a temperatura e a umidade. Você só precisa selecionar no código o tipo de sensor que está usando.
Pinagem do DHT
Os sensores DHT têm quatro pinos, conforme mostrado na figura a seguir. No entanto, se você adquirir seu sensor DHT em uma placa breakout, ele virá com apenas três pinos e com um resistor pull-up interno no pino 2.

A tabela a seguir mostra a pinagem do DHT22 e do DHT11. Quando o sensor está voltado para você, a numeração dos pinos começa em 1, da esquerda para a direita

Sensor de temperatura e umidade DHT11 com Arduino
Nesta parte, criaremos um projeto simples com o Arduino que lê a temperatura e a umidade e exibe o resultado
Peças necessárias
Para concluir este tutorial, você precisa dos seguintes componentes:
- Arduino UNO (Original ou Generico)
- Sensor de temperatura e umidade DHT11
- ProtoBoard
- Resistor de 4,7k Ohm
- Fios de jumper
Esquema
Siga o diagrama esquemático a seguir para conectar o sensor de temperatura e umidade DHT11 (ou DHT22) ao Arduino.

Aqui estão as conexões (da esquerda para a direita):

Instalação de bibliotecas
Para ler a partir do sensor DHT, usaremos a biblioteca DHT da Adafruit. Para usar essa biblioteca, você também precisa instalar a biblioteca Adafruit Unified Sensor. Siga as próximas etapas para instalar essas bibliotecas.
Abra o Arduino IDE e vá para o Icon Library Manager. O Gerenciador de bibliotecas deve ser aberto, e efetue a busca por DHT e Unified.
Procure por “DHT” na caixa de pesquisa e instale a biblioteca DHT da Adafruit.

Ao clicar em instalar se já está usando a versão nova do Arduino IDE 2.3.*, ele irá instalar as dependencias automaticamente, ai não passe para a parte seguinte

Depois de instalar a biblioteca DHT da Adafruit, digite “Adafruit Unified Sensor” na caixa de pesquisa. Role a tela até o fim para encontrar a biblioteca e instalá-la.

No meu caso ao ter instalado meu Arduino IDE era o mais novo, ele instalou tudo junto
Código
Depois de instalar as bibliotecas necessárias, você pode carregar um código de exemplo da biblioteca.
Em seu Arduino IDE, vá para File > Examples > DHT Sensor library > DHTtester
O código a seguir deve ser carregado. Ele lê a temperatura e a umidade e exibe os resultados no Monitor serial.
#include "DHT.h"
#define DHTPIN 2 // what pin we're connected to
#define DHTTYPE DHT11 // DHT 11
// Initialize DHT sensor for normal 16mhz Arduino
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println("DHTxx test!");
dht.begin();
}
void loop() {
// Wait a few seconds between measurements.
delay(2000);
float h = dht.readHumidity();
// Read temperature as Celsius
float t = dht.readTemperature();
// Read temperature as Fahrenheit
float f = dht.readTemperature(true);
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
float hi = dht.computeHeatIndex(f, h);
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(hi);
Serial.println(" *F");
}
Como o código funciona
Você começa incluindo a biblioteca DHT:
#include "DHT.h"
Você está gostando do projeto, ele completo é encontrado no Ebook com este e outros, abaixo.
Guia de Arduino com sensores e módulos
![]()