#include "DHT.h"
// Pin Definitions
#define DHTPIN 2 // Pin data DHT sensor terhubung
#define DHTTYPE DHT22 // Pilih tipe sensor: DHT11 atau DHT22
#define RELAY_LED_PIN 3 // Pin untuk relay dan LED (satu pin)
#define BUZZER_PIN 4 // Pin untuk buzzer
DHT dht(DHTPIN, DHTTYPE);
void setup() {
pinMode(RELAY_LED_PIN, OUTPUT); // Relay dan LED menggunakan pin yang sama
pinMode(BUZZER_PIN, OUTPUT); // Buzzer menggunakan pin terpisah
Serial.begin(9600);
dht.begin();
}
void loop() {
// Membaca suhu dan kelembapan dari sensor DHT
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// Mengecek apakah sensor berfungsi dengan baik
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Gagal membaca dari sensor DHT!");
return;
}
// Menampilkan nilai suhu dan kelembapan di Serial Monitor
Serial.print("Kelembapan: ");
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Suhu: ");
Serial.print(temperature);
Serial.println(" *C");
// Logika untuk mengaktifkan relay, LED, dan buzzer
if (temperature > 30) { // Jika suhu lebih dari 30°C
digitalWrite(RELAY_LED_PIN, HIGH); // Nyalakan relay dan LED
tone(BUZZER_PIN, 1000); // Nyalakan buzzer pasif dengan frekuensi 1000 Hz
Serial.println("Relay, LED, dan Buzzer Aktif (Suhu Tinggi)");
} else {
digitalWrite(RELAY_LED_PIN, LOW); // Matikan relay dan LED
noTone(BUZZER_PIN); // Matikan buzzer pasif
Serial.println("Relay, LED, dan Buzzer Mati (Suhu Normal)");
}
// Tunggu beberapa detik sebelum pembacaan berikutnya
delay(2000);
}