//sensor DHT22 com LCD
#include <LiquidCrystal_I2C.h> //inclui a biblioteca do LCD
#include <DHT.h> //inclui a biblioteca do DHT
#define DHTPIN 18
#define DHTTYPE DHT22
LiquidCrystal_I2C lcd (0x27, 20, 4); //cria um nome para LiquidCrystal (lcd)
DHT dht (DHTPIN, DHTTYPE); //cria um nome para o DHT
void setup()
{
Serial.begin(115200);
dht.begin();
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print ("Celsius:");
lcd.setCursor(18, 0);
lcd.print((char)223);
lcd.print("C");
lcd.setCursor (0, 1);
lcd.print ("Umidade:");
lcd.setCursor(19, 1);
lcd.print("%");
lcd.setCursor(0, 2);
lcd.print("Fahrenheit:");
lcd.setCursor(18, 2);
lcd.print((char)223);
lcd.print("F");
}
void loop()
{
delay(4000);
float h = dht.readHumidity();
float t = dht.readTemperature();
float f = dht.readTemperature(true);
//verificar se a leitura do DHT falhou:
//NaN: not a number
//isnan: verifica se um valor tipo float não é um número
if (isnan(h) || isnan(t) || isnan(f))
{
Serial.println(F("FALHA AO LER O SENSOR DHT!"));
return;
}
//imprime o valor da umidade
Serial.print("Umidade: ");
Serial.print(h);
Serial.print("% | ");
lcd.setCursor(12, 1);
lcd.print(h);
//imprime o valor da temperatura em °C
Serial.print("Temperatura: ");
Serial.print(t);
Serial.print("°C | ");
lcd.setCursor(12, 0);
lcd.print(t);
//imprime o valor da temperatura em °F
Serial.print(f);
Serial.println("°F");
lcd.setCursor(12, 2);
lcd.print(f);
}