#include <DHT.h> // Biblioteca para o sensor DHT
#include <LiquidCrystal_I2C.h> // Biblioteca para o display LCD I2C
#define DHTPIN 13 // Pino onde o sensor DHT está conectado
#define DHTTYPE DHT22 // Tipo de sensor DHT (DHT22)
DHT dht(DHTPIN, DHTTYPE); // Inicializa o sensor DHT
LiquidCrystal_I2C lcd(0x27, 16, 2); // Inicializa o display LCD no endereço 0x27 com 16 colunas e 2 linhas
void setup() {
Serial.begin(9600); // Inicia a comunicação serial
dht.begin(); // Inicia o sensor DHT
pinMode(27, OUTPUT); // LED Verde
pinMode(26, OUTPUT); // LED Amarelo
pinMode(25, OUTPUT); // LED Vermelho
lcd.init(); // Inicializa o display LCD
lcd.backlight(); // Liga a luz de fundo do display LCD
}
void loop() {
delay(5000); // Aguarda 5 segundos entre as leituras
lcd.setCursor(0, 0); // Define o cursor na primeira linha do display
float t = dht.readTemperature(); // Lê a temperatura do sensor DHT
lcd.print("Temperature"); // Exibe "Temperatura" na primeira linha do display
lcd.setCursor(0, 1); // Define o cursor na segunda linha do display
lcd.print(t, 1); // Exibe a temperatura com uma casa decimal
lcd.print(" "); // Adiciona um espaço
lcd.print((char)223); // Exibe o símbolo de grau
lcd.print("C"); // Exibe "C" para Celsius
// Controle dos LEDs baseado na temperatura
if (t < 20) { // Acende o LED Azul
digitalWrite(27, HIGH);
digitalWrite(26, LOW);
digitalWrite(25, LOW);
} else if (t >= 20 && t <=30) { // Acende o LED Amarelo
digitalWrite(27, LOW);
digitalWrite(26, HIGH);
digitalWrite(25, LOW);
} else if (t > 30) { // Acende o LED Vermelho
digitalWrite(27, LOW);
digitalWrite(26, LOW);
digitalWrite(25, HIGH);
}
// Exibe a temperatura no monitor serial
Serial.print(F("Temperature: "));
Serial.print(t);
Serial.println(F("°C "));
}