#include <DHT.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define DHTPIN 32
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
const int ledCiano = 25;
const int ledVerde = 26;
const int ledAmarelo = 27;
const int ledLaranja = 14;
const int ledVermelho = 12;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(115200);
pinMode(ledVermelho, OUTPUT);
pinMode(ledLaranja, OUTPUT);
pinMode(ledAmarelo, OUTPUT);
pinMode(ledVerde, OUTPUT);
pinMode(ledCiano, OUTPUT);
dht.begin();
Wire.begin(18, 5);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Iniciando...");
delay(2000);
lcd.clear();
}
void loop() {
float temperatura = dht.readTemperature();
float umidade = dht.readHumidity();
apagaLeds();
Serial.println("________________________________");
// Ambiente muito gelado
if (temperatura < 5) {
digitalWrite(ledCiano, HIGH);
Serial.println("Ambiente muito gelado!");
Serial.println("LED Ciano aceso");
}
// Ambiente gelado
else if (temperatura >= 6 && temperatura < 15) {
digitalWrite(ledVerde, HIGH);
Serial.println("Ambiente gelado!");
Serial.println("LED Verde aceso");
}
// Ambiente fresco
else if (temperatura >= 16 && temperatura < 25) {
digitalWrite(ledAmarelo, HIGH);
Serial.println("Ambiente fresco!");
Serial.println("LED Amarelo aceso");
}
// Ambiente quente
else if (temperatura >= 26 && temperatura < 33) {
digitalWrite(ledLaranja, HIGH);
Serial.println("Ambiente quente!");
Serial.println("LED Laranja aceso");
}
// Ambiente muito quente
else {
digitalWrite(ledVermelho, HIGH);
Serial.println("Ambiente muito quente!");
Serial.println("LED Vermelho aceso");
}
Serial.print("Temperatura: ");
Serial.print(temperatura);
Serial.println(" °C");
Serial.print("Umidade: ");
Serial.print(umidade);
Serial.println(" %");
Serial.println("________________________________");
Serial.println();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(temperatura);
lcd.print((char)223); // Símbolo °
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("Umid: ");
lcd.print(umidade);
lcd.print("%");
delay(300);
}
void apagaLeds() {
digitalWrite(ledVermelho, LOW);
digitalWrite(ledLaranja, LOW);
digitalWrite(ledAmarelo, LOW);
digitalWrite(ledVerde, LOW);
digitalWrite(ledCiano, LOW);
}