Académique Documents
Professionnel Documents
Culture Documents
h>
#include <LiquidCrystal_I2C.h>
void sendsmsalchol();
void sendsmsaccident();
void buzzeralert();
#define alchol A0
#define accident A1
#define buzzerp 8
#define buzzern 9
#define seatbelt 13
#include<Wire.h>
void adxl345();
#define enA 5
#define enB 6
#define in1 2
#define in2 3
#define in3 4
#define in4 7
int veh_state = 1;
void Receive_GPS_Data();
void setup()
Serial.begin(9600);
lcd.begin();
lcd.print("Accident Prevention");
lcd.setCursor(40,0);
delay(2000);
lcd.setCursor(0, 0);
delay(500);
Serial.println("AT+CNMI=2,2,0,0,0"); // set module to send SMS data to serial out upon receipt
delay(200);
Serial.println("AT+CMGD=1,4");
Wire.begin();
Serial.begin(9600);
//mygps.begin(9600);
Wire.beginTransmission(Addr);
Wire.write(0x2C);
Wire.write(0x0A);
Wire.endTransmission();
Wire.beginTransmission(Addr);
Wire.write(0x2D);
Wire.write(0x08);
Wire.endTransmission();
Wire.beginTransmission(Addr);
Wire.write(0x31);
Wire.write(0x08);
Wire.endTransmission();
delay(300);
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzerp, OUTPUT);
pinMode(buzzern, OUTPUT);
pinMode(accident, INPUT_PULLUP);
pinMode(seatbelt, INPUT_PULLUP);
pinMode(alchol, INPUT);
lcd.begin();
lcd.print("speed:");
lcd.setCursor(10,0);
lcd.print("100KMPH");
delay(1000);
analogWrite(enA, 255);
analogWrite(enB, 255);
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
void loop()
//*****************************************************
if(digitalRead(accident) == LOW )
lcd.setCursor(0, 0);
lcd.print("Accident Detected");
lcd.setCursor(0, 1);
lcd.print("Vehicle Stopped");
buzzeralert();
analogWrite(enA, 0);
analogWrite(enB, 0);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
delay(500);
sendsmsalchol();
veh_state = 0;
//*******************************************************
if(digitalRead(seatbelt) == HIGH )
lcd.setCursor(0, 0);
lcd.setCursor(0, 1);
lcd.print("Vehicle Stopped");
buzzeralert();
analogWrite(enA, 0);
analogWrite(enB, 0);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
delay(500);
veh_state = 0;
}
//*******************************************************
if(digitalRead(alchol) == LOW )
lcd.setCursor(0, 0);
lcd.print("Alchol Detected");
lcd.setCursor(0, 1);
lcd.print("Vehicle Stopped");
buzzeralert();
analogWrite(enA, 0);
analogWrite(enB, 0);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
delay(500);
sendsmsaccident();
veh_state = 0;
//*****************************************************
adxl345();
Serial.println(xAccl);
Serial.println(yAccl);
Serial.println(zAccl);
delay(300);
lcd.setCursor(0, 0);
lcd.setCursor(0, 1);
lcd.print("Vehicle Stopped");
buzzeralert();
analogWrite(enA, 0);
analogWrite(enB, 0);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
digitalWrite(buzzerp, HIGH);
veh_state = 0;
delay(500);
digitalWrite(buzzerp, LOW);
lcd.setCursor(0, 0);
lcd.setCursor(0, 1);
lcd.print("Vehicle Stopped");
buzzeralert();
analogWrite(enA, 0);
analogWrite(enB, 0);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
veh_state = 0;
digitalWrite(buzzerp, HIGH);
delay(500);
digitalWrite(buzzerp, LOW);
//**********************************************************
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
distance = duration/58.2;
distance = 100;
lcd.begin();
lcd.setCursor(0, 0);
lcd.print("Distance:");
lcd.setCursor(11, 0);
lcd.print(distance);
delay(500);
if(veh_state == 1)
lcd.setCursor(0, 0);
lcd.print("Vehicle Stops: 0KMPH");
analogWrite(enA, 0);
analogWrite(enB, 0);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
delay(1000);
lcd.setCursor(0, 0);
analogWrite(enA, 150);
analogWrite(enB, 150);
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
delay(1000);
if (distance >=40)
lcd.setCursor(0, 0);
analogWrite(enA, 255);
analogWrite(enB, 255);
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
delay(1000);
//*******************************************************
veh_state = 1;
//********************************************************************
//********************************************************************
void sendsmsalchol()
{ lcd.setCursor(0, 0);
Receive_GPS_Data();
delay(1000);
lcd.setCursor(0, 1);
lcd.print("sending sms......");
Serial.println("AT+CMGF=1");
delay(200);
delay(200);
Serial.println("Driver in your vehicle was in drunken so vehicle stopped and track location of
your vehicle with these details below\n");
Serial.print("Latitude : ");
Serial.println(lat);
delay(200);
Serial.println(lg);
delay(200);
Serial.write(26);
lcd.setCursor(0, 1);
Serial.print("SMS Sent...!");
//********************************************************************
void buzzeralert()
digitalWrite(buzzerp, HIGH);
digitalWrite(buzzern, LOW);
delay(500);
digitalWrite(buzzerp, LOW);
digitalWrite(buzzern, LOW);
//********************************************************************
void sendsmsaccident()
lcd.setCursor(0, 0);
Receive_GPS_Data();
delay(1000);
lcd.setCursor(0, 1);
lcd.print("sending sms......");
Serial.println("AT+CMGF=1");
delay(300);
delay(300);
Serial.print("your vechile met with an accident so vehicle stopped and track location of your
vehicle with these details below\n"); //the message you want to send
delay(300);
Serial.print("Latitude : ");
Serial.println(lat);
delay(300);
Serial.println(lg);
delay(300);
Serial.write(26);
lcd.setCursor(0, 1);
delay(500);
//*********************************************************************
void adxl345()
Wire.beginTransmission(Addr);
Wire.write((50 + i));
Wire.endTransmission();
Wire.requestFrom(Addr, 1);
if(Wire.available() == 1)
data[i] = Wire.read();
xAccl -= 1024;
yAccl -= 1024;
zAccl -= 1024;
//*****************************************************************
void Receive_GPS_Data()
while(finish==0){
while(Serial.available()>0)
Gpsdata = Serial.read();
flg = 1;
pos_cnt=1;
pos_cnt=2;
pos_cnt=3;
if( Gpsdata=='R' && pos_cnt == 3)
pos_cnt=4;
pos_cnt=5;
pos_cnt=6;
com_cnt++;
flg=0;
flg=0;
flg=0;
lat_cnt = 0;
log_cnt = 0;
flg = 0;
finish = 1;
lcd.begin();
lcd.print("Lat: ");
lcd.print(lat);
delay(500);
lcd.setCursor(0,1);
lcd.print(lg);
delay(500);
//*****************************************************************************