Sensores DHT e Uso de Bibliotecas - Vida de Silício
by Ronan Largura · 28 de maio de 2014
O DHT é um sensor básico e de baixo custo que utiliza um termistor e um sensor capacitivo para medir a temperatura e a umidade do ar ambiente. Esse sensor é bastante simples de usar, mas requer cuidado com o tempo entre duas leituras consecutivas, já que é necessário um intervalo de no mínimo 1 segundo entre uma leitura e outra.
Existem diferentes versões do DHT, similares na aparência e na pinagem, porém com características diferentes. As características do DHT11 e DHT22, dois modelos populares desse sensor, são:
Muito baixo custo
Tensão de alimentação de 3V a 5V
2.5mA de corrente máxima durante a conversão
Bom para medir umidade entre 20% e 80%, com 5% de precisão
Bom para medir temperaturas entre 0 e 50°C, com ±2°C de precisão
Taxa de amostragem de até 1Hz (1 leitura por segundo)
Dimensões: 15.5mm x 12mm x 5.5mm
4 pinos com 0.1″ de espaçamento entre eles
Bom para medir umidade entre 0% e 100%, com 2% a 5% de precisão
Bom para medir temperaturas entre -40 e 125°C, com ±0,5°C de precisão
Taxa de amostragem de até 0,5Hz (2 leituras por segundo)
Dimensões: 15.1mm x 25mm x 7.7mm
Como pode ser observado, o DHT22 é um pouco mais preciso e trabalha em uma faixa um pouco maior de temperatura e umidade. Porém, ambos utilizam apenas um pino digital e são relativamente lentos, visto que é necessário um intervalo de tempo relativamente grande entre cada leitura.
Para trabalhar de forma fácil com o DHT, podemos baixar uma biblioteca para ele no GitHub do Rob Tillaart (https://github.com/RobTillaart/Arduino/tree/master/libraries/DHTlib). Há, basicamente, três formas de incluir bibliotecas no seu programa:
Esse é o método mais fácil. Primeiramente, faça o download dos arquivos da biblioteca compactados no formato zip. Geralmente as bibliotecas já são distribuídas compactadas, porém às vezes é necessário fazer o download dos arquivos separadamente e compactá-los à parte. Em seguida, basta abrir o IDE e ir em "Sketch -> Import Library… -> Add Library…":
Para instalar manualmente uma biblioteca, feche o IDE do Arduino e em seguida descompacte os arquivos da biblioteca. Se os arquivos .cpp e .h não estiverem dentro de uma pasta, crie uma e mova os arquivos para lá. Em seguida, basta mover a pasta para o local:
Windows: "Meus documentos\Arduino\libraries"
Mac: "Documents/Arduino/libraries"
Instalando a biblioteca manualmente
Depois desse processo, a biblioteca estará disponível em "Sketch -> Import Library…" na próxima vez que o IDE for aberto.
2ª opção) Incluir a biblioteca sem instalá-la
É possível também utilizar a biblioteca sem instalá-la no IDE do Arduino. Para isso, basta descompactar a biblioteca e colocar os arquivos .h e .cpp no mesmo diretório do programa, incluindo no início do mesmo a linha:
#include "nome_da_biblioteca.h"
Adicionando a biblioteca sem instalar no IDE
A utilização dessa biblioteca é bastante simples: basta chamar o método de leitura (read11 se estiver utilizando o DHT11, ou read22 se estiver utilizando o DHT22) e em seguida ler os valores nos atributos temperature e humidity. Lembre-se, contanto, que o sensor necessita de no mínimo 1 segundo de intervalo entre uma leitura e outra.
Nesse exemplo será utilizado um DHT11 para medir a temperatura e umidade do ambiente, exibindo esses valores no terminal serial do Arduino. Os pinos Vcc e GND do sensor foram conectados nos pinos 5V e GND do Arduino, respectivamente, enquanto o pino de transmissão de dados foi ligado na porta digital 10. A pinagem do DHT11, o esquema de ligação no Arduino e o código podem ser visualizados abaixo:
#include <dht.h> // Inclui a biblioteca no seu código
dht DHT; // Cria um objeto da classe dht
uint32_t ref = 0;
// Executa 1 vez a cada 2 segundos
if(millis() - ref >= 2000)
DHT.read11(10); // Chama método de leitura da classe dht,
// com o pino de transmissão de dados ligado no pino 10
// Exibe na serial o valor de umidade
Serial.println(" %");
// Exibe na serial o valor da temperatura
Serial.println(" Celsius");
ref = millis(); // Atualiza a referência
Tags: adicionar bibliotecaArduinodht	Ronan Largura
Estudante de engenharia elétrica e integrante do PET elétrica Ufes.
Pingback: Sensor Ultrassônico - Vida de Sílicio()
Oi, tenho um certo interesse em sensores de temperatura.
Atualmente eu uso um LM35, que mede temperaturas numa faixa de -55
°C até 150 °C e com precisão de 0,5 °C. Sua implementação é fácil, uma vez que eu posso ler a tensão que ele gera e através de uma pequena equação, obter a resposta em temperatura.
Você consegue me descrever algumas vantagens do seu sensor em relação aos mais comuns no mercado para medir temperaturas?
Vale lembrar que meu sensor não mede umidade, então seu sensor seria uma boa escolha, caso eu precisasse dessa função também.