Monitore Umidade e Temperatura com o Sensor DHT11
Publicado em 9 de maio de 2025 • 4 min ler • 802 palavrasCrie seu próprio termômetro digital com Arduino!
Neste tutorial, vamos aprender como montar um circuito simples usando o sensor DHT11 e uma placa Arduino. Ideal para quem está começando no mundo da eletrônica e programação!
O DHT11 é um sensor que mede temperatura em graus Celsius (°C) e umidade relativa do ar (%). Ele é barato, fácil de usar e perfeito para projetos com Arduino e outros microcontroladores.
O sensor funciona enviando dados de forma digital via um protocolo proprietário, semelhante ao I2C, sendo necessário o uso de uma biblioteca para facilitar a leitura dos valores no Arduino. Ele possui quatro pinos:
Para mais detalhes, confira o datasheet do DHT11:
DatasheetAbra a IDE do Arduino e certifique-se de que a placa e a porta corretas estejam selecionadas:
Ferramentas > Placa
e selecione sua placa (por exemplo, Arduino Uno).Ferramentas > Porta
selecione a porta do seu Arduino.Para facilitar a comunicação com o sensor, vamos utilizar a biblioteca DHT sensor da Adafruit. Siga os passos abaixo:
Ferramentas > Gerenciar Bibliotecas...
Isso irá instalar a biblioteca e todas as dependências dela.
Segue um exemplo de código para ler os dados de temperatura e umidade do sensor DHT11:
#include "DHT.h"
#define DHTPIN 2 // Pino digital conectado ao sensor
// Descomente a linha referente ao tipo de sensor
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
// Inicializa o sensor DHT
DHT dht(DHTPIN, DHTTYPE);
// A função setup executa uma vez quando a placa é ligada ou em um reset
void setup() {
Serial.begin(9600); // Inicializa comunicação serial
Serial.println("DHTxx test!");
dht.begin(); // Inicializa sensor DHT
}
// A função loop executa repetidamente
void loop() {
// Aguarda alguns segundos entre as medições
delay(2000);
// Lê a umidade relativa
float hum = dht.readHumidity();
// Lê a temperatura em Celsius (padrão)
float temp = dht.readTemperature();
// Verifica se alguma leitura falhou
if (isnan(hum) || isnan(temp)) {
Serial.println("Falha ao ler do sensor DHT!");
return;
}
// Exibe os resultados no monitor serial
Serial.print("Umidade: ");
Serial.print(hum);
Serial.print(" %\t");
Serial.print("Temperatura: ");
Serial.print(temp);
Serial.println(" *C");
}
Na primeira linha incluímos a biblioteca DHT. Em seguida, definimos o pino utilizado e o tipo de sensor. Note que estamos utilizando o sensor DHT11, mas você pode utilizar o DHT2x apenas “descomentando” a linha referente ao tipo de sensor.
Na função setup()
inicializamos a comunicação serial e o sensor com o método begin()
. Já na função loop()
, o código lê os valores de umidade e temperatura a cada 2 segundos. Se a leitura falhar, uma mensagem de erro é exibida. Caso as leituras sejam bem-sucedidas, os valores são mostrados no Monitor Serial.
Ferramentas > Monitor Serial
e ajuste a taxa de transmissão para
9600 baud.Observe os valores exibidos. A cada 2 segundos, a temperatura e a umidade lidas pelo sensor devem ser impressas:
DHTxx test!
Umidade: 55.0 % Temperatura: 24.0 *C
Umidade: 54.7 % Temperatura: 24.1 *C
...
Neste tutorial, você aprendeu a conectar o sensor de temperatura e umidade DHT11 ao Arduino e a desenvolver um código simples para ler e exibir os dados coletados. Esse projeto pode servir como base para aplicações mais complexas, como monitoramento ambiental ou sistemas de automação. Explore as possibilidades e adapte o código conforme suas necessidades.
Compartilhe suas dúvidas ou sugestões nos comentários. Boa sorte com seu projeto e divirta-se!