#include <DHTesp.h>

#define DHT_PIN 5      // Pin data sensor DHT22
#define RAIN_SENSOR_PIN 4  // Pin sensor hujan
#define LIGHT_CONTROL_PIN 2  // Pin untuk menghidupkan/mematikan lampu
#define WINDOW_CONTROL_PIN 14  // Pin untuk membuka/menutup jendela

DHTesp dht;  // Objek DHTesp

void setup() {
  Serial.begin(115200);
  pinMode(RAIN_SENSOR_PIN, INPUT);
  pinMode(LIGHT_CONTROL_PIN, OUTPUT);
  pinMode(WINDOW_CONTROL_PIN, OUTPUT);
  
  dht.setup(DHT_PIN, DHTesp::DHT22);  // Inisialisasi sensor DHT22
}

void loop() {
  // Baca suhu dan kelembaban dari sensor DHT22
  float temperature = dht.getTemperature();
  float humidity = dht.getHumidity();

  // Baca status sensor hujan
  int rainSensorValue = digitalRead(RAIN_SENSOR_PIN);

  // Tampilkan informasi suhu dan kelembaban
  Serial.print("Suhu saat ini: ");
  Serial.print(temperature);
  Serial.println(" °C");
  
  Serial.print("Kelembaban saat ini: ");
  Serial.print(humidity);
  Serial.println(" %");

  // Tampilkan status sensor hujan
  if (rainSensorValue == HIGH) {
    Serial.println("Hujan, sebaiknya jangan menjemur pakaian.");
    // Tindakan saat hujan (misalnya, matikan lampu, tutup jendela)
    digitalWrite(LIGHT_CONTROL_PIN, LOW);
    digitalWrite(WINDOW_CONTROL_PIN, HIGH);
  } else {
    Serial.println("Cuaca cerah, Anda dapat menjemur pakaian.");
    // Tindakan saat cuaca cerah (misalnya, hidupkan lampu, buka jendela)
    digitalWrite(LIGHT_CONTROL_PIN, HIGH);
    digitalWrite(WINDOW_CONTROL_PIN, LOW);
  }

  delay(5000);  // Tunda pembacaan selama 5 detik
}