

Nesse Tutorial, você aprenderá como funcionam os Sensores DHT11 e DHT22 de umidade e temperatura e como fazer uma montagem desses sensores com o Arduino.
Umidade é a quantidade de vapor de água na atmosfera. A umidade relativa do ar é uma importante medida usada na previsão do tempo, e indica a possibilidade de precipitação chuva.
A alta quantidade de vapor de água na atmosfera favorece a ocorrência de chuvas. Já com a umidade do ar baixa, é difícil chover.
A alta umidade durante dias quentes faz a sensação térmica aumentar, ou seja, a pessoa tem a impressão de que está mais calor, devido à redução da eficácia da transpiração da pele, e assim reduzindo o resfriamento corporal.
De acordo com a OMS (Organização Mundial da Saúde), valores de umidade abaixo de 20% oferecem risco à saúde, podendo provocar desidratação nas pessoas.
O instrumento chamado de Higrômetro é usado para a medição da umidade relativa presente na atmosfera.
É utilizado principalmente em estudos do clima, mas também em locais fechados onde a presença de umidade excessiva ou abaixo do normal poderia causar danos, por exemplo dentro de museus, bibliotecas e em laboratórios.
Essas são algumas aplicações para os Sensores de Umidade e Temperatura:
Neste artigo, vamos ensinar você sobre o funcionamento dos Sensores DHT11 e DHT22 de umidade e temperatura. Veja, também, como fazer uma montagem desses sensores com o Arduino. Confira!
O sensor DHT11 é um dispositivo de baixo custo usado para medição de umidade e temperatura do ar.O sensor de umidade é capacitivo e o sensor de temperatura é um termistor NTC, isto é um resistor sensível à variações de temperatura.Dentro do sensor existe um microcontrolador que faz as medições e transmite os valores no formato digital através de um pino de saída.Segundo o fabricante, a transmissão digital pode ser realizada através de um cabo de até 20 metros. Mas vale a observação de que a longa exposição do sensor ao sol, poderá afetar a performance do mesmo.

O Sensor DHT22 ou AM2302 também é usado para medição de umidade e temperatura do ar. Só que com características melhores do que o do DHT11.Tem maior precisão nas medições e abrange uma faixa maior de temperatura e umidade. Por isso ele custa um pouco mais caro.


Após a alimentação de tensão dos Sensores DHT11 ou DHT22, aguarde cinco segundos para o circuito se estabilizar. Um capacitor de 100 uF é recomendado entre o pino VCC e o GND.No pino de saída, deve ser usado também um resistor de pullup (4,7K ohms). No caso do módulo sensor DHT11, esses componentes não são necessários pois já estão montados na placa.A comunicação dos dados no barramento serial (único pino) ocorre nos dois sentidos, isto é, do sensor para o Microcontrolador e vice-versa.O protocolo de comunicação pode ser dividido em três partes :

A montagem dos Sensores DHT com Arduino é muito simples.Como os fios de ligação são curtos, não conectei o capacitor como recomendado. Se for usar cabos mais extensos, monte o capacitor entre o VCC e o terra. Mas o resistor de pullup de 4,7 K ohms é necessário.Materiais necessários para o projeto com Sensores DHT11 e DHT22
O Diagrama Fritzing abaixo serve para os dois sensores, DHT11 e DHT22, já que eles têm a mesma pinagem. Mas não se esqueça de configurar no programa, o sensor usado. Já que existem algumas diferenças nos protocolos de comunicação.

Tanto para o uso do Sensor DHT11, quanto para o DHT22, a biblioteca que será usada é a da Adafruit. Ela segue os padrões da IDE Arduino e é bem simples para usá-la.Para instalar a nova Biblioteca DHT Sensor Library , clique em: Sketch > Incluir Biblioteca > Gerenciar Bibliotecas Após abrir a janela do Gerenciador de Biblioteca, refine a busca digitando DHT Sensor Library. Na biblioteca da Adafruit, clique em More Info e depois em Instalar.Após alguns segundos, ela será automaticamente instalada. Lembre-se que o seu computador precisa estar conectado na internet, para poder baixar a biblioteca. Após a instalação da Biblioteca, é necessário que feche e abra novamente o programa Arduino IDE.
O programa também é bem simples. Fiz uma tradução do exemplo da Biblioteca da Adafruit, para facilitar o entendimento.O programa faz com que o Arduino se comunique com o Sensor DHT, para realizar as leituras de umidade e temperatura.O mesmo programa poderá ser usado para os dois sensores (DHT11 ou DHT22). Mas somente um sensor deverá ser usado de cada vez. É necessário somente a definição no programa, do sensor a ser usado.
// Arduino - Sensor DHT - Umidade e Temperatura
// https://blog.eletrogate.com/
// Adafruit Unified Sensor Library: https://github.com/adafruit/Adafruit_Sensor
#include <Adafruit_Sensor.h> // Biblioteca DHT Sensor Adafruit
#include <DHT.h>
#include <DHT_U.h>
// selecione um sensor, retirando o comentário - duas barras
#define DHTTYPE DHT11 // Sensor DHT11
//#define DHTTYPE DHT22 // Sensor DHT22 ou AM2302
#define DHTPIN 2 // Pino do Arduino conectado no Sensor(Data)
DHT_Unified dht(DHTPIN, DHTTYPE); // configurando o Sensor DHT - pino e tipo
uint32_t delayMS; // variável para atraso no tempo
void setup()
{
Serial.begin(9600); // monitor serial 9600 bps
dht.begin(); // inicializa a função
Serial.println("Usando o Sensor DHT");
sensor_t sensor;
dht.temperature().getSensor(&sensor); // imprime os detalhes do Sensor de Temperatura
Serial.println("------------------------------------");
Serial.println("Temperatura");
Serial.print ("Sensor: "); Serial.println(sensor.name);
Serial.print ("Valor max: "); Serial.print(sensor.max_value); Serial.println(" *C");
Serial.print ("Valor min: "); Serial.print(sensor.min_value); Serial.println(" *C");
Serial.print ("Resolucao: "); Serial.print(sensor.resolution); Serial.println(" *C");
Serial.println("------------------------------------");
dht.humidity().getSensor(&sensor); // imprime os detalhes do Sensor de Umidade
Serial.println("------------------------------------");
Serial.println("Umidade");
Serial.print ("Sensor: "); Serial.println(sensor.name);
Serial.print ("Valor max: "); Serial.print(sensor.max_value); Serial.println("%");
Serial.print ("Valor min: "); Serial.print(sensor.min_value); Serial.println("%");
Serial.print ("Resolucao: "); Serial.print(sensor.resolution); Serial.println("%");
Serial.println("------------------------------------");
delayMS = sensor.min_delay / 1000; // define o atraso entre as leituras
}
void loop()
{
delay(delayMS); // atraso entre as medições
sensors_event_t event; // inicializa o evento da Temperatura
dht.temperature().getEvent(&event); // faz a leitura da Temperatura
if (isnan(event.temperature)) // se algum erro na leitura
{
Serial.println("Erro na leitura da Temperatura!");
}
else // senão
{
Serial.print("Temperatura: "); // imprime a Temperatura
Serial.print(event.temperature);
Serial.println(" *C");
}
dht.humidity().getEvent(&event); // faz a leitura de umidade
if (isnan(event.relative_humidity)) // se algum erro na leitura
{
Serial.println("Erro na leitura da Umidade!");
}
else // senão
{
Serial.print("Umidade: "); // imprime a Umidade
Serial.print(event.relative_humidity);
Serial.println("%");
}
}Essas são as telas do Monitor Serial da IDE , para o Sketch das montagens. Veja as diferenças nas leituras dos dois sensores.Usando o Sensor DHT11:


|
Nesse Tutorial, você aprenderá como funcionam os Sensores DHT11 e DHT22 de umidade e temperatura e como fazer uma montagem desses sensores com o Arduino.
Encontre tudo na Loja Eletrogate com frete grátis para compras acima de R$ 200