Sensores DHT e Uso de Bibliotecas

153 Flares Twitter 0 Facebook 153 Google+ 0 153 Flares ×

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.

IMG_20140513_185501

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:

DHT11
  • 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
DHT22
  • 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 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
  • 4 pinos com 0.1″ de espaçamento entre eles

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.

Incluindo bibliotecas

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:

1ª opção) Instalar a biblioteca pelo IDE do Arduino

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…”:

importlibrary

Na janela que abrir, selecione a biblioteca a ser adicionada:

importlibrary2

Com isso, a nova biblioteca foi instalada. Para utilizá-la, basta ir em “Sketch -> Import Library…” e selecionar a biblioteca desejada:

importlibrary3

Observe que o IDE adicionou no início do seu código a linha:

#include <dht.h>

incluindo a biblioteca no seu programa.

2ª opção) Instalar manualmente a biblioteca

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”

manual

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"
sem_instalar

Adicionando a biblioteca sem instalar no IDE

Exemplo de uso

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:

dht11.fw

IMG_20140513_185442

#include <dht.h> // Inclui a biblioteca no seu código

dht DHT; // Cria um objeto da classe dht
uint32_t ref = 0;

void setup()
{
  Serial.begin(9600); // Inicializa serial com taxa de transmissão de 9600 bauds
}

void loop()
{
  // 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.print(DHT.humidity);
    Serial.println(" %");

    // Exibe na serial o valor da temperatura
    Serial.print(DHT.temperature);
    Serial.println(" Celsius");

    ref = millis(); // Atualiza a referência
  }
}

Apostila Arduino 800px

153 Flares Twitter 0 Facebook 153 Google+ 0 153 Flares ×

Ronan Largura

Estudante de engenharia elétrica e integrante do PET elétrica Ufes.

You may also like...