#include <DHT.h>
#define DHTPIN 2 // Pin untuk sensor DHT11
#define DHTTYPE DHT11 // Tipe sensor (DHT11 atau DHT22)
#define HEATER_PIN 3 // Pin untuk Relay Heater
#define AC_PIN 4 // Pin untuk Relay AC
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(HEATER_PIN, OUTPUT); // Atur pin Heater sebagai output
pinMode(AC_PIN, OUTPUT); // Atur pin AC sebagai output
digitalWrite(HEATER_PIN, LOW); // Matikan Heater pada awalnya
digitalWrite(AC_PIN, LOW); // Matikan AC pada awalnya
}
void loop() {
// Membaca suhu dari sensor
float suhu = dht.readTemperature();
// Mengecek apakah pembacaan suhu berhasil
if (isnan(suhu)) {
Serial.println("Gagal membaca suhu!");
return;
}
// Menampilkan suhu ke Serial Monitor
Serial.print("Suhu: ");
Serial.print(suhu);
Serial.println(" C");
// Logika kontrol
if (suhu < 20) {
// Jika suhu < 20°C, hidupkan Heater dan matikan AC
digitalWrite(HEATER_PIN, HIGH); // Nyalakan Heater
digitalWrite(AC_PIN, LOW); // Matikan AC
}
else if (suhu >= 20 && suhu <= 28) {
// Jika suhu di antara 20°C - 28°C, matikan Heater dan AC
digitalWrite(HEATER_PIN, LOW); // Matikan Heater
digitalWrite(AC_PIN, LOW); // Matikan AC
}
else if (suhu > 28) {
// Jika suhu > 28°C, matikan Heater dan hidupkan AC
digitalWrite(HEATER_PIN, LOW); // Matikan Heater
digitalWrite(AC_PIN, HIGH); // Nyalakan AC
}
// Tunggu 2 detik sebelum membaca suhu lagi
delay(2000);
}