//program code for Street light fault monitor system
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 20
#define LCD_LINES 4
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
//LiquidCrystal_I2C lcd(0x27, 20, 4);
#define BUZZER 16
int ldr1 = 25;
int ldr2 = 26;
int ldr3 = 27;
void setup() {
lcd.init();
lcd.backlight();
pinMode(ldr1, INPUT);
pinMode(ldr2, INPUT);
pinMode(ldr3, INPUT);
pinMode(BUZZER, OUTPUT);
Serial.begin(115200);
}
void loop() {
int data1 = analogRead(ldr1);
Serial.println("ldr1 value=" +String(data1));
int data2 = analogRead(ldr2);
Serial.println("ldr2 value=" +String(data2));
int data3 = analogRead(ldr3);
Serial.println("ldr3 value=" +String(data3));
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("Street Light Fault");
lcd.setCursor(1, 1);
lcd.print("Detection Project");
if(data1 > 1000 && data2 > 1000){
if(data3 > 1000){
Serial.println("All light are fault");
lcd.setCursor(0, 3);
lcd.print("All Lights are Fault");
digitalWrite(BUZZER, HIGH);
}else{
Serial.println("light 1 & 2 fault");
lcd.setCursor(2, 3);
lcd.print("Light 1 & 2 Fault");
digitalWrite(BUZZER, HIGH);
}
}
else if(data2 >1000 && data3 >1000){
if(data1 >1000){
Serial.println("All light are fault");
lcd.setCursor(0, 3);
lcd.print("All Lights are Fault");
digitalWrite(BUZZER, HIGH);
}else{
Serial.println("light 2 & 3 fault");
lcd.setCursor(2, 3);
lcd.print("Light 2 & 3 Fault");
digitalWrite(BUZZER, HIGH);
}
}
else if(data3 >1000 && data1 >1000){
if(data2 >1000){
Serial.println("All light are fault");
lcd.setCursor(0, 3);
lcd.print("All Lights are Fault");
digitalWrite(BUZZER, HIGH);
}else{
Serial.println("light 1 & 3 fault");
lcd.setCursor(2, 3);
lcd.print("Light 1 & 3 Fault");
digitalWrite(BUZZER, HIGH);
}
}
else if(data1 >1000)
{
Serial.println("Light 1 Fault");
lcd.setCursor(3, 3);
lcd.print("Light 1 Fault");
digitalWrite(BUZZER, HIGH);
}
else if (data2 >1000){
Serial.println("Light 2 Fault");
lcd.setCursor(3, 3);
lcd.print("Light 2 Fault");
digitalWrite(BUZZER, HIGH);
}
else if (data3 >1000){
Serial.println("Light 3 Fault");
lcd.setCursor(3, 3);
lcd.print("Light 3 Fault");
digitalWrite(BUZZER, HIGH);
}
else{
Serial.println("NO Fault");
lcd.setCursor(2, 3);
lcd.print("No Fault ocuured");
digitalWrite(BUZZER, LOW);
}
delay(6000);
}