PRÁTICA 5 – SENSOR DE TEMPERATURA E UMIDADE RHT03 OU DHT33
Objetivos:
- Conectar um sensor de temperatura RHT03 ou DHT33 no Arduíno
- Ler a temperatura e umidade via USB
- Colocar a temperatura no display de LCD HD44780
INTRODUÇÃO
Sensores de temperatura integrados como o RHT03, são bastante práticos por serem de pequeno tamanho e baixo consumo. Eles possuem a pinagem abaixo, onde o pino 3 (em branco) não é usado:
O pino 1 deve ser alimentado com 5V, o pino 2 é para transmissão da informação de temperatura e umidade e o pino 4 é o GND.
Para utilizar o sensor RHT03 no Arduíno deve-se instalar uma biblioteca. Verifique se já está instalada na sua máquina. Caso não esteja, baixe o arquivo dht.zip em na seção Arduíno do site adrianomoutinho.com. Em seguida descomprima os arquivos no diretório C:\Program Files Arduino\libraries. Peça ajuda ao professor caso necessite de senha de administrador.
Tarefas:
- Montar o circuito abaixo (sensor e Arduíno). Atenção para o resistor de pull-up no pino 2. O valor pode ser qualquer um entre 1K e 22KΩ.
- Verificar se há leitura de temperatura e umidade no Monitor Serial no programa 1 (Canto superior direito do programa do Arduíno).
- Montar o circuito da prática 4 (LCD) no mesmo Arduíno, mantendo o sensor de temperatura conectado. Aproveite as mesmas tensões e o protoboard.
- Enviar para o Arduíno o programa 2 para que a medição seja enviada para o LCD:
Programa 1 – Sensor DHT33 para serial USB (VER RESPOSTA NO SERIAL MONITOR)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#include <dht.h> dht DHT; #define DHT33_PIN 8 void setup() { Serial.begin(9600); } void loop() { Serial.println("Iniciando!"); DHT.read33(DHT33_PIN); Serial.print("Temp: "); Serial.print(DHT.temperature); Serial.println("C"); Serial.print("Umid: "); Serial.print(DHT.humidity); Serial.println("%"); delay(1000); } |
Programa 2 – Sensor DHT33 para o LCD (MONTAR CIRCUITO ADICIONAL LCD):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); #include <dht.h> dht DHT; #define DHT33_PIN 8 void setup() { lcd.begin(16, 2); } void loop() { DHT.read33(DHT33_PIN); lcd.setCursor(0, 0); lcd.print("Temp: "); lcd.print(DHT.temperature); lcd.print("C"); lcd.setCursor(0, 1); lcd.print("Umid: "); lcd.print(DHT.humidity); lcd.print("%"); delay(100); } |
Desafio: Faça um programa que mostre a temperatura no LCD e que escreva “QUENTE” se a temperatura estiver acima dos 25 graus (ou mais, se a sala estiver mais quente)!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); #include <dht.h> dht DHT; #define DHT33_PIN 8 void setup() { lcd.begin(16, 2); } void loop() { DHT.read33(DHT33_PIN); int temp = DHT.temperature; lcd.setCursor(0, 0); lcd.print("Temp: "); lcd.print(DHT.temperature); lcd.print("C"); if (temp > 25) { lcd.setCursor(0, 1); lcd.print("QUENTE!"); } delay(100); } |