#include <DHT.h>
// Declare output pins
int redLight = 32;
int greenLight = 33;
int Siren = 17; // Buzzer
int Fan = 26;
int motionSensor = 23;
int doorClosed = 24; // Assuming doorClosed is connected to pin 24
int motionSensor_value = 0;
int doorClosed_value = 0;
const int fan_Pin = 18;
// Define DHT sensor
#define DHTPIN 22
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
Serial.println("Hello, ESP32!");
pinMode(redLight, OUTPUT);
pinMode(greenLight, OUTPUT);
pinMode(Siren, OUTPUT); // Buzzer
pinMode(Fan, OUTPUT);
pinMode(motionSensor, INPUT);
pinMode(doorClosed, INPUT);
// Initialize DHT sensor
dht.begin();
}
void loop() {
// Read motion sensor value
motionSensor_value = digitalRead(motionSensor);
// Read door closed status
doorClosed_value = digitalRead(doorClosed);
// Read temperature and humidity from DHT22
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// Display probabilities based on conditions
if (motionSensor_value == LOW) {
// No motion
digitalWrite(greenLight, HIGH);
digitalWrite(redLight, LOW);
digitalWrite(Fan, LOW);
digitalWrite(Siren, LOW);
if (temperature >= 27) {
digitalWrite(Fan, HIGH); // Turn on fan when temperature reaches 27 degrees Celsius
}
} else {
// Motion detected
digitalWrite(greenLight, LOW);
digitalWrite(redLight, HIGH);
if (temperature >= 27) {
digitalWrite(Fan, HIGH);
digitalWrite(Siren, HIGH); // Turn on buzzer when door is closed
} else {
digitalWrite(Siren, LOW);
}
}
// Display output in Serial Monitor
Serial.print("Motion: ");
Serial.print(motionSensor_value == HIGH ? "Detected" : "Not Detected");
Serial.print(", Temperature: ");
Serial.print(temperature);
Serial.print(" °C, Door Closed: ");
Serial.println(doorClosed_value == HIGH ? "Yes" : "No");
delay(1000); // Adjust delay as needed for your requirements
}