Arduino - Sensor de Temperatura e Umidade

Neste tutorial, vamos aprender:

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.

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ção3 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
Pinagem dos sensores de temperatura e umidade DHT11 e DHT22

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!

Pinagem dos módulos de temperatura e umidade DHT11 e DHT22

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

Diagrama de ligação do Arduino com o sensor de temperatura e umidade DHT11

This image is created using Fritzing. Click to enlarge image

Arduino - Ligação do Sensor DHT22

Diagrama de ligação do Arduino com o sensor de temperatura e umidade 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.

Diagrama de ligação do Arduino com o módulo de temperatura e umidade DHT11

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.

Diagrama de ligação do Arduino com o módulo de temperatura e umidade DHT22

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:
#include "DHT.h"
  • Defina o pino do Arduino conectado ao sensor DHT:
#define DHTPIN 2
  • Defina o tipo de sensor: DHT11 ou DHT22 (esta é a linha de código diferente)
#define DHTTYPE DHT11

ou

#define DHTTYPE DHT22
  • Declare o objeto DHT
DHT dht(DHTPIN, DHTTYPE);
  • Inicialize o sensor:
dht.begin();
  • Leia a umidade:
float humi = dht.readHumidity();
  • Leia a temperatura em Celsius:
float tempC = dht.readTemperature();
  • Leia a temperatura em Fahrenheit:
float tempF = dht.readTemperature(true);

Código Arduino - DHT11

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-temperature-humidity-sensor */ #include "DHT.h" #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); dht.begin(); // initialize the sensor } void loop() { // wait a few seconds between measurements. delay(2000); // read humidity float humi = dht.readHumidity(); // read temperature as Celsius float tempC = dht.readTemperature(); // read temperature as Fahrenheit float tempF = dht.readTemperature(true); // check if any reads failed if (isnan(humi) || isnan(tempC) || isnan(tempF)) { Serial.println("Failed to read from DHT sensor!"); } else { Serial.print("Humidity: "); Serial.print(humi); Serial.print("%"); Serial.print(" | "); Serial.print("Temperature: "); Serial.print(tempC); Serial.print("°C ~ "); Serial.print(tempF); Serial.println("°F"); } }

Código Arduino - DHT22

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-temperature-humidity-sensor */ #include "DHT.h" #define DHTPIN 2 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); dht.begin(); // initialize the sensor } void loop() { // wait a few seconds between measurements. delay(2000); // read humidity float humi = dht.readHumidity(); // read temperature as Celsius float tempC = dht.readTemperature(); // read temperature as Fahrenheit float tempF = dht.readTemperature(true); // check if any reads failed if (isnan(humi) || isnan(tempC) || isnan(tempF)) { Serial.println("Failed to read from DHT sensor!"); } else { Serial.print("Humidity: "); Serial.print(humi); Serial.print("%"); Serial.print(" | "); Serial.print("Temperature: "); Serial.print(tempC); Serial.print("°C ~ "); Serial.print(tempF); Serial.println("°F"); } }

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.
Biblioteca DHT sensor no Arduino
  • 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.
Biblioteca Adafruit Unified Sensor no Arduino
  • 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.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 32.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 29.00°C ~ 84.20°F Humidity: 32.00% | Temperature: 29.00°C ~ 84.20°F Humidity: 31.00% | Temperature: 29.00°C ~ 84.20°F
Ln 11, Col 1
Arduino Uno on COM15
2

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!