#include <DHT.h>
#include <Servo.h>
#define DHTPIN 2 // Pin untuk sensor DHT
#define DHTTYPE DHT22 // Tipe sensor DHT
#define RELAY_PIN 3 // Pin untuk relay pemanas
#define FAN_PIN 4 // Pin untuk relay kipas
#define SERVO_PIN 9 // Pin untuk motor servo
DHT dht(DHTPIN, DHTTYPE);
Servo eggTurner;
const float setPointTemp = 37.5; // Suhu ideal dalam derajat Celsius
const float setPointHum = 60.0; // Kelembaban ideal dalam persentase
void setup() {
pinMode(RELAY_PIN, OUTPUT);
pinMode(FAN_PIN, OUTPUT);
eggTurner.attach(SERVO_PIN);
dht.begin();
Serial.begin(9600);
}
void loop() {
float temp = dht.readTemperature();
float hum = dht.readHumidity();
Serial.print("Suhu: ");
Serial.print(temp);
Serial.print(" °C, Kelembaban: ");
Serial.print(hum);
Serial.println(" %");
if (temp < setPointTemp) {
digitalWrite(RELAY_PIN, HIGH); // Nyalakan pemanas
} else {
digitalWrite(RELAY_PIN, LOW); // Matikan pemanas
}
if (hum < setPointHum) {
digitalWrite(FAN_PIN, LOW); // Matikan kipas
} else {
digitalWrite(FAN_PIN, HIGH); // Nyalakan kipas
}
static unsigned long lastTurnTime = 0;
unsigned long currentTime = millis();
if (currentTime - lastTurnTime >= 4 * 60 * 60 * 1000) { // Balik setiap 4 jam
eggTurner.write(eggTurner.read() == 0 ? 180 : 0); // Balik telur
lastTurnTime = currentTime;
}
delay(2000); // Tunda 2 detik sebelum membaca ulang sensor
}