#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define buzzer 12
DHT dht (25, DHT22);
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
dht.begin();
lcd.init();
lcd.backlight();
pinMode(buzzer, OUTPUT);
}
void loop() {
//lê a temperatura e umidade
float h = dht.readHumidity();
float t = dht.readTemperature();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print ("temp "); lcd.print(t); lcd.print(" C");
lcd.setCursor(0, 1);
lcd.print("Hum : "); lcd.print(h); lcd.print(" %");
//verifica as condições e aciona o buzzer
if (t > 35 && h < 30){
tone (buzzer, 1000); //alarme contínuo
}
else if (t > 30 || h < 40){
static unsigned long previousMillis = 0;
long interval = 5000; // intervalo de 5 segundos
if (millis() - previousMillis >= interval ){
previousMillis = millis();
tone (buzzer, 1000);
delay(500);
noTone(buzzer);
}
} else {
noTone(buzzer);
}
delay(2000); //atualiza a leitur a cada dois segundos
}