ESP8266 - DHT22
Este tutorial ensina você a usar o ESP8266 para ler a temperatura e a umidade do sensor DHT22. Em detalhes, vamos aprender:
- Como conectar o ESP8266 ao sensor DHT22
- Como programar o ESP8266 para ler os valores de temperatura e umidade de um DHT22
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Sensor de Temperatura e Umidade DHT22
Pinagem do Sensor de Temperatura e Umidade
O DHT22 encontrado no mercado vem em duas formas: sensor e módulo.
O sensor DHT22 tem quatro pinos:
- Pino GND: deve ser conectado ao GND (0V)
- Pino VCC: deve ser conectado ao VCC (5V)
- Pino DATA: usado para a comunicação entre o sensor e o ESP8266
- Pino NC: Não conectado, este pino pode ser ignorado

O módulo DHT22 tem três pinos:
- Pino GND (-): deve ser conectado ao GND (0V)
- Pino VCC (+): deve ser conectado ao VCC (5V)
- Pino OUT: usado para a comunicação entre o sensor e o ESP8266
※ Nota:
A disposição dos pinos em um módulo pode ser diferente dependendo do fabricante. É IMPRESCINDÍVEL usar como referência as indicações impressas no módulo. Certifique-se de olhar com atenção!
Diagrama de Ligação
ESP8266 - Ligação do Sensor DHT22
Um resistor com valor entre 5K e 10K Ohms é necessário para manter a linha de dados em nível alto, permitindo assim a comunicação entre o sensor e o ESP8266.

This image is created using Fritzing. Click to enlarge image
Para mais informações, veja Pinagem do ESP8266 e como alimentar o ESP8266 e outros componentes.
ESP8266 - Ligação do Módulo DHT22
A maioria dos módulos de sensor DHT22 tem um resistor integrado, eliminando a necessidade de ligações adicionais ou de solda.

This image is created using Fritzing. Click to enlarge image
Como Programar o Sensor de Temperatura DHT22
- Para começar, a biblioteca deve ser incluída:
- Especifique o pino do ESP8266 que está conectado ao sensor DHT22.
- Especifique o tipo de sensor: DHT22
- Crie um objeto DHT.
- Inicie a configuração do sensor:
- Leia o valor da umidade.
- Leia a temperatura em Celsius.
- Leia a temperatura em Fahrenheit.
Código ESP8266 para o DHT22
Passos Rápidos
Para começar com o ESP8266 no Arduino IDE, siga estes passos:
- Confira o tutorial como configurar o ambiente para o ESP8266 no Arduino IDE se esta for a sua primeira vez usando o ESP8266.
- Ligue os componentes como mostrado no diagrama.
- Conecte a placa ESP8266 ao seu computador usando um cabo USB.
- Abra o Arduino IDE no seu computador.
- Escolha a placa ESP8266 correta, como (por exemplo, NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
- Conecte um cabo USB ao ESP8266 e ao PC.
- Abra o Arduino IDE e selecione a placa e a porta corretas.
- Clique no ícone Libraries na barra lateral esquerda do Arduino IDE.
- Pesquise por “DHT” e depois localize a biblioteca de sensor DHT da Adafruit.
- Pressione o botão Install para concluir a instalação.

- Você será solicitado a instalar algumas outras dependências de bibliotecas.
- Para instalar todas essas bibliotecas, clique no botão Install All.

- Copie o código correspondente ao sensor que você tem e abra-o com o Arduino IDE.
- Clique no botão Upload no Arduino IDE para compilar e fazer upload do código para o ESP8266.
- Mude a temperatura do ambiente ao redor do sensor.
- Confira o resultado no Serial Monitor.
Vídeo
Conhecimento Adicional
Vamos comparar os sensores DHT11 e DHT22.
O que o DHT11 e o DHT22 têm em comum
- A pinagem é a mesma.
- A ligação ao ESP8266 não muda.
- A programação, com o uso de uma biblioteca, é semelhante, exigindo apenas que uma linha de código seja alterada.
As diferenças entre o DHT11 e o DHT22
| DHT11 | DHT22 | |
|---|---|---|
| Preço | custo ultrabaixo | custo baixo |
| Faixa de temperatura | 0°C a 50°C | -40°C a 80°C |
| Precisão da temperatura | ± 2°C | ± 0.5°C |
| Faixa de umidade | 20% a 80% | 0% a 100% |
| Precisão da umidade | 5% | ± 2 a 5% |
| Taxa de leitura | 1Hz (uma vez por segundo) | 0.5Hz (uma vez a cada 2 segundos) |
| Tamanho do corpo | 15.5mm x 12mm x 5.5mm | 15.1mm x 25mm x 7.7mm |
Evidentemente, o DHT22 é mais preciso que o DHT11 e tem uma faixa de medição maior, mas custa mais.