pinMode(RELAY_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
// Start DHT sensor
dht.begin();
// Initialize states
digitalWrite(RELAY_PIN, LOW); // Relay OFF initially
digitalWrite(LED_PIN, LOW); // LED OFF initially
Serial.println("System Initialized");
}
void loop() {
// Read PIR sensor
int motion = digitalRead(PIR_PIN);
// Read DHT22 data
float temp = dht.readTemperature();
float humidity = dht.readHumidity();
// Display DHT22 values
if (!isnan(temp) && !isnan(humidity)) {
Serial.print("Temperature: ");
Serial.print(temp);
Serial.print(" C, Humidity: ");
Serial.print(humidity);
Serial.println(" %");
} else {
Serial.println("Failed to read from DHT sensor!");
}
// If motion detected, turn on relay and LED
if (motion == HIGH) {
Serial.println("Motion detected!");
digitalWrite(RELAY_PIN, HIGH); // Turn ON relay
digitalWrite(LED_PIN, HIGH); // Turn ON LED
delay(3000); // Keep it ON for 3 seconds
} else {
digitalWrite(RELAY_PIN, LOW); // Turn OFF relay
digitalWrite(LED_PIN, LOW); // Turn OFF LED
}
delay(1000); // Delay to avoid false readings
}