Medindo Temperatura e Umidade com ESP8266 e DHT11
Se você está começando com IoT e quer um projeto simples, barato e que já entrega resultado na primeira tentativa, o combo ESP8266 + DHT11 é praticamente obrigatório. Neste post eu mostro como montei esse circuito e explico linha por linha o código que li os dados de temperatura e umidade no Monitor Serial.
O que vamos usar
- 1x placa ESP8266 (modelo D1, compatível com Wemos/NodeMCU)
- 1x sensor DHT11 de 3 pinos (o de 4 pinos funciona igual, só muda a pinagem)
- 3 fios jumper (macho-macho ou conforme seu módulo)
- Cabo micro USB para alimentação e upload do código
O DHT11 é um sensor digital que já entrega temperatura e umidade relativa do ar prontas, sem precisar de conversão analógica nem resistores adicionais — o módulo azul de 3 pinos já vem com o resistor de pull-up embutido, o que facilita bastante a vida de quem está aprendendo.

Ligação do circuito
A versão de 3 pinos do DHT11 é bem direta:
| Pino do DHT11 | Onde ligar no ESP8266 |
|---|---|
| GND | GND |
| DATA (S) | D1 (GPIO 5) |
| 3.3V (VCC) | 3.3V |
No meu circuito, o fio de dados vai para o pino D1, que corresponde ao GPIO 5 — é exatamente esse pino que declaramos no código. Um detalhe importante: o DHT11 trabalha bem tanto em 3.3V quanto em 5V, mas como o ESP8266 já opera nativamente em 3.3V, prefiro alimentar o sensor direto nessa saída para manter tudo no mesmo nível de tensão e evitar qualquer sobrecarga no pino de dados.
O código
Aqui está o sketch que uso para testar o sensor. Ele é enxuto de propósito — a ideia é validar a leitura antes de partir para qualquer lógica mais elaborada (like enviar os dados para a nuvem, por exemplo).
Entendendo o código por partes
Biblioteca e configuração inicial
Tudo começa com #include <DHT.h>, a biblioteca que faz o trabalho pesado de decodificar o sinal digital do sensor (o DHT11 se comunica por um protocolo próprio de um único fio, e ler isso “na mão” seria bem chato). Se você ainda não tem essa biblioteca instalada, basta ir em Sketch > Incluir Biblioteca > Gerenciar Bibliotecas na IDE do Arduino e procurar por “DHT sensor library” (da Adafruit).
Em seguida, defino duas constantes: DHTPIN 5, que é o GPIO ligado ao fio de dados, e DHTTYPE DHT11, que informa à biblioteca qual variante de sensor estamos usando (existe também o DHT22, mais preciso, mas com o mesmo princípio de uso).
A função setup()
Aqui eu inicio a comunicação serial em 115200 bps — velocidade padrão para ESP8266 — e chamo dht.begin(), que prepara o sensor para começar a receber leituras.
A função loop()
Esse é o coração do código. Repare no delay(2000): o DHT11 é um sensor relativamente lento e não deve ser lido com intervalo menor que 1 segundo entre uma leitura e outra (o datasheet recomenda pelo menos 1 segundo; eu uso 2 segundos por segurança). Se você tentar ler mais rápido que isso, vai começar a receber valores inválidos.
As linhas dht.readHumidity() e dht.readTemperature() fazem a leitura propriamente dita, retornando valores do tipo float. Logo depois vem uma verificação essencial: isnan(h) || isnan(t). Essa checagem existe porque sensores DHT falham leitura com uma certa frequência (interferência, fio solto, timing) — e sem esse tratamento, seu programa acabaria trabalhando com valores lixo sem perceber.
Testando na prática
Depois de subir o código, abra o Monitor Serial (configurado em 115200 bps) e você deve ver algo assim, atualizando a cada 2 segundos:
Umidade: 58.00% | Temperatura: 24.00 °C
Se aparecer “Falha ao ler os dados do sensor DHT!” repetidamente, os culpados mais comuns são:
- Fio de dados solto ou mal encaixado no D1
- Sensor alimentado com tensão insuficiente
DHTPINconfigurado errado no código (confira o GPIO real da sua placa)
Próximos passos
Com a leitura funcionando, o caminho natural é dar utilidade a esses dados: exibir em um display, publicar via MQTT, enviar para o ThingSpeak ou montar um mini dashboard web hospedado no próprio ESP8266. Se você tiver interesse em algum desses próximos passos, me conta nos comentários que eu posso preparar a continuação do Projeto X-9 do Tempo.
Gostou do projeto? Acompanhe mais conteúdos sobre eletrônica, ESP8266 e automação aqui no blog.
Compartilhe:




Publicar comentário