#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
String stat="Accident_Detected";
String stat2="Accident_not_Detected";
void setup() {
for(int i=2;i<13;i++){
pinMode(i, OUTPUT);
}
Serial.begin(9600);
}
void loop() {
String msg = Serial.readStringUntil('\n');
Serial.print("STATUS:");
Serial.println(msg);
if(msg.equals(stat))
{
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Accident flagged");
lcd.setCursor(0,1);
lcd.print("Take other way");
delay(1000);
}
else if(msg.equals(stat2))
{
lcd.clear();
lcd.noBacklight();
}
//red
digitalWrite(10, HIGH);
digitalWrite(2, LOW);//4
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(9, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
msg = Serial.readStringUntil('\n');
Serial.print("STATUS:");
Serial.println(msg);
if(msg.equals(stat))
{
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Accident flagged");
lcd.setCursor(0,1);
lcd.print("Take other way");
}
else if(msg.equals(stat2))
{
lcd.clear();
lcd.noBacklight();
}
delay(1000);
digitalWrite(6, LOW);//3
digitalWrite(7, LOW);
digitalWrite(9, LOW);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(8, HIGH);
msg = Serial.readStringUntil('\n');
Serial.print("STATUS:");
Serial.println(msg);
if(msg.equals(stat))
{
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Accident flagged");
lcd.setCursor(0,1);
lcd.print("Take other way");
}
else if(msg.equals(stat2))
{
lcd.clear();
lcd.noBacklight();
}
delay(1000);
digitalWrite(4, LOW);//2
digitalWrite(7, LOW);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(9, LOW);
digitalWrite(8, HIGH);
msg = Serial.readStringUntil('\n');
Serial.print("STATUS:");
Serial.println(msg);
if(msg.equals(stat))
{
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Accident flagged");
lcd.setCursor(0,1);
lcd.print("Take other way");
}
else if(msg.equals(stat2))
{
lcd.clear();
lcd.noBacklight();
}
delay(1000);
digitalWrite(2, LOW);//1
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
msg = Serial.readStringUntil('\n');
Serial.print("STATUS:");
Serial.println(msg);
if(msg.equals(stat))
{
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Accident flagged");
lcd.setCursor(0,1);
lcd.print("Take other way");
}
else if(msg.equals(stat2))
{
lcd.clear();
lcd.noBacklight();
}
delay(1000);
digitalWrite(8, LOW);//0
digitalWrite(9, LOW);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
msg = Serial.readStringUntil('\n');
Serial.print("STATUS:");
Serial.println(msg);
if(msg.equals(stat))
{
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Accident flagged");
lcd.setCursor(0,1);
lcd.print("Take other way");
}
else if(msg.equals(stat2))
{
lcd.clear();
lcd.noBacklight();
}
delay(1000);
digitalWrite(10, LOW);
delay(100);
//yellow
digitalWrite(11, HIGH);
digitalWrite(4, LOW);//2
digitalWrite(7, LOW);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(9, LOW);
digitalWrite(8, HIGH);
msg = Serial.readStringUntil('\n');
Serial.print("STATUS:");
Serial.println(msg);
if(msg.equals(stat))
{
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Accident flagged");
lcd.setCursor(0,1);
lcd.print("Take other way");
}
else if(msg.equals(stat2))
{
lcd.clear();
lcd.noBacklight();
}
delay(1000);
digitalWrite(2, LOW);//1
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
msg = Serial.readStringUntil('\n');
Serial.print("STATUS:");
Serial.println(msg);
if(msg.equals(stat))
{
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Accident flagged");
lcd.setCursor(0,1);
lcd.print("Take other way");
}
else if(msg.equals(stat2))
{
lcd.clear();
lcd.noBacklight();
}
delay(1000);
digitalWrite(8, LOW);//0
digitalWrite(9, LOW);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
msg = Serial.readStringUntil('\n');
Serial.print("STATUS:");
Serial.println(msg);
if(msg.equals(stat))
{
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Accident flagged");
lcd.setCursor(0,1);
lcd.print("Take other way");
}
else if(msg.equals(stat2))
{
lcd.clear();
lcd.noBacklight();
}
delay(1000);
digitalWrite(11, LOW);
delay(100);
//green
digitalWrite(12, HIGH);
digitalWrite(6, LOW);//3
digitalWrite(7, LOW);
digitalWrite(9, LOW);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(8, HIGH);
msg = Serial.readStringUntil('\n');
Serial.print("STATUS:");
Serial.println(msg);
if(msg.equals(stat))
{
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Accident flagged");
lcd.setCursor(0,1);
lcd.print("Take other way");
}
else if(msg.equals(stat2))
{
lcd.clear();
lcd.noBacklight();
}
delay(1000);
digitalWrite(4, LOW);//2
digitalWrite(7, LOW);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(9, LOW);
digitalWrite(8, HIGH);
msg = Serial.readStringUntil('\n');
Serial.print("STATUS:");
Serial.println(msg);
if(msg.equals(stat))
{
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Accident flagged");
lcd.setCursor(0,1);
lcd.print("Take other way");
}
else if(msg.equals(stat2))
{
lcd.clear();
lcd.noBacklight();
}
delay(1000);
digitalWrite(2, LOW);//1
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
msg = Serial.readStringUntil('\n');
Serial.print("STATUS:");
Serial.println(msg);
if(msg.equals(stat))
{
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Accident flagged");
lcd.setCursor(0,1);
lcd.print("Take other way");
}
else if(msg.equals(stat2))
{
lcd.clear();
lcd.noBacklight();
}
delay(1000);
digitalWrite(8, LOW);//0
digitalWrite(9, LOW);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
msg = Serial.readStringUntil('\n');
Serial.print("STATUS:");
Serial.println(msg);
if(msg.equals(stat))
{
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Accident flagged");
lcd.setCursor(0,1);
lcd.print("Take other way");
}
else if(msg.equals(stat2))
{
lcd.clear();
lcd.noBacklight();
}
delay(1000);
digitalWrite(12, LOW);
delay(100);
//yellow
digitalWrite(11, HIGH);
digitalWrite(4, LOW);//2
digitalWrite(7, LOW);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(9, LOW);
digitalWrite(8, HIGH);
msg = Serial.readStringUntil('\n');
Serial.print("STATUS:");
Serial.println(msg);
if(msg.equals(stat))
{
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Accident flagged");
lcd.setCursor(0,1);
lcd.print("Take other way");
}
else if(msg.equals(stat2))
{
lcd.clear();
lcd.noBacklight();
}
delay(1000);
digitalWrite(2, LOW);//1
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
msg = Serial.readStringUntil('\n');
Serial.print("STATUS:");
Serial.println(msg);
if(msg.equals(stat))
{
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Accident flagged");
lcd.setCursor(0,1);
lcd.print("Take other way");
}
else if(msg.equals(stat2))
{
lcd.clear();
lcd.noBacklight();
}
delay(1000);
digitalWrite(8, LOW);//0
digitalWrite(9, LOW);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
msg = Serial.readStringUntil('\n');
Serial.print("STATUS:");
Serial.println(msg);
if(msg.equals(stat))
{
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Accident flagged");
lcd.setCursor(0,1);
lcd.print("Take other way");
}
else if(msg.equals(stat2))
{
lcd.clear();
lcd.noBacklight();
}
delay(1000);
digitalWrite(11, LOW);
delay(100);
}