#include <DHT.h>
// Pin sensor DHT dan jenis sensor yang digunakan
#define DHTPIN 7 // Pin untuk sensor DHT11
#define DHTTYPE DHT11 // DHT11 atau DHT22
// Pin kontrol untuk Relay (simulasi kipas dan pemanas)
#define FAN_PIN 8 // Pin untuk kontrol kipas (simulasi dengan LED)
#define HEATER_PIN 9 // Pin untuk kontrol pemanas (simulasi dengan LED)
// Ambang batas suhu (Wikwok)
#define MAX_TEMP 30.0 // Suhu maksimal untuk menyalakan kipas
#define MIN_TEMP 20.0 // Suhu minimal untuk menyalakan pemanas
// Membuat objek untuk sensor DHT
DHT dht(DHTPIN, DHTTYPE);
void setup() {
// Memulai komunikasi serial
Serial.begin(9600);
// Mulai sensor DHT
dht.begin();
// Set pin kontrol kipas dan pemanas sebagai OUTPUT
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
// Pastikan kipas dan pemanas mati saat program dimulai
digitalWrite(8, LOW);
digitalWrite(9, LOW);
}
void loop() {
// Menunggu 2 detik sebelum membaca data lagi
delay(2000);
// Membaca suhu dalam Celsius
float suhu = dht.readTemperature();
// Mengecek apakah pembacaan suhu atau kelembapan gagal
if (isnan(suhu)) {
Serial.println("Gagal membaca sensor DHT!");
return;
}
// Menampilkan suhu dan kelembapan di serial monitor
Serial.print("Suhu: ");
Serial.print(suhu);
Serial.print(" °C\t");
// Mengatur kipas berdasarkan suhu (simulasi dengan LED)
if (suhu > MAX_TEMP) {
// Jika suhu lebih dari 30°C, nyalakan kipas (LED)
digitalWrite(8, HIGH);
Serial.println("Kipas ON");
} else {
// Jika suhu <= 30°C, matikan kipas (LED)
digitalWrite(8, LOW);
Serial.println("Kipas OFF");
}
// Mengatur pemanas berdasarkan suhu (simulasi dengan LED)
if (suhu < MIN_TEMP) {
// Jika suhu kurang dari 20°C, nyalakan pemanas (LED)
digitalWrite(9, HIGH);
Serial.println("Pemanas ON");
} else {
// Jika suhu >= 20°C, matikan pemanas (LED)
digitalWrite(9, LOW);
Serial.println("Pemanas OFF");
}
}