Vous êtes sur la page 1sur 16

EEP 211 DESIGN LAB ProjEct.

ROAD ACCIDENT EMERGENCY ALERT SYSTEM

Submitted by: Siddhartha Das Avnish Kumar Nirupam Gupta. Ankit Chandawala. Arun Khurana.

The Idea

A few seconds of early medical help can be crucial to a persons life when he has met with a fatal vehicular accident. Many times across news that people who suffer accident failed to get proper medical help because the accident took place in a remote area or because his/her identification and medical background was not available to the authorities. We aim to rectify this by proposing an automatic system where as soon as a person meets with an accident in his vehicle (two/four wheeler), a message indicating the coordinates of the accident site and his identification (name, blood group etc.) is sent to the nearest hospital and police station from the accident site.

Design
The aim is to create an automatic system to detect an accident and consequently triggering a chain of events which will lead to an info message to alert the authorities and to take appropriate actions. This will prevent late response and immediate help to the victim.

Methodology
Each vehicle will have a GPS Module and a collision detecting system. We plan to detect the collision using Accelerometer. As soon as the collision occurs, GPS is used to find the exact location in terms of latitude and longitude. A message is created containing the location(in terms of longitude and latitude) as well as details like blood group, persons identification and contact details of a relative that were stored in the system beforehand. This message is sent to the nearest police station and hospital that have receivers. Another message is sent to a relative regarding the location. Here we thought of using a GSM module for long distance communication but due to cost constraint, we used a Bluetooth Module to show the basic idea of wireless communication which we wanted to bring to the fore. As a result of this change, we made a Mobile Application which would take the co-ordinate data from the GPS Module through the Bluetooth Module and use the persons phone to send it to the concerned authorities.

Step 1 Step 2 Step 3

Accelerometer detects the change in acceleration of the vehicle as soon as the collision occurs GPS is used to find the exact location in terms of latitude and longitude.

A message is created containing the location as well as details like blood group, persons identification and contact details of a relative that were stored in the system beforehand. Using Java Micro Edition, we designed an application to create a link between the client and the server.

This message is sent to the nearest police station and hospital that have receivers. Another message is sent to a relative regarding the location.

Components Used. 1. Our Micro Controller-Arduino Atmega 2560

Operating Voltage Input Voltage (recommended) Input Voltage (limits) Digital I/O Pins Analog Input Pins DC Current per I/O Pin DC Current for 3.3V Pin Flash Memory SRAM EEPROM Clock Speed

5V 7-12V 6-20V 54 (of which 14 provide PWM output) 16 40 mA 50 mA 256 KB of which 8 KB used by bootloader 8 KB 4 KB 16 MHz

2. 9 Degrees of Freedom - Razor IMU - AHRS compatible

Features: 9 Degrees of Freedom on a single, flat board: LY530ALH - 300/s single-axis gyro LPR530ALH - 300/s dual-axis gyro ADXL345 - 13-bit resolution, 16g, triple-axis accelerometer HMC5843 - triple-axis, digital magnetometer Outputs of all sensors processed by on-board ATmega328 and sent out via a serial stream Auto run feature (hit 'Ctrl-z') and help menu integrated into the example firmware Output pins match up with FTDI Basic Breakout, Bluetooth Mate, XBee Explorer 3.5-16VDC input ON-OFF control switch and reset switch Dimensions: 1.95 x 1.10 " (49.53 x 27.94 mm)

3.

GPS Receiver MT3318 Module

Specifications Supply: 3.3V, 45mA Chipset: MTK MT3318 Antenna: High gain GPS patch antenna from Cirocomm Data output: CMOS UART interface at 3.3V Protocol: NMEA-0183@9600bps (Default) at update rate of 1 second. Protocol message support: GGA, GSA, RMC, VTG No. of Satellite simultaneously tracked: 51 Tracking Sensitivity: On-module antenna : -157 dBm Position Accuracy : <3 m Max. Update Rate5Hz (Default: 1 Hz) Time to First Fix (Open sky and stationary position) o Obscuration recovery: 0.1 second average Hot start: <1 seconds average o Warm start: <34 seconds average Cold start: <36 seconds average
o o

NMEA PROTOCOL

NMEA is a standard protocol, use by GPS receivers to transmit data. NMEA output is EIA-422A but for most purposes you can consider it RS232 compatible. Use 4800 bps, 8 data bits, no parity and one stop bit ( 8N1 ). NMEA 0183 sentences are all ASCII. Each sentence begins with a dollar sign ($) and ends with a carriage return linefeed (<CR><LF>). Data is comma delimited. All commas must be included as they act as markers. Some GPS do not send some of the fields. A checksum is optionally added (in a few cases it is mandatory). Following the $ is the address field aaccc. aa is the device id. GP is used to identify GPS data. Transmission of the device ID is usually optional. ccc is the sentence formatter, otherwise known as the sentence name.

4.

Bluetooth Modem - BlueSMiRF Gold

Specifications:
FCC Approved Class 1 Bluetooth Radio Modem Extremely small radio - 0.15x0.6x1.9" Very robust link both in integrity and transmission distance (100m) - no more buffer overruns! Low power consumption : 25mA avg Hardy frequency hopping scheme - operates in harsh RF environments like WiFi, 802.11g, and Zigbee Encrypted connection Frequency: 2.4~2.524 GHz Operating Voltage: 3.3V-6V Serial communications: 2400-115200bps Operating Temperature: -40 ~ +70C Built-in antenna Dimensions: 51.5x15.8x5.6mm

5.

Mobile Application

A MIDlet is an application that uses the Mobile Information Device Profile (MIDP) of the Connected Limited Device Configuration (CLDC) for the Java ME environment. The MIDlet must contain a class that extends the javax.microedition.midlet.MIDlet class MIDlets are packaged together in suites inside a .jar file with a Manifest file indicating which classes implement which MIDlet. As well as the Java classes, the .jar file can contain other resources such as images or sound files. A .jad file contains the location of the .jar as well as the list of MIDlets in the suite and other attributes.

The Methodology in Pictures!!

The Circuit:

The Output

Here we see the output of the system. In the hyper terminal, we see the values of latitudes and longitudes sent by the GPS Module and when we feed the values in Google maps, we are able to see that the location of the place from where the GPS module has sent the values. Also, at the terminal we see the values sent by the Bluetooth module.

Attached is the Arduino Code:


#include <string.h> #include <ctype.h> int ledPin = 13; // LED test pin int rxPin = 0; // RX PIN int txPin = 1; // TX TX int byteGPS=-1; // int byteACC=-1; char linea[300] = ""; char comandoGPR[7] = "$GPRMC"; int cont=0; int bien=0; int conta=0; int trigger=22; int indices[13]; void setup() { pinMode(ledPin, OUTPUT); // Initialize LED pin pinMode(rxPin, INPUT); pinMode(txPin, OUTPUT); pinMode(trigger,INPUT); Serial.begin(9600); Serial1.begin(9600); Serial2.begin(9600); Serial1.read(); for (int i=0;i<300;i++){ // Initialize a buffer for received data linea[i]=' '; } } void loop() { digitalWrite(ledPin, HIGH); byteGPS=Serial1.read(); if(digitalRead(trigger)==HIGH) { if (byteGPS == -1) { // See if the port is empty yet delay(100); } else { linea[conta]=byteGPS; // If there is serial port data, it is put in the buffer conta++; Serial.print(byteGPS, BYTE); Serial2.print(byteGPS,BYTE); if (byteGPS==13){ // If the received byte is = to 13, end of transmission

digitalWrite(ledPin, LOW); cont=0; bien=0; for (int i=1;i<7;i++){ // Verifies if the received command starts with $GPR if (linea[i]==comandoGPR[i-1]){ bien++; } } if(bien==6){ // If yes, continue and process the data for (int i=0;i<300;i++){ if (linea[i]==','){ // check for the position of the "," separator indices[cont]=i; cont++; } if (linea[i]=='*'){ // ... and the "*" indices[12]=i; cont++; } }
Serial.println(""); // ... and write to the serial port Serial.println(""); Serial.println("---------------"); for (int i=0;i<12;i++){ switch(i){ case 0 : Serial.print("Time in UTC (HhMmSs): "); Serial2.print("Time in UTC (HhMmSs): "); break; case 1 : Serial.print("Status (A=OK,V=KO): "); Serial2.print("Status (A=OK,V=KO): "); break; case 2 : Serial.print("Latitude: "); Serial2.print("Latitude: "); break; case 3 : Serial.print("Direction (N/S): "); Serial2.print("Direction (N/S): "); break; case 4 : Serial.print("Longitude: "); Serial2.print("Longitude: "); break; case 5 :

Serial.print("Direction (E/W): "); Serial2.print("Direction (E/W): "); break; case 6 : Serial.print("Velocity in knots: "); Serial2.print("Velocity in knots: "); break; case 7 : Serial.print("Heading in degrees: "); Serial2.print("Heading in degrees: "); break; case 8 : Serial.print("Date UTC (DdMmAa): "); Serial2.print("Date UTC (DdMmAa): "); break; case 9 : Serial.print("Magnetic degrees: "); Serial2.print("Magnetic degrees: "); break; case 10 : Serial.print("(E/W): "); Serial2.print("(E/W): "); break; case 11 : Serial.print("Mode: "); Serial2.print("Mode: "); break; case 12 : Serial.print("Checksum: "); Serial2.print("Checksum: "); break; }

for (int j=indices[i];j<(indices[i+1]-1);j++){ Serial.print(linea[j+1]); Serial2.print(linea[j+1]); } Serial.println(""); Serial2.println(""); } Serial.println("---------------");

Serial2.println("---------------"); } conta=0; // Reset the buffer for (int i=0;i<300;i++){ // linea[i]=' '; } } } } else{ delay(50); } }

Vous aimerez peut-être aussi