Monitore Temperatura e Umidade com o Sensor DHT11
Publicado em 9 de maio de 2025 • 4 min ler • 832 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:
1#include "DHT.h"
2
3#define DHTPIN 2 // Pino digital conectado ao sensor
4
5// Descomente a linha referente ao tipo de sensor
6#define DHTTYPE DHT11 // DHT 11
7//#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
8//#define DHTTYPE DHT21 // DHT 21 (AM2301)
9
10// Inicializa o sensor DHT
11DHT dht(DHTPIN, DHTTYPE);
12
13// A função setup executa uma vez quando a placa é ligada ou em um reset
14void setup() {
15 Serial.begin(9600); // Inicializa comunicação serial
16 Serial.println("DHTxx test!");
17
18 dht.begin(); // Inicializa sensor DHT
19}
20
21// A função loop executa repetidamente
22void loop() {
23 // Aguarda alguns segundos entre as medições
24 delay(2000);
25
26 // Lê a umidade relativa
27 float hum = dht.readHumidity();
28 // Lê a temperatura em Celsius (padrão)
29 float temp = dht.readTemperature();
30
31 // Verifica se alguma leitura falhou
32 if (isnan(hum) || isnan(temp)) {
33 Serial.println("Falha ao ler do sensor DHT!");
34 return;
35 }
36
37 // Exibe os resultados no monitor serial
38 Serial.print("Umidade: ");
39 Serial.print(hum);
40 Serial.print(" %\t");
41 Serial.print("Temperatura: ");
42 Serial.print(temp);
43 Serial.println(" *C");
44}
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:
1DHTxx test!
2Umidade: 55.0 % Temperatura: 24.0 *C
3Umidade: 54.7 % Temperatura: 24.1 *C
4...
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!