/* 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, DHT22);
/* 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();
}