0% found this document useful (0 votes)
93 views4 pages

Vehicle Tracking

This document contains code for a vehicle tracking system using an Arduino, GPS module, and GSM module. It initializes the hardware, sets up serial communication with the GPS, continuously monitors the GPS for location updates, and sends an SMS alert with the vehicle's current latitude and longitude coordinates when tracking is triggered via a serial command.

Uploaded by

Sushil Lamsal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
93 views4 pages

Vehicle Tracking

This document contains code for a vehicle tracking system using an Arduino, GPS module, and GSM module. It initializes the hardware, sets up serial communication with the GPS, continuously monitors the GPS for location updates, and sends an SMS alert with the vehicle's current latitude and longitude coordinates when tracking is triggered via a serial command.

Uploaded by

Sushil Lamsal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

#include <TinyGPS++.

h>
#include <SoftwareSerial.h>
#include<LiquidCrystal.h>
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);

static const int RXPin = 4, TXPin = 3;


static const uint32_t GPSBaud = 9600;
// The TinyGPS++ object
TinyGPSPlus gps;
int temp=0,i;
// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);
String stringVal = "";
void setup(){
Serial.begin(9600);
ss.begin(GPSBaud);
lcd.begin(16,2);
pinMode(13,OUTPUT);
digitalWrite(13,LOW);
lcd.print("Vehicle Tracking");
lcd.setCursor(0,1);
lcd.print(" System ");
delay(2000);
gsm_init();
lcd.clear();
Serial.println("AT+CNMI=2,2,0,0,0");
lcd.print("GPS Initializing");
lcd.setCursor(0,1);
lcd.print(" No GPS Range ");
delay(2000);
lcd.clear();
lcd.print("GPS Range Found");
lcd.setCursor(0,1);
lcd.print("GPS is Ready");
delay(2000);
lcd.clear();
lcd.print("System Ready");
temp=0;
}

void loop()
{
serialEvent();

while(temp)
{
while (ss.available() > 0)
{
gps.encode(ss.read());
if (gps.location.isUpdated())
{
temp=0;
digitalWrite(13,HIGH);
tracking();
}
if(!temp)
break;
}
}
digitalWrite(13,LOW);
}
void serialEvent()
{
while(Serial.available()>0)
{
if(Serial.find("Track Vehicle"))
{
temp=1;
break;
}
else
{
temp=0;
}
}
}
void gsm_init()
{
lcd.clear();
lcd.print("Finding Module..");
boolean at_flag=1;
while(at_flag)
{
Serial.println("AT");
delay(1);
while(Serial.available()>0)
{
if(Serial.find("OK"))
at_flag=0;
}

delay(1000);
}
lcd.clear();
lcd.print("Module Connected..");
delay(1000);
lcd.clear();
lcd.print("Disabling ECHO");
boolean echo_flag=1;
while(echo_flag)
{
Serial.println("ATE0");
while(Serial.available()>0)
{
if(Serial.find("OK"))
echo_flag=0;
}
delay(1000);
}
lcd.clear();
lcd.print("Echo OFF");
delay(1000);
lcd.clear();
lcd.print("Finding Network..");
boolean net_flag=1;
while(net_flag)
{
Serial.println("AT+CPIN?");
while(Serial.available()>0)
{
if(Serial.find("+CPIN: READY"))
net_flag=0;
}
delay(1000);
}
lcd.clear();
lcd.print("Network Found..");

delay(1000);
lcd.clear();
}
void init_sms()
{
Serial.println("AT+CMGF=1");
delay(400);
Serial.println("AT+CMGS=\"8825737586\""); // use your 10 digit cell no. here
delay(400);
}
void send_data(String message)
{
Serial.print(message);
delay(200);
}
void send_sms()
{
Serial.write(26);
}
void lcd_status()
{
lcd.clear();
lcd.print("Message Sent");
delay(2000);
lcd.clear();
lcd.print("System Ready");
return;
}
void tracking()
{
init_sms();
send_data("Vehicle Tracking Alert:");
Serial.println(" ");
send_data("Your Vehicle Current Location is:");
Serial.println(" ");
Serial.print("Latitude: ");
Serial.print(gps.location.lat(), 6);
Serial.print("\n Longitude: ");
Serial.println(gps.location.lng(), 6);

// https://www.google.com/maps/@8.2630696,77.3022699,14z
Serial.print("https://www.google.com/maps/@");
Serial.print(gps.location.lat(), 6);
Serial.print(',');
Serial.print(gps.location.lng(), 6);
Serial.print(",14z");
send_sms();
delay(2000);
lcd_status();
}

You might also like