// LEDs and PIR sensors
int PIR1 = 23;
int PIR2 = 22;
int PIR3 = 21;
int PIR4 = 19;
int PIR5 = 18;
int LED1 = 13;
int LED2 = 12;
int LED3 = 14;
int LED4 = 15;
int LED5 = 2;
int LED6 = 4;
int LED7 = 5;
int LDR = 27;
// LDR Characteristics
const float GAMMA = 0.7;
const float RL10 = 50;
void setup()
{
Serial.begin(115200);
Serial.println("Smart Street Lighting System");
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(LED6, OUTPUT);
pinMode(LED7, OUTPUT);
pinMode(PIR1, INPUT);
pinMode(PIR2, INPUT);
pinMode(PIR3, INPUT);
pinMode(PIR4, INPUT);
pinMode(PIR5, INPUT);
pinMode(LDR, INPUT);
}
void loop()
{
int LDRValue = analogRead(LDR);
float voltage = LDRValue / 1024. * 5;
float resistance = 2000 * voltage / (1 - voltage / 5);
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));
Serial.print("LDR Sensor = ");
Serial.println(lux);
delay(500);
int motion1 = digitalRead(PIR1);
int motion2 = digitalRead(PIR2);
int motion3 = digitalRead(PIR3);
int motion4 = digitalRead(PIR4);
int motion5 = digitalRead(PIR5);
if (lux > 100)
{
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
Serial.println("It's Bright Outside; Lights status: OFF");
}
else {
if (motion5 == HIGH)
{
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
Serial.println("It's Dark Outside; Motion detected at PIR1");
delay(500);
}
if (motion4 == HIGH)
{
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
Serial.println("It's Dark Outside; Motion detected at PIR2");
delay(500);
}
if (motion3 == HIGH)
{
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
Serial.println("It's Dark Outside; Motion detected at PIR3");
delay(500);
}
if (motion2 == HIGH)
{
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
Serial.println("It's Dark Outside; Motion detected at PIR4");
delay(500);
}
if (motion1 == HIGH)
{
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
Serial.println("It's Dark Outside; Motion detected at PIR5");
delay(500);
}
else if (motion1 == LOW && motion2 == LOW && motion3 == LOW && motion4 == LOW && motion5 == LOW){
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
Serial.println("It's Dark Outside; No Motion detected");
}
}
}