Tutorial: como utilizar o Sensor de temperatura e umidade RHT03 com Arduino

Adquira estes componentes na Loja do Lab de Garagem

O sensor de temperatura e umidade RHT03 é um sensor de baixo custo e fácil utilização. A leitura é feita apenas por uma única saída do sensor. O sensor já está calibrado e não precisa de componentes extras para funcionamento. Exige apenas um Resistor de Pull-UP no pino de leitura.

Para utilizá-lo com Arduino é necessário a biblioteca dht.cpp e dht.h que pode ser adquirida aqui. Na página não tem nenhum link e sim o próprio código postado na página. Ainda na página da biblioteca, está escrito o dht.cpp e logo abaixo está o código da biblioteca. Copie e cole em um editor de texto, salve-o como dht.cpp e coloque em uma pasta própria (você pode chamá-la de DHT). Idem para o dht.h. Agora copie a pasta que você colocou os arquivos dht.cpp e dht.h e cole dentro da pasta "libraries" da IDE do Arduino.

Vendo o datasheet do RHT03, podemos ver a pinagem e assim fazer as ligações com Arduino:

Agora que sabemos sua pinagem, vamos para a ligação do sensor RHT03 com Arduino:

O sensor RHT03, funciona a partir de 3.3V a 6V, neste tutorial fizemos com a saída de 5V do Arduino, mas nada impede que você utilize o 3.3V do Arduino. O pino 2 do sensor vai para o pino digital 5 do Arduino com um resistor de 1Kohm de Pull-Up como é visto no datasheet pela imagem abaixo:

E o pino 3 fica em aberto (Not Connected). Agora que você já colocou a biblioteca na pasta "libraries" localizada na pasta da IDE do Arduino e já fez as ligações demonstradas, vamos para a programação exemplo modificada do site:

#include <dht.h>

dht DHT;


#define DHT22_PIN 5

void setup()
{
Serial.begin(115200);
Serial.println("DHT TEST PROGRAM ");
Serial.print("LIBRARY VERSION: ");
Serial.println(DHT_LIB_VERSION);
Serial.println();
Serial.println("Type,\tstatus,\tHumidity (%),\tTemperature (C)");
}

void loop()
{
// READ DATA
Serial.print("DHT22, \t");
int chk = DHT.read22(DHT22_PIN);
switch (chk)
{
case DHTLIB_OK:
Serial.print("OK,\t");
break;
case DHTLIB_ERROR_CHECKSUM:
Serial.print("Checksum error,\t");
break;
case DHTLIB_ERROR_TIMEOUT:
Serial.print("Time out error,\t");
break;
default:
Serial.print("Unknown error,\t");
break;
}
// DISPLAY DATA
Serial.print(DHT.humidity, 1);
Serial.print(",\t");
Serial.println(DHT.temperature, 1);

delay(1000);

}

Na programação exemplo, se as ligações estiverem certas, o sensor vai iniciar e mostrará a umidade e temperatura como mostrado na figura abaixo:

No Serial Monitor a umidade relativa do ar e a temperatura em graus Celsius!

E pronto! Simples e fácil! Esperamos que tenham gostado!! Se tiverem dúvidas, postem aqui mesmo no blog! Temos um post para sugestões de tutoriais clicando aqui! Para ver outros tutoriais e projetos desenvolvidos pela equipe LdG e por outros garagistas,cliquem aqui e aqui, respectivamente!

Referências:

http://arduino.cc/playground/Main/DHTLib

http://www.labdegaragem.org/loja/index.php/34-sensores/sensor-de-te...

http://www.sparkfun.com/products/10167

Exibições: 31867

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Fredman Carlos de Moraes em 15 maio 2013 às 0:18

Montei esse projeto e funcionou corretamente.Belo tutorial LDG.

Queria saber se tem como eu ter um relatorio com horarios e tambem como poderia acionar uma saida qdo eu setasse um valor para temperatura e uma saida para a umidade tambem.

Outra pergunta seria possivel eu ter ainda as max e min num perido que o sensor fizesse as leituras? Qual a distancia maxima entre o arduino e o sensor e qual tipo de cabo poria usar?

Comentário de jovandir poncetti junior em 14 maio 2013 às 22:34

mas como ficaria a programação ? poderia me ajudar nao intendi a parte que começa a comunicação do shield no exenmplo de serverclient e onde começa a programação ou seja onde devo implementar a programação junto

Comentário de Laboratório de Garagem em 14 maio 2013 às 17:52

É só colocar o sensor em cima do shield e certificar-se que o shield não utiliza este pino.

Comentário de jovandir poncetti junior em 14 maio 2013 às 12:13

bom dia como faço para implementar junto com essa programação o shield?

Comentário de Marcus A G da Rocha em 7 maio 2013 às 21:16

correção: umidade

Comentário de Marcus A G da Rocha em 7 maio 2013 às 21:15

Tem como utilizar o sensor de humidade direto no solo?

Comentário de Gessé Haroldo Marietto Junior em 4 fevereiro 2013 às 8:46

Aproveitando o tópico, gostaria de saber se é possível fazer com que o arduino "post" os dados de um motor (corrente e tensão) em um local http para consulta dos dados.

Comentário de Marcos Antonio Santos de Oliveir em 30 dezembro 2012 às 0:26

Tem como usar para saber se minhas flores precisam de água , diretamente no solo?

Comentário de Leonardo C. Barbini em 27 dezembro 2012 às 16:44

to saindo do serviço , nem li. as ja queria deixar minha pergunta... srrss tem como usar no solo, umidecido?

Comentário de Fredman Carlos de Moraes em 10 setembro 2012 às 2:16

Outra pergunta seria possivel eu ter ainda as max e min num perido que o sensor fizesse as leituras? Qual a distancia maxima entre o arduino e o sensor e qual tipo de cabo poria usar?

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço