#include "DHT.h"
#define DHTPIN 15 // Pin data DHT22
#define DHTTYPE DHT22 // Tipe sensor DHT22
#define BUZZER_PIN 13 // Pin kontrol buzzer
#define RELAY_PIN 14 // Pin kontrol relay
#define LED_PIN 12 // Pin kontrol LED (jika tidak menggunakan relay untuk LED)
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
pinMode(BUZZER_PIN, OUTPUT);
pinMode(RELAY_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
digitalWrite(BUZZER_PIN, LOW); // Matikan buzzer pada awalnya
digitalWrite(RELAY_PIN, LOW); // Matikan relay pada awalnya
digitalWrite(LED_PIN, LOW); // Matikan LED pada awalnya
dht.begin();
}
void loop() {
// Baca suhu dari DHT22
float temperature = dht.readTemperature();
// Cek jika pembacaan gagal
if (isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// Cetak nilai suhu ke Serial Monitor
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" *C ");
// Aktifkan buzzer, relay, dan LED jika suhu melebihi 30°C
if (temperature > 30) {
Serial.println("Temperature exceeds 30°C - Buzzer ON, Relay ON, LED ON");
tone(BUZZER_PIN, 262, 250); // Frekuensi 262 Hz, durasi 250 ms
digitalWrite(RELAY_PIN, HIGH); // Aktifkan relay
digitalWrite(LED_PIN, HIGH); // Hidupkan LED (jika LED tidak melalui relay)
} else {
Serial.println("Temperature below 30°C - Buzzer OFF, Relay OFF, LED OFF");
noTone(BUZZER_PIN); // Matikan buzzer
digitalWrite(RELAY_PIN, LOW); // Matikan relay
digitalWrite(LED_PIN, LOW); // Matikan LED (jika LED tidak melalui relay)
}
delay(2000); // Tunggu 2 detik sebelum pembacaan berikutnya
}