#include <DHT.h>
#define DHT_PIN 21
#define LED_PIN 22
#define BUZZER_PIN 23
#define BUTTON_PIN 4
#define DHT_TYPE DHT22
#define BUZZER_FREQUENCY 100
DHT dht(DHT_PIN, DHT_TYPE);
bool buzzerActive = true;
void setup() {
Serial.begin(9600);
pinMode(LED_PIN, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
pinMode(BUTTON_PIN, INPUT_PULLUP);
dht.begin();
}
void loop() {
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
if (isnan(temperature) || isnan(humidity)) {
Serial.println("Gagal Membaca Sensor DHT!");
return;
}
Serial.printf("Suhu: %.2f °C\nKelembapan: %.2f %%\n", temperature, humidity);
bool conditionMet = temperature > 20 || humidity > 80;
digitalWrite(LED_PIN, conditionMet ? HIGH : LOW);
if (conditionMet) {
buzzerActive ? tone(BUZZER_PIN, BUZZER_FREQUENCY) : noTone(BUZZER_PIN);
Serial.println(buzzerActive ? "Lampu Nyala\nBuzzer Nyala" : "");
} else {
noTone(BUZZER_PIN);
}
if (digitalRead(BUTTON_PIN) == LOW) {
buzzerActive = !buzzerActive;
Serial.println(buzzerActive ? "Buzzer Aktif" : "Buzzer Mati");
delay(200);
}
delay(1000);
}