/* Programa: Termômetro Digital com o DHT11 e LCD
16x2. */
/* Inclui as bibliotecas do Display LCD e do Sensor
DHT11. */
#include <LiquidCrystal.h>
#include <DHT.h>
/* Cria o objeto dht utilizando o Sensor DHT11 no
pino analógico A0. */
DHT dht(A0, DHT11);
/* Define os pinos que serão ligados ao display LCD */
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
/* Cria o símbolo grau */
byte grau[8] = { B00001100,
B00010010,
B00010010,
B00001100,
B00000000,
B00000000,
B00000000,
B00000000,
};
void setup()
{
/* Inicializa o Display LCD 16x2 */
lcd.begin(16, 2);
/* Limpa o LCD. */
lcd.clear();
/* Cria o caractere customizado com o símbolo do
grau */
lcd.createChar(0, grau);
/* Inicializa o Sensor de Temperatura e Umidade */
dht.begin();
lcd.setCursor(3, 0);
lcd.print("Termometro");
lcd.setCursor(5, 1);
lcd.print("Digital");
delay(2000);
lcd.clear();
}
void loop(){
/* Lê os dados do sensor e armazena nas variáveis h
e t. */
float h = dht.readHumidity();
float t = dht.readTemperature();
/* Imprime, no Display LCD, as informações da
temperatura. */
lcd.setCursor(2, 0);
lcd.print("Temperatura");
lcd.setCursor(4, 1);
lcd.print(t, 1);
lcd.setCursor(9, 1);
/* Mostra o símbolo do grau. */
lcd.write((byte)0);
lcd.setCursor(10, 1);
lcd.print("C");
/* Intervalo entre medidas */
delay(2500);
lcd.clear();
/* Imprime, no Display LCD, as informações da
umidade. */
lcd.setCursor(1, 0);
lcd.print("Umidade do Ar");
lcd.setCursor(6, 1);
lcd.print(h, 0);
lcd.setCursor(9, 1);
lcd.print("%");
/* Intervalo entre medidas */
delay(2500);
lcd.clear();
}