#include <DHT.h>
const int DHT_PIN = 4; // Pin data DHT22
#define DHTTYPE DHT22 // Tipe sensor DHT22
#define HEATER 18 // Pin relay pemanas
DHT dht(DHT_PIN, DHTTYPE);
// Parameter suhu dan kelembapan untuk mengaktifkan pemanas
const float tempMin = 60.0; // Suhu minimum untuk menghidupkan pemanas (derajat Celsius)
const float tempMax = 75.0; // Suhu maksimum untuk mematikan pemanas (derajat Celsius)
const float humMax = 50.0; // Kelembapan maksimum untuk menghidupkan pemanas (%)
void setup() {
Serial.begin(115200);
dht.begin();
pinMode(HEATER, OUTPUT);
digitalWrite(HEATER, LOW); // Pastikan pemanas awalnya mati
}
void loop() {
float temperature = dht.readTemperature(); // Baca suhu dalam Celsius
float humidity = dht.readHumidity(); // Baca kelembapan
// Cek apakah sensor bekerja
if (isnan(temperature) || isnan(humidity)) {
Serial.println("Gagal membaca dari sensor DHT!");
return;
}
Serial.print("Suhu: ");
Serial.print(temperature);
Serial.print("°C | Kelembapan: ");
Serial.print(humidity);
Serial.println("%");
// Logika kontrol pemanas
if (temperature < tempMin || humidity > humMax) {
digitalWrite(HEATER, HIGH); // Nyalakan pemanas
Serial.println("Pemanas AKTIF");
} else if (temperature >= tempMax) {
digitalWrite(HEATER, LOW); // Matikan pemanas jika suhu sudah cukup
Serial.println("Pemanas NONAKTIF");
}
delay(2000); // Tunggu 2 detik sebelum membaca ulang
}