Engineers Garage

  • Projects and Tutorials
    • Circuit Design
    • Electronic Projects
      • 8051
      • Arduino
      • ARM
      • AVR
      • PIC
      • Raspberry pi
      • STM32
    • Tutorials
    • Components
  • Articles
    • EG Blogs
    • Insight
    • Invention Stories
    • How to
    • What Is
    • News
      • EE Design News
      • DIY Reviews
      • Guest Post
      • Sponsored Content
  • Forums
    • EDABoard.com
    • Electro-Tech-Online
    • EG Forum Archive
  • Digi-Key Store
    • Cables, Wires
    • Connectors, Interconnect
    • Discrete
    • Electromechanical
    • Embedded Computers
    • Enclosures, Hardware, Office
    • Integrated Circuits (ICs)
    • Isolators
    • LED/Optoelectronics
    • Passive
    • Power, Circuit Protection
    • Programmers
    • RF, Wireless
    • Semiconductors
    • Sensors, Transducers
    • Test Products
    • Tools
  • EE Resources
    • DesignFast
    • LEAP Awards
    • Oscilloscope Product Finder
    • Video
    • White Papers
    • Webinars
  • EE Learning Center
  • Women in Engineering

GPS and GSM based Vehicle Tracking System Using Arduino

May 31, 2014 By Salman Khan

 

This circuit is designed for tracking the location of vehicles. Most oftracking systems are made by using GPS. This is very simple and cheap. Tracking systems are mostly used by fleet operators for tracking a vehicle location, routing and others. This is a very good method for preventing our vehicles from stolen. This tracking system sends us the geographical coordinates and by using these coordinates we can track our vehicle position on electronic maps using internet. By using these tacking systems we can share real time information about transportations. And also can be share real time information or position of trains and buses with passengers. Means passengers can see the real time of arriving busses or trains at the platforms on LCD or on Mobiles.

Block Diagram of Arduino based Vehicle Tracking System

Fig. 1: Block Diagram of Arduino based Vehicle Tracking System

Here in this system we are using the GSM module for sending the coordinates of vehicle on mobile phone via message. GPS is sends the coordinates continuously in form of string. After reading this string using Arduino extract the required data from string and then sends it to mobile phone using GSM module via SMS. This information is called latitude and longitude. GPS used 3 or 4 satellite for tracking the location of any vehicle.

Prototype of Arduino based Vehicle Tracking System

Fig. 2: Prototype of Arduino based Vehicle Tracking System

 

Image of Arduino based Vehicle Tracking System in action

Fig. 3: Image of Arduino based Vehicle Tracking System in action

Image of Arduino based Vehicle Tracking System showing current GPS location of the vehicle

Fig. 4: Image of Arduino based Vehicle Tracking System showing current GPS location of the vehicle

In circuit diagram three main Components used. These are Global Positioning System(GPS), GSM Module and Arduino. GSM module’s Rx pin is directly connected to Tx pin of Arduino and Tx pin of GPS is directly connected Rx pin of Arduino. And a 16X2 liquid Crystal display is also connected with Arduino for displaying coordinate. It is assumed that the reader gone through How to strat with arduino and How to interface LCD with arduino.

Image of SMS received on Mobile phone showing current GPS location of vehicle

Fig. 5: Image of SMS received on Mobile phone showing current GPS location of vehicle

Image of display panel of vehicle tracking system showing current GPS location

Fig. 6: Image of display panel of vehicle tracking system showing current GPS location

Programming

Programming part of this project is also simple. GPS continuously sends coordinates to Arduino and Arduino read these coordinate and extract required character of coordinates. GPS sends many string to Arduino but we required only one of them. First we match required string which is

$GPGGA

The above given string is required string. In this string,

after first comma: this is the coordinates reading time.

After second comma: this is the Latitude

After third comma: this is longitude

Screenshot of Arduino Serial Port showing logged GPS data

Fig. 7: Screenshot of Arduino Serial Port showing logged GPS data

If this string matches then we start to store this string in a temporary array and then extract required coordinates from it and stores in another two arrays. And then send these array to Display and also sends these to user’s mobile phone via SMS. For sending SMS here we used GSM module which sends SMS to mobile phone. AT commands for sending SMS:

AT+CMGF=1

AT+CMGS=”9610126059”

>COORDINATES

Ctrl+z

In programming we used these commands for sending SMS using GSM:

Serial.println(“AT+CMGF=1”);    // for selecting text mode

Serial.println(“AT+CMGS=”9610126059””);  // Add user mobile number

Serial.println(“Latitude: ”);     // write Latitude in message

Serial.println(latitude);            // write Latitude array in SMS

Serial.println(“Longitude: ”);

Serial.println(longitude);

And then

Serial.write(26);    //  send SMS

After this configuration GSM Module sends GPS or Vehicle location to mobile phone.

Here Serial.write command is used for sending message. if you will use Serial.print of serial.prinln GSM module will not send any message. so we have to used Serial.write for sending message.

Here 26 decimal number is also used. 26 is the equivalent decimal number of ctrl+z.

Instead of these we can also use hexadecimal number 0x1A.

Note:This program or Systemdoes not work with FTDI burner. So when you run this system or programremove FTDI burner first and then connect external power supply with Arduino Pro Mini.’

Components Used:

1.     Arduino Pro mini

2.     GSM Module

3.     Global Positioning System (GPS)

4.     16X2 Liquid Crystal Display

5.     Connecting wires

Project Source Code

###



#include<LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
char str[70];
char *test="$GPGGA";       
char logitude[10];
char latitude[10];
int i,j,k;
int temp;
int Ctrl+z=26;    //for sending msg
void setup() 
{
  lcd.begin(16,2);
  Serial.begin(9600);
  lcd.setCursor(0,0);
  lcd.print("GPS Besed Vehicle ");
  lcd.setCursor(0,1);
  lcd.print("Tracking System");
  delay(10000);
}
void loop() 
{
  if (temp==1) 
  {
    for(i=18;i<27;i++)          //extract latitude from string
    {
     latitude[j]=str[i];
     j++;
    }
    for(i=30;i<40;i++)          //extract longitude from string
    {
    logitude[k]=str[i];
     k++;
    }
    lcd.setCursor(0,0);        //display latitude and longitude on 16X2 lcd display  
    lcd.print("Lat(N)");
    lcd.print(latitude);
    lcd.setCursor(0,1);
    lcd.print("Lon(E)");
    lcd.print(logitude);
    delay(100);
    Serial.println("AT+CMGF=1");    //select text mode
    delay(10);
    Serial.println("AT+CMGS="9610126059"");  // enter receipent number
    Serial.println();
    Serial.print("Latitude(N): ");             //enter latitude in msg
    Serial.println(latitude);                  //enter latitude value in msg
    Serial.print("Longitude(E): ");            //enter Longitude in Msg
    Serial.println(logitude);                  //enter longitude value in msg
    Serial.write(Ctrl+z);                      //send msg  Ctrl+z=26
    temp=0;
    i=0;
    j=0;
    k=0;
    delay(20000);                        // next reading within 20 seconds
  }
}
void serialEvent()
{
  while (Serial.available())            //Serial incomming data from GPS 
  {
    char inChar = (char)Serial.read(); 
    str[i]= inChar;                  //store incomming data from GPS to temparary string str[]
     i++;
     if (i < 7)                       
     {
      if(str[i-1] != test[i-1])         //check for right string
      {
        i=0; 
      }
     }
    if(i >=60)
    {
     temp=1;
    } 
  }
}


###

 


Circuit Diagrams

Circuit-Diagram-Arduino-Based-Vehicle-Tracking-System

Project Video

Related Articles Read More >

Wireless distance measurement using ultrasonic sensor
Computerized wireless Pick and Place Robot
Designing an Arduino-based ECG monitor using an AD8232 ECG sensor
Controlling Appliances Wirelessly using RF Technology

Featured Tutorials

  • Screenshot of Raspbian OS on Raspberry Pi RPi Python Programming 03: Raspberry Pi as Linux System
  • Raspberry Pi Models RPI Python Programming 02: Raspberry Pi Models
  • Raspberry Pi 4 RPi Python Programming 01: Introduction to Raspberry Pi 4
  • RPi Python Programming 05: Introduction to Python
  • RPi Python programming 04 RPi Python programming 04: Setting up Raspberry Pi Linux computer
  • Python Basics RPi Python Programming 06: Python basics

Stay Up To Date

Newsletter Signup

EE Training Center Classrooms

“ee

“ee

“ee

“ee

Recent Articles

  • Arduino’s L293D motor driver shield guide
  • NXP launches its first Wi-Fi 6E Tri-Band system-on-chip
  • Nexperia launches industry’s first 80 V RETs for high-voltage bus circuits
  • TDK releases low-profile medical sensors
  • Getting started with Raspberry Pi
...

RSS EDABOARD.com Discussions

  • hysteresis variation mc sim
  • Need help with Audio intercom design circuit?
  • complex bjt transfer function amplifier
  • Creepage distance from primary to secondary of offline SMPS
  • FT232 > Package

RSS Electro-Tech-Online.com Discussions

  • new to Ardunio but trying to compile
  • Engine Temperature using an AD590 on the Oil Pressure Wire to the engine
  • Dead Battery circuits.
  • electrolytic capacitor depolarizes
  • Symphonic TV/VCR problems (potentially loose yoke)...
Engineers Garage
  • Analog IC TIps
  • Connector Tips
  • DesignFast
  • EDABoard Forums
  • EE World Online
  • Electro-Tech-Online Forums
  • Microcontroller Tips
  • Power Electronic Tips
  • Sensor Tips
  • Test and Measurement Tips
  • 5G Technology World
  • About Us
  • Contact Us
  • Advertise

Copyright © 2021 WTWH Media LLC. All Rights Reserved. The material on this site may not be reproduced, distributed, transmitted, cached or otherwise used, except with the prior written permission of WTWH Media
Privacy Policy | Advertising | About Us

Search Engineers Garage

  • Projects and Tutorials
    • Circuit Design
    • Electronic Projects
      • 8051
      • Arduino
      • ARM
      • AVR
      • PIC
      • Raspberry pi
      • STM32
    • Tutorials
    • Components
  • Articles
    • EG Blogs
    • Insight
    • Invention Stories
    • How to
    • What Is
    • News
      • EE Design News
      • DIY Reviews
      • Guest Post
      • Sponsored Content
  • Forums
    • EDABoard.com
    • Electro-Tech-Online
    • EG Forum Archive
  • Digi-Key Store
    • Cables, Wires
    • Connectors, Interconnect
    • Discrete
    • Electromechanical
    • Embedded Computers
    • Enclosures, Hardware, Office
    • Integrated Circuits (ICs)
    • Isolators
    • LED/Optoelectronics
    • Passive
    • Power, Circuit Protection
    • Programmers
    • RF, Wireless
    • Semiconductors
    • Sensors, Transducers
    • Test Products
    • Tools
  • EE Resources
    • DesignFast
    • LEAP Awards
    • Oscilloscope Product Finder
    • Video
    • White Papers
    • Webinars
  • EE Learning Center
  • Women in Engineering