#include <DHT.h>
#include <ESP32Servo.h>
#define DHTPIN 4 // DHT22 sensor connected to ESP32 GPIO4
#define DHTTYPE DHT22 // DHT sensor type
#define LDR_PIN 34 // LDR sensor connected to analog pin 34
#define LED_PIN 5 // LED as streetlight on GPIO5
#define RELAY_PIN 18 // Relay module for fan on GPIO18
#define SERVO_PIN 19 // Servo motor for fan on GPIO19
DHT dht(DHTPIN, DHTTYPE);
Servo fan; // Servo as a fan
void setup() {
Serial.begin(115200);
dht.begin();
pinMode(LED_PIN, OUTPUT);
pinMode(RELAY_PIN, OUTPUT);
fan.attach(SERVO_PIN);
fan.write(0); // Start fan in OFF position
}
void loop() {
float temperature = dht.readTemperature();
int ldrValue = analogRead(LDR_PIN);
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print("°C | LDR Value: ");
Serial.println(ldrValue);
// Automatic Street Light Logic
if (ldrValue > 2000) { // Adjust this threshold as per light conditions
digitalWrite(LED_PIN, HIGH); // Turn ON light in darkness
} else {
digitalWrite(LED_PIN, LOW); // Turn OFF light in daylight
}
// Smart Air Conditioning Logic
if (temperature > 30) {
digitalWrite(RELAY_PIN, HIGH); // Turn ON fan
fan.write(90); // Rotate fan (servo position)
} else {
digitalWrite(RELAY_PIN, LOW); // Turn OFF fan
fan.write(0); // Stop fan
}
delay(2000); // Delay to avoid excessive sensor reads
}