Arduino - Sensor de Temperatura e Umidade
Neste tutorial, vamos aprender:
- As diferenças entre os sensores de temperatura e umidade DHT11 e DHT22
- Como ler os valores de temperatura e umidade do DHT11 usando o Arduino
- Como ler os valores de temperatura e umidade do DHT22 usando o Arduino
Se você só quer medir a temperatura, recomendamos usar um sensor de temperatura DS18B20 à prova d'água. Ele é um sensor barato e prático. Você pode colocá-lo em água quente ou fria.
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre os Sensores de Temperatura e Umidade DHT11 e DHT22
O que o DHT11 e o DHT22 têm em comum
- As pinagens são iguais
- A ligação com o Arduino é igual
- A programação (com uma biblioteca) é parecida (apenas uma linha de código é diferente)
As diferenças entre o DHT11 e o DHT22
| DHT11 | DHT22 | |
|---|---|---|
| Preço | custo ultrabaixo | baixo custo |
| Faixa de temperatura | 0°C a 50°C | -40°C a 80°C |
| Precisão de temperatura | ± 2°C | ± 0.5°C |
| Faixa de umidade | 20% a 80% | 0% a 100% |
| Precisão de umidade | 5% | ± 2 a 5% |
| Taxa de leitura | 1Hz (uma vez por segundo) | 0.5Hz (uma vez a cada 2 segundos) |
| Tamanho | 15.5mm x 12mm x 5.5mm | 15.1mm x 25mm x 7.7mm |
| Tensão de operação | 3 a 5V | 3 a 5V |
Como você pode ver, o DHT22 é um pouco mais preciso e tem uma faixa maior, mas é mais caro que o DHT11.
Pinagem
Os sensores DHT11 e DHT22 na forma original têm quatro pinos:
- Pino GND: precisa ser conectado ao GND (0V)
- Pino VCC: precisa ser conectado ao VCC (5V ou 3.3V)
- Pino DATA: este pino é usado para a comunicação entre o sensor e o Arduino
- Pino NC: não conectado, podemos ignorar este pino

Alguns fabricantes fornecem os sensores DHT11 e DHT22 em forma de módulo com três pinos: GND, VCC e DATA (ou, alternativamente: -, + e OUT).
※ Nota:
Na forma de módulo, a ordem dos pinos pode variar entre os fabricantes. SEMPRE use as identificações impressas no módulo. Observe com atenção!

Diagrama de Ligação
A ligação com o Arduino é igual para os dois sensores. Na forma original, é necessário um resistor de 5K a 10K Ohms para manter a linha de dados em nível alto e permitir a comunicação entre o sensor e o Arduino
Arduino - Ligação do Sensor DHT11

This image is created using Fritzing. Click to enlarge image
Arduino - Ligação do Sensor DHT22

This image is created using Fritzing. Click to enlarge image
Arduino - Ligação do Módulo DHT11
A maioria dos módulos de sensor DHT11 já tem um resistor embutido, então você não precisa adicioná-lo. Isso nos poupa um pouco de trabalho de ligação ou de solda.

This image is created using Fritzing. Click to enlarge image
Arduino - Ligação do Módulo DHT22
A maioria dos módulos de sensor DHT22 já tem um resistor embutido, então você não precisa adicioná-lo. Isso nos poupa um pouco de trabalho de ligação ou de solda.

This image is created using Fritzing. Click to enlarge image
Como Programar o Sensor de Temperatura DHTxx
A programação para os dois sensores é parecida. Há apenas uma linha de código diferente.
- Inclua a biblioteca:
- Defina o pino do Arduino conectado ao sensor DHT:
- Defina o tipo de sensor: DHT11 ou DHT22 (esta é a linha de código diferente)
ou
- Declare o objeto DHT
- Inicialize o sensor:
- Leia a umidade:
- Leia a temperatura em Celsius:
- Leia a temperatura em Fahrenheit:
Código Arduino - DHT11
Código Arduino - DHT22
Se você comparar os dois códigos acima, vai perceber que há uma linha diferente (linha 11)
Passos Rápidos
- Conecte o Arduino ao PC usando o cabo USB
- Abra o Arduino IDE e selecione a placa e a porta corretas
- Vá até o ícone Libraries na barra esquerda do Arduino IDE.
- Pesquise “DHT” e encontre a biblioteca DHT sensor library da Adafruit
- Clique no botão Install para instalar a biblioteca.

- Será solicitado que você instale algumas outras dependências da biblioteca
- Clique no botão Install All para instalar todas as dependências da biblioteca.

- Copie o código acima correspondente ao sensor que você tem e abra-o no Arduino IDE
- Clique no botão Upload no Arduino IDE para carregar o código no Arduino
- Deixe o ambiente ao redor do sensor mais quente ou mais frio
- Veja o resultado no Serial Monitor.