#include <LiquidCrystal.h>
#include <DHT.h>
#define DHTPIN 2//PINO ANALÓGICO UTILIZADO PELO DHT11
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
int led1 = 9;
int led2 = 10;
int led3 = 11;
const int rs = 3, en = 4, d4 = 5, d5 = 6, d6 = 7, d7 = 8;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup(){
Serial.begin(9600); //INICIALIZA A SERIAL
dht.begin();
lcd.begin(16, 2);
lcd.clear();
lcd.setCursor(0, 1); //INTERVALO DE 2 SEGUNDO ANTES DE INICIAR
}
void loop(){
delay(2000);
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
// Read temperature as Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature(true);
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
// Compute heat index in Fahrenheit (the default)
float hif = dht.computeHeatIndex(f, h);
// Compute heat index in Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex(t, h, false);
if (t>10) {
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
}
if (t>15) {
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
}
if (t>20) {
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
}
Serial.print(F("Temperature: "));
Serial.print(t);
Serial.println(F("°C "));
Serial.print(F("Heat index: "));
Serial.print(hic);
Serial.println(F("°C "));
lcd.setCursor(0, 0);
lcd.print(F("Temp:"));
lcd.print(t);
lcd.print(F("C"));
lcd.setCursor(0, 1);
lcd.print(F ("HeatIndex:"));
lcd.print(hic);
lcd.print(F("C"));
delay(2500);
lcd.clear();
}