Olá pessoal,
Dando à continuidade ao projeto tinha que aprender a utilizar o sensor de temperatura DHT11. No projeto o sensor vai monitorar a temperatura em tempo real e mostrar no display LCD.
Optei por adquirir o DHT11:
O esquema de ligação é este:
Utilize a biblioteca dht11 disponível em: http://www.seucurso.com.br/downloads/DHT11.zip . Este código faz a leitura de temperatura e umidade:
#include<dht11.h>
#include <Wire.h>
dht11 sensor; //objeto do tipo dht11
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.print("Lendo sensor: ");
int chk = sensor.read(2); // sensor faz a leitura no pino 2
// Testa se a leitura foi bem sucedida
switch(chk) {
case DHTLIB_OK:
Serial.println("OK");
break;
case DHTLIB_ERROR_CHECKSUM:
Serial.println("Erro no checksum");
break;
case DHTLIB_ERROR_TIMEOUT:
Serial.println("Tempo esgotado");
break;
default:
Serial.println("Erro desconhecido");
}
// Se a leitura foi bem sucedida, mostra a umidade e temperatura na Serial
Serial.print("Umidade (%): ");
Serial.println((float)sensor.humidity, 2);
Serial.print("Temperatura (graus Celsius): ");
Serial.println((float)sensor.temperature, 2);
}
O Monitor Serial é bastante útil para verificar como o software está rodando e permite fazer alguns diagnósticos e mostrar valores de sensores.
No próximo post vamos integrar o display LCD com o DHT11, fazendo com que a temperatura seja visualizada no display e também na Serial.
Esse programa não está funcionando, ele cai na opção " case DHTLIB_ERROR_TIMEOUT: ". Seria interessante também colocar um "delay(1000)" no final do código.
ResponderExcluirNa biblioteca do DHT11, diz que as leituras são feitas apenas em int.
ResponderExcluirAs suas leituras estão sendo feitas em float mesmo?