Vehicle Tracking System using GPS and Arduino

In our previous article, we have learned about “How to interface GPS module with Computer and How to make a GPS updated Clock”. In this project we are going one step ahead with GPS and going to track a vehicle using GPS and GSM. This Vehicle Tracking System can also be used for Accident Detection Alert System, Soldier Tracking System and many more, by just making few changes in hardware and software.

 

Tracking of vehicle is a process in which we track the vehicle location in form of Latitude and Longitude (GPS coordinates). GPS Coordinates are the value of a location. This system is very efficient for outdoor application purpose.

This kind of Vehicle Tracking System Project is widely in tracking Cabs/Taxis, stolen vehicles, school/colleges buses etc.

 

Components Required:

  • Arduino
  • GSM Module
  • GPS Module
  • 16x2 LCD
  • Power Supply
  • Connecting Wires
  • 10 K POT

 

GPS Module and Its Working:

GPS stands for Global Positioning System and used to detect the Latitude and Longitude of any location on the Earth, with exact UTC time (Universal Time Coordinated). GPS module is the main component in our vehicle tracking system project. This device receives the coordinates from the satellite for each and every second, with time and date.

GPS module SKG13BL

GPS module sends the data related to tracking position in real time, and it sends so many data in NMEA format (see the screenshot below). NMEA format consist several sentences, in which we only need one sentence. This sentence starts from $GPGGA and contains the coordinates, time and other useful information. This GPGGA is referred to Global Positioning System Fix Data. Know more about Reading GPS data and its strings here.

We can extract coordinate from $GPGGA string by counting the commas in the string. Suppose you find $GPGGA string and stores it in an array, then Latitude can be found after two commas and Longitude can be found after four commas. Now these latitude and longitude can be put in other arrays.

GPS-module data in arduino serial monitor

 

Below is the $GPGGA String, along with its description:

$GPGGA,104534.000,7791.0381,N,06727.4434,E,1,08,0.9,510.4,M,43.9,M,,*47

$GPGGA,HHMMSS.SSS,latitude,N,longitude,E,FQ,NOS,HDP,altitude,M,height,M,,checksum data

 

Identifier

Description

$GPGGA

Global Positioning system fix data

HHMMSS.SSS

Time in hour minute seconds and milliseconds format.

Latitude

Latitude (Coordinate)

N

Direction N=North, S=South

Longitude

Longitude(Coordinate)

E

Direction E= East, W=West

FQ

Fix Quality Data

NOS

No. of Satellites being Used

HPD

Horizontal Dilution of Precision

Altitude

Altitude from sea level

M

Meter

Height

Height

Checksum

Checksum Data

 

Circuit Explanation:

Circuit Connections of this Vehicle Tracking System Project is simple. Here Tx pin of GPS module is directly connected to digital pin number 10 of Arduino. By using Software Serial Library here, we have allowed serial communication on pin 10 and 11, and made them Rx and Tx respectively and left the Rx pin of GPS Module open. By default Pin 0 and 1 of Arduino are used for serial communication but by using SoftwareSerial library, we can allow serial communication on other digital pins of the Arduino. 12 Volt supply is used to power the GPS Module.

Arduino based Vehicle Tracker using GPS and GSM circuit diagram

GSM module’s Tx and Rx pins of are directly connected to pin Rx and Tx of Arduino. GSM module is also powered by 12v supply. An optional LCD’s data pins D4, D5, D6 and D7 are connected to pin number 5, 4, 3, and 2 of Arduino. Command pin RS and EN of LCD are connected with pin number 2 and 3 of Arduino and RW pin is directly connected with ground. A Potentiometer is also used for setting contrast or brightness of LCD.

 

Working Explanation:

In this project, Arduino is used for controlling whole the process with a GPS Receiver and GSM module. GPS Receiver is used for detecting coordinates of the vehicle, GSM module is used for sending the coordinates to user by SMS. And an optional 16x2 LCD is also used for displaying status messages or coordinates. We have used GPS Module SKG13BL and GSM Module SIM900A.

GPS and GSM based Vehicle Tracking System Block Diagram

When we ready with our hardware after programming, we can install it in our vehicle and power it up. Then we just need to send a SMS, “Track Vehicle”, to the system that is placed in our vehicle. We can also use some prefix (#) or suffix (*) like #Track Vehicle*, to properly identify the starting and ending of the string, like we did in these projects: GSM Based Home Automation and Wireless Notice Board

 

Sent message is received by GSM module which is connected to the system and sends message data to Arduino. Arduino reads it and extract main message from the whole message. And then compare it with predefined message in Arduino. If any match occurs then Arduino reads coordinates by extracting $GPGGA String from GPS module data (GPS working explained above) and send it to user by using GSM module. This message contains the coordinates of vehicle location.

 

Programming Explanation:

In programming part first we include libraries and define pins for LCD & software serial communication. Also define some variable with arrays for storing data. Software Serial Library is used to allow serial communication on pin 10 and 11.

#include<LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

#include <SoftwareSerial.h>
SoftwareSerial gps(10,11); // RX, TX
char str[70];
String gpsString="";
... ....
.... ....

Here array str[70] is used for storing received message from GSM module and gpsString is used for storing GPS string. char *test=”$GPGGA” is used to compare the right string that we need for coordinates.

After it we have initialized serial communication, LCD, GSM & GPS module in setup function and showed a welcome message on LCD.

void setup() 
{
  lcd.begin(16,2);
  Serial.begin(9600);
  gps.begin(9600);

  lcd.print("Vehicle Tracking");
  lcd.setCursor(0,1);
  ... ....
  .... ....

In loop function we receive message and GPS string.

void loop()
{
  serialEvent();
  if(temp)
  {
    get_gps();
    tracking();
  }
}

Functions void init_sms and void send_sms() are used to initialising and sending message. Use proper 10 digit Cell phone no, in init_sms function.  

Function void get_gps() has been used to extract the coordinates from the received string.

Function void gpsEvent() is used for receiving GPS data into the Arduino.

Function void serialEvent() is used for receiving message from GSM and comparing the received message with predefined message (Track Vehicle).

void serialEvent()
{
  while(Serial.available())
  {
    if(Serial.find("Track Vehicle"))
    {
      temp=1;
      break;
    }
    ... ....
    .... ...

Initialization function ‘gsm_init() is used for initialising and configuring the GSM Module, where firstly, GSM module is checked whether it is connected or not by sending ‘AT’ command to GSM module. If response OK is received, means it is ready. System keeps checking for the module until it becomes ready or until ‘OK’ is received. Then ECHO is turned off by sending the ATE0 command, otherwise GSM module will echo all the commands. Then finally Network availability is checked through the ‘AT+CPIN?’ command, if inserted card is SIM card and PIN is present, it gives the response +CPIN: READY. This is also check repeatedly until the network is found. This can be clearly understood by the Video below.

Check all the above functions in Code Section below.

Code: 

#include<LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

#include <SoftwareSerial.h>
SoftwareSerial gps(10,11); // RX, TX

//String str="";
char str[70];
String gpsString="";

char *test="$GPGGA";

String latitude="No Range      ";
String longitude="No Range     ";

int temp=0,i;
boolean gps_status=0;

void setup() 
{
  lcd.begin(16,2);
  Serial.begin(9600);
  gps.begin(9600);

  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  ");
  get_gps();
  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();
  if(temp)
  {
    get_gps();
    tracking();
  }
}

void serialEvent()
{
  while(Serial.available())
  {
    if(Serial.find("Track Vehicle"))
    {
      temp=1;
      break;
    }
    else
    temp=0;
  }
}

void gpsEvent()
{
  gpsString="";
  while(1)
  {
   while (gps.available()>0)            //checking serial data from GPS
   {
    char inChar = (char)gps.read();
     gpsString+= inChar;                    //store data from GPS into gpsString
     i++;
     if (i < 7)                      
     {
      if(gpsString[i-1] != test[i-1])         //checking for $GPGGA sentence
      {
        i=0;
        gpsString="";
      }
     }
    if(inChar=='\r')
    {
     if(i>65)
     {
       gps_status=1;
       break;
     }
     else
     {
       i=0;
     }
    }
  }
   if(gps_status)
    break;
  }
}

void gsm_init()
{
  lcd.clear();
  lcd.print("Finding Module..");
  boolean at_flag=1;
  while(at_flag)
  {
    Serial.println("AT");
    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 get_gps()
{
   gps_status=0;
   int x=0;
   while(gps_status==0)
   {
    gpsEvent();
    int str_lenth=i;
    latitude="";
    longitude="";
    int comma=0;
    while(x<str_lenth)
    {
      if(gpsString[x]==',')
      comma++;
      if(comma==2)        //extract latitude from string
      latitude+=gpsString[x+1];     
      else if(comma==4)        //extract longitude from string
      longitude+=gpsString[x+1];
      x++;
    }
    int l1=latitude.length();
    latitude[l1-1]=' ';
    l1=longitude.length();
    longitude[l1-1]=' ';
    lcd.clear();
    lcd.print("Lat:");
    lcd.print(latitude);
    lcd.setCursor(0,1);
    lcd.print("Long:");
    lcd.print(longitude);
    i=0;x=0;
    str_lenth=0;
    delay(2000);
   }
}

void init_sms()
{
  Serial.println("AT+CMGF=1");
  delay(400);
  Serial.println("AT+CMGS=\"+91**********\"");   // use your 10 digit cell no. here
  delay(400);
}

void send_data(String message)
{
  Serial.println(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:");
    send_data("Your Vehicle Current Location is:");
    Serial.print("Latitude:");
    send_data(latitude);
    Serial.print("Longitude:");
    send_data(longitude);
    send_data("Please take some action soon..\nThankyou");
    send_sms();
    delay(2000);
    lcd_status();
}

Video: 

Comments (102)

  • pratik's picture
    pratik

    how to simulate this design in proteus?

    Mar 16, 2016
  • gourav's picture
    gourav

    what is microcontroller use in tracking system

    Mar 18, 2016
  • adil's picture
    adil

    Hi!
    Thank you for this post. I have make it . Everything is going well except one thing. The massage "NO GPS range" is stuck on the lcd. I am using Ublox neo 7m GPS module with compass.

    Mar 31, 2016
  • Akash Singh's picture
    Akash Singh

    yeah adil this type of problem has occured with me too
    I do not know what i have mistaken....

    Apr 04, 2016
  • saddam khan's picture
    saddam khan

    No GPS Range Means your GPS is not in getting signal from satellite.
    you have to place your GPS receiver or GPS antenna outdoor(on the roof, window)..

    Apr 04, 2016
  • Akash Singh's picture
    Akash Singh

    I wanted to extract only latitude and longitude and display them on lcd so i used this part of the code posted

    #include<LiquidCrystal.h>
    LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

    #include <SoftwareSerial.h>
    SoftwareSerial gps(10,11); // RX, TX
    //String str="";
    //char str[70];

    String gpsString="";
    char *test="$GPGGA";
    String latitude="No Range ";
    String longitude="No Range ";
    int temp=0,i;
    boolean gps_status=0;

    void setup()
    {
    lcd.begin(16,2);
    Serial.begin(9600);
    gps.begin(9600);
    lcd.print("GPS 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 ");

    get_gps();
    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();
    if(temp)
    {
    get_gps();
    //tracking();
    }
    }

    void gpsEvent()
    {
    gpsString="";
    while(1)
    {
    while (gps.available()>0) //checking serial data from GPS
    {
    char inChar = (char)gps.read();
    gpsString+= inChar; //store data from GPS into gpsString
    i++;
    if (i < 7)
    {
    if(gpsString[i-1] != test[i-1]) //checking for $GPGGA sentence
    {
    i=0;
    gpsString="";
    }
    }
    if(inChar=='\r')
    {
    if(i>65)
    {
    gps_status=1;
    break;
    }
    else
    {
    i=0;
    }
    }
    }
    if(gps_status)
    break;
    }
    }

    void get_gps()
    {
    gps_status=0;
    int x=0;
    while(gps_status==0)
    {
    gpsEvent();
    int str_lenth=i;
    latitude="";
    longitude="";
    int comma=0;
    while(x<str_lenth)
    {
    if(gpsString[x]==',')
    comma++;
    if(comma==2) //extract latitude from string
    latitude+=gpsString[x+1];
    else if(comma==4) //extract longitude from string
    longitude+=gpsString[x+1];
    x++;
    }
    int l1=latitude.length();
    latitude[l1-1]=' ';
    l1=longitude.length();
    longitude[l1-1]=' ';
    lcd.clear();
    lcd.print("Lat:");
    lcd.print(latitude);
    lcd.setCursor(0,1);
    lcd.print("Long:");
    lcd.print(longitude);
    i=0;x=0;
    str_lenth=0;
    delay(2000);
    }
    }

    Apr 05, 2016
  • Azim18's picture
    Azim18

    why my GPS not blinking(status). on my LCD only 'Finding Module..' appear. i really count on you

    Nov 17, 2016
  • Jithu Moncy George's picture
    Jithu Moncy George

    Is it necessary that we use the same gps module specified by you?or can we use any other gps available in the market?

    Apr 05, 2016
  • Akash Singh's picture
    Akash Singh

    No it is not necessary but it will be helpful to you if you use the same

    Apr 13, 2016
  • Akash Singh's picture
    Akash Singh

    I know but I connected gps module in gateway mode and it worked
    it displayed the desired output as discussed in other post
    but when i tried to do the same thing displaying it on lcd it is just stuck i mean how is it possible that one time same place is in range and other time it is not.....
    Code worked previously but now it is not working...
    Please help

    Apr 05, 2016
  • Eduardo camacho 's picture
    Eduardo camacho

    Hi, im in school project, and i need to get de gps cordenates and send it to a cellphone, im useing, de arduino uno and the SIM808 module, and my question is, how to use this module, is too hard to found examples of code with this module. thanks!

    Apr 18, 2016
  • saddam khan's picture
    saddam khan

    i used sim808 module.

    GSM part is working fine but its GPS power is not turning on by the command.

    and command give a error.

    Apr 21, 2016
  • amit kar's picture
    amit kar

    i using sim 300 but do nothing why caN YOU HELP

    Apr 27, 2016
  • amit kar's picture
    amit kar

    please help me my project is not working all item and circuit are same

    Apr 30, 2016
  • Darshan Thakker's picture
    Darshan Thakker

    Is. The project working properly because i have to make this for final year project
    Which is the. Gps and gsm model pls reply as early as possible

    May 07, 2016
  • nikhil chaugule's picture
    nikhil chaugule

    which gsm and gps module buy?

    May 18, 2016
  • nikhil chaugule's picture
    nikhil chaugule

    Any one here

    May 20, 2016
  • Maddy's picture
    Maddy

    @Darshan @nikhil: We have used GPS Module SKG13BL and GSM Module SIM900A, it is already mentioned.

    May 21, 2016
  • Zaid Qays's picture
    Zaid Qays

    Do you need a data plan for the GPS to get the coordinates? or an internet access of some sorts?

    May 23, 2016
  • Amir, Saidi's picture
    Amir, Saidi

    Am using arduino uno and NEO-6m-0-001 (Gps) does this codes work for these models ?
    hlp me plz..........

    May 26, 2016
  • Abhishek's picture
    Abhishek

    Yes, it should work. Check the Tx, Rx and other pins of your model and connect accordingly.

    May 28, 2016
  • Amir, Saidi's picture
    Amir, Saidi

    Thanks for Ur Support , en another thing is that my GSM module is SIM900 is it oky to use them with the codes above ?, I hv tried but it seems the execution of method gsm_init() isn't working .........
    How should I make it work ?
    Plz I need Ur help.........

    May 31, 2016
  • Amir, Saidi's picture
    Amir, Saidi

    After configuration of everything my LCD only displays "Vehicle Tracking System "

    May 31, 2016
  • elvin's picture
    elvin

    Hi. I have tried out this project with sim800l. The lcd works properly and displays that 'network has been found' plus the 'longitude' and 'latitude'.
    But when I send the text Track Vehicle, I get no reply.
    Can you please help me to solve this???

    May 30, 2016
  • Amir, Saidi's picture
    Amir, Saidi

    IF you have Joined together the by putting a GSM Module ontop of Arduino Possible cause may be that the GSM Module has failed to send the message due to lower current since transmission requires much current , try using external power adaptor of 12V and connect it directly to the GSM.........,
    In the initial codes try to replace the serialevent() method with this one
    void serialEvent()
    {
    while(Serial.available())
    {

    if(Serial.find("Track"))
    {
    lcd.clear();
    lcd.println("Message Received");
    temp=1;
    break;
    }
    else
    temp=0;
    }
    }
    if the "Track Vehicle" is received and read You will see the LCD , and it will prove that its a transmission problem (sendind of the SMS)

    Jun 05, 2016
  • Amir, Saidi's picture
    Amir, Saidi

    My LCD keeps displaying Finding Module............. and doesn't go beyond that , what is the Problem actually ?

    Jun 01, 2016
  • Amir, Saidi's picture
    Amir, Saidi

    I have come to notice that after the configuartion of the circuit is compete and I uploaded the codes,
    My GSM Module doesn't Give the response to the AT commands sent so I keep seeing ATATATATATATATA....... on my Serial monitor so I was asking whats wrong ?, is it the codes or the connection that has a problem ?
    Help me Plz its my Final Year project and the days are numbered.......

    Jun 02, 2016
  • Amir, Saidi's picture
    Amir, Saidi

    From Your Video it shows Your codes and connection works just fine.....how do I configure my Modem using Hardware Serial and how my codes should be to work fine like Yours ? because its like the Response that GSM module is required to provide are not available , when I open the Serial Monitor I keep seeing ATATATATAT.......
    when I try to write OK it goes to the next execution ........,
    I don't knw whats wrong en I hv stayed For days troubleshooting any one with the knowledge will You Please help me.........
    Even if its by sending the working Codes I will greatly appreciate it

    Jun 02, 2016
  • Amir, Saidi's picture
    Amir, Saidi

    PROBLEM SOLVED.........!!!!!!!!!!!!!!!!! For all the People who has the same Problem as mine Just make Sure that your Hardware serial Communication is Configured Properly(Connection between GSM Module and ARDUINO)
    i.e The serial monitor repeatedly dispays ATATATATATAT............. Because the GSM Module doesn't Respond meaning that thehardware Serial connection has failed ....
    Man thanx 4 the codes .It realy Helped me...........

    Jun 05, 2016
  • razin asyraf's picture
    razin asyraf

    how exactly i gonna retify it..please help me sir...

    Nov 03, 2016
  • anusha's picture
    anusha

    Initailly even I got the same message on serial monitor i.e ATATATA....
    later the code isn't uploading to the ardino board!(avrdude..error relating to port 0)...Could you please tell the changes to be made in the code and the circuit connections.
    Thanks in advance

    Nov 09, 2016
  • Elvin's picture
    Elvin

    @Amir Saidi..
    I have replaced the serial event method with
    this one
    void serialEvent()
    {
    while(Serial.available())
    {
    if(Serial.find("Track"))
    {
    lcd.clear();
    lcd.println("Message Received");
    temp=1;
    break;
    }
    else
    temp=0;
    }
    }

    But the lcd stil does not display Message Received nor gsm sending any text to my phone. What else can I try? Anybody who can help me solve this problem???

    Jun 07, 2016
  • Elvin's picture
    Elvin

    #Amir Said thank you for your reply. I managed to receive the message after increasing the voltage.

    Jun 10, 2016
  • Maddy's picture
    Maddy

    @Elvin and @Amir : Glad to know, that you finally resolved your issues with the Project. 

    Jun 11, 2016
  • Elvin's picture
    Elvin

    Guys does anyone know how to change the code so as to receive the longitude and latitude data in degrees format alone without the minutes?

    Jun 10, 2016
  • Abhishek's picture
    Abhishek

    You can easily do with some programming like using 'round' function round(longitude/100) or by applying some other logic to extract the first two digits (degrees).

    Jul 09, 2016
  • Sundari Ravi 's picture
    Sundari Ravi

    in the same project i dont want LCD display . i want the latitude and longitude once in 5minutes periodically ,please help me to finish my project.

    Jun 27, 2016
  • Tanay Tripathi's picture
    Tanay Tripathi

    The Tx pin of GPS must connect to pin 10 of arduino owing to software serial (10,11) (Rx,Tx)

    Jul 01, 2016
  • vizy's picture
    vizy

    Hi,
    I have these errors, can you please resolve them. I have used the same code as define by the author.

    sketch\test.cpp:8:12: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

    char *test="$GPGGA";

    ^

    test.cpp:12: error: 'boolean' does not name a type

    boolean gps_status=0;

    ^

    sketch\test.cpp: In function 'void setup()':

    test.cpp:16: error: 'Serial' was not declared in this scope

    Serial.begin(9600);

    ^

    test.cpp:21: error: 'delay' was not declared in this scope

    delay(2000);

    ^

    test.cpp:22: error: 'gsm_init' was not declared in this scope

    gsm_init();

    ^

    test.cpp:28: error: 'get_gps' was not declared in this scope

    get_gps();

    ^

    sketch\test.cpp: In function 'void loop()':

    test.cpp:41: error: 'serialEvent' was not declared in this scope

    serialEvent();

    ^

    test.cpp:44: error: 'get_gps' was not declared in this scope

    get_gps();

    ^

    test.cpp:45: error: 'tracking' was not declared in this scope

    tracking();

    ^

    sketch\test.cpp: In function 'void serialEvent()':

    test.cpp:50: error: 'Serial' was not declared in this scope

    while(Serial.available())

    ^

    sketch\test.cpp: In function 'void gpsEvent()':

    test.cpp:83: error: 'gps_status' was not declared in this scope

    gps_status=1;

    ^

    test.cpp:92: error: 'gps_status' was not declared in this scope

    if(gps_status)

    ^

    sketch\test.cpp: In function 'void gsm_init()':

    test.cpp:100: error: 'boolean' was not declared in this scope

    boolean at_flag=1;

    ^

    test.cpp:100: error: expected ';' before 'at_flag'

    boolean at_flag=1;

    ^

    test.cpp:101: error: 'at_flag' was not declared in this scope

    while(at_flag)

    ^

    test.cpp:103: error: 'Serial' was not declared in this scope

    Serial.println("AT");

    ^

    test.cpp:110: error: 'delay' was not declared in this scope

    delay(1000);

    ^

    test.cpp:114: error: 'delay' was not declared in this scope

    delay(1000);

    ^

    test.cpp:117: error: expected ';' before 'echo_flag'

    boolean echo_flag=1;

    ^

    test.cpp:118: error: 'echo_flag' was not declared in this scope

    while(echo_flag)

    ^

    test.cpp:120: error: 'Serial' was not declared in this scope

    Serial.println("ATE0");

    ^

    test.cpp:133: error: expected ';' before 'net_flag'

    boolean net_flag=1;

    ^

    test.cpp:134: error: 'net_flag' was not declared in this scope

    while(net_flag)

    ^

    test.cpp:136: error: 'Serial' was not declared in this scope

    Serial.println("AT+CPIN?");

    ^

    sketch\test.cpp: In function 'void get_gps()':

    test.cpp:151: error: 'gps_status' was not declared in this scope

    gps_status=0;

    ^

    test.cpp:182: error: 'delay' was not declared in this scope

    delay(2000);

    ^

    sketch\test.cpp: In function 'void init_sms()':

    test.cpp:187: error: 'Serial' was not declared in this scope

    Serial.println("AT+CMGF=1");

    ^

    test.cpp:188: error: 'delay' was not declared in this scope

    delay(400);

    ^

    sketch\test.cpp: In function 'void send_data(String)':

    test.cpp:194: error: 'Serial' was not declared in this scope

    Serial.println(message);

    ^

    test.cpp:195: error: 'delay' was not declared in this scope

    delay(200);

    ^

    sketch\test.cpp: In function 'void send_sms()':

    test.cpp:199: error: 'Serial' was not declared in this scope

    Serial.write(26);

    ^

    sketch\test.cpp: In function 'void lcd_status()':

    test.cpp:205: error: 'delay' was not declared in this scope

    delay(2000);

    ^

    sketch\test.cpp: In function 'void tracking()':

    test.cpp:215: error: 'Serial' was not declared in this scope

    Serial.print("Latitude:");

    ^

    test.cpp:221: error: 'delay' was not declared in this scope

    delay(2000);

    ^

    exit status 1
    'boolean' does not name a type

    Invalid library found in C:\Program Files (x86)\Arduino\libraries\test: C:\Program Files (x86)\Arduino\libraries\test
    Invalid library found in C:\Program Files (x86)\Arduino\libraries\test: C:\Program Files (x86)\Arduino\libraries\test

    This report would have more information with
    "Show verbose output during compilation"
    option enabled in File -> Preferences.

    Jul 05, 2016
  • Asfer's picture
    Asfer

    any one up ??

    Jul 12, 2016
  • Shashank Kimothi's picture
    Shashank Kimothi

    can you please tell me what does this part of the code do:
    while(Serial.available()>0)
    {
    if(Serial.find("OK"))
    at_flag=0;
    }

    Jul 18, 2016
  • saddam khan's picture
    saddam khan

    this will read gsm output string and find OK substring or word comming from GSM response. and if matched with OK then set at_flag

    Jul 25, 2016
  • rodrique's picture
    rodrique

    hello guys i wish to know how to do this using proteus and arduino
    what are the libraries to included in proteus and arduino and incorporating the gsm mudule and the pgrs/gps mudules

    Jul 18, 2016
  • suraj's picture
    suraj

    my lcd stops on finding module..
    and serial window shows AT AT AT...

    Jul 18, 2016
  • Vicente's picture
    Vicente

    hi I wanted to know how do to communicate with arduino wassap or so already in code

    Jul 29, 2016
  • salufu's picture
    salufu

    please help i power my sim 800l with arduino uno 5volt on board using a usb port of my laptop,everything went fine but when i send track vehicle, i got no respond.i read sim800l datasheet which says it draw up to 2A of current.my sim800l works with all AT command. but doesnt respond to sms command.please what kind of power should i use to power my sim800l? thanks in advance

    Jul 31, 2016
  • salufu's picture
    salufu

    please admin,please power a 12volt battery charger with auto cut off of with lcd display...no post of power supply,regulator and battery charger or solar...please see into that

    Jul 31, 2016
  • salufu's picture
    salufu

    after powering the sim800l with 3.7volt lithium battery,i was able to dial the number in the module and its rings.but when i send message(Track Vehicle) to the module,it only receive the message but nothing was sent back to the number i put in the programming...pls how to i test if a sim800l is working with sms recieving and sending sms using arduino...please urgent feedback is needed.. 

    Aug 07, 2016
  • ramu's picture
    ramu

    Why we need 10 K POT

    Aug 10, 2016
  • salufu's picture
    salufu

    for those having issue this project and u have the same hardware as mine. here is the solution....

    Aug 17, 2016
  • salufu's picture
    salufu

    hardware: gps:NEO-6m-0-001 (Gps), and arduino(any type)....make sure your the gps TX is connected to pin10 of the arduino and the RX is left unconnected.... gsm sim800l...i power my sim800l with a full charger power bank battery......Lithium Ion 18600 3.7v Battery... since the sim800l data sheet says it need power of 3.7v-4.2volt and draw current of up to 2A.. after all connection are done.here is the code i used..

    Aug 17, 2016
  • salufu's picture
    salufu

    #include<LiquidCrystal.h>
    #include <SoftwareSerial.h>
    LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
    SoftwareSerial gps(10, 11); // RX, Tx
    int led = 13;

    int l = 0, x = 0, k = 0;
    char str1[100], msg[32];

    //String str="";
    char str[70];
    String gpsString = "";

    char *test = "$GPGGA";

    String latitude = "No Range      ";
    String longitude = "No Range     ";

    int temp = 0, i;
    boolean gps_status = 0;
    void setup()
    {

      lcd.begin(16, 2);
      Serial.begin(9600);
      gps.begin(9600);

      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");
      delay(500);
      Serial.println("AT+CMGF=1");
      lcd.print("GPS Initializing");
      lcd.setCursor(0, 1);
      lcd.print("  No GPS Range  ");
      get_gps();
      delay(500);
      lcd.clear();
      lcd.print("GPS Range Found");
      lcd.setCursor(0, 1);
      lcd.print("GPS is Ready");
      delay(500);
      lcd.clear();
      lcd.print("System Ready");
      digitalWrite(led, LOW);
    }
    void loop()
    {
      for (unsigned int t = 0; t < 60000; t++)
      {
        serialEvent();
        if (temp == 1)
        {
          x = 0, k = 0, temp = 0;
          while (x < l)
          {
            while (str1[x] == '#')
            {
              x++;
              while (str1[x] != '*')
              {
                msg[k++] = str1[x++];
              }
            }
            x++;
          }
          get_gps();
          tracking();
          msg[k] = '\0';
          lcd.clear();
          lcd.print(msg);
          delay(1000);
          temp = 0;
          l = 0;
          x = 0;
          k = 0;
        }
      }
      lcd.scrollDisplayLeft();
      Serial.println("AT+CMGD=1,4"); // delete all SMS
    }

    void serialEvent()
    {
      while (Serial.available())
      {
        char ch = (char)Serial.read();
        str1[l++] = ch;
        if (ch == '*')
        {
          temp = 1;
          lcd.clear();
          lcd.print("Message Received");
          delay(1000);
        }
      }
    }

    void gsm_init()
    {
      lcd.clear();
      lcd.print("Finding Module..");
      boolean at_flag = 1;
      while (at_flag)
      {
        Serial.println("AT");
        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 gpsEvent()
    {
      gpsString = "";
      while (1)
      {
        while (gps.available() > 0)          //checking serial data from GPS
        {
          char inChar = (char)gps.read();
          gpsString += inChar;                   //store data from GPS into gpsString
          i++;
          if (i < 7)
          {
            if (gpsString[i - 1] != test[i - 1])    //checking for $GPGGA sentence
            {
              i = 0;
              gpsString = "";
            }
          }
          if (inChar == '\r')
          {
            if (i > 65)
            {
              gps_status = 1;
              break;
            }
            else
            {
              i = 0;
            }
          }
        }
        if (gps_status)
          break;
      }
    }

    void get_gps()
    {
      gps_status = 0;
      int x = 0;
      while (gps_status == 0)
      {
        gpsEvent();
        int str_lenth = i;
        latitude = "";
        longitude = "";
        int comma = 0;
        while (x < str_lenth)
        {
          if (gpsString[x] == ',')
            comma++;
          if (comma == 2)     //extract latitude from string
            latitude += gpsString[x + 1];
          else if (comma == 4)     //extract longitude from string
            longitude += gpsString[x + 1];
          x++;
        }
        int l1 = latitude.length();
        latitude[l1 - 1] = ' ';
        l1 = longitude.length();
        longitude[l1 - 1] = ' ';
        lcd.clear();
        lcd.print("Lat:");
        lcd.print(latitude);
        lcd.setCursor(0, 1);
        lcd.print("Long:");
        lcd.print(longitude);
        i = 0; x = 0;
        str_lenth = 0;
        delay(10000);
      }
    }

    void tracking()
    {
      Serial.println("AT+CMGF=1");    //Sets the GSM Module in Text Mode
      delay(1000);  // Delay of 1000 milli seconds or 1 second
      Serial.println("AT+CMGS=\"+2349051146346\""); // Replace x with mobile number
      delay(100);
      delay(1000);
      Serial.println("Vehicle Tracking Alert:");
      Serial.print("Your Vehicle Current Location is:");
      Serial.print("Latitude:");
      Serial.print(latitude);
      Serial.print("Longitude:");
      Serial.print(longitude);
      Serial.print("Please take some action soon..\nThankyou");
      delay(100);
      Serial.write(26);// ASCII code of CTRL+Z
      delay(1000);
      lcd.clear();
      lcd.print("Message Sent");
      delay(2000);
      lcd.clear();
      lcd.print("System Ready");
      //return;
    }

    Aug 17, 2016
  • salufu's picture
    salufu

    during my study of the gsm module i use, i found that my sim800l shutdown when i use serial.find(''Track Vehicle''); so i use the wireless notices board code in the other post and it work fine, so i just have to swap and do some modification to the existing code and it work..command to send is 

    #anything u like*    example;
    #track* 
    #track vehicle* 

    Aug 17, 2016
  • anusha's picture
    anusha

    could you please send the whole code that is working properly

    Oct 27, 2016
  • salufu's picture
    salufu

    thanks to admin for the great work being done..

    Aug 17, 2016
  • Maddy's picture
    Maddy

    Hi Salufu,
    Glad to know that your setup finally worked!
    Thanks

    Aug 20, 2016
  • Eromosele's picture
    Eromosele

    hi everyone. please is it possible to make the reply message to your phone a link to google maps showing the location of the car? if possible please how? thanks a lot.

    Aug 26, 2016
  • vivek's picture
    vivek

    Hi everyone , I m sending message from mobile ....... but not getting response on the mobile from the GSM module i.e the value of " lat" . and "long"....please help me out

    Sep 03, 2016
  • stepehen's picture
    stepehen

    Friends after executing the entire code available in this webpage.. its shows error in the following code

    char *test="$GPGGA";

    if(Serial.find("Track Vehicle"))

    if(Serial.find("OK"))

    please resolve this as soon as possible friends....

    Sep 08, 2016
  • Abhishek's picture
    Abhishek

    Try using the code provided by user 'salufu' in above comments, he has successfully done it.

    Sep 20, 2016
  • Muhammad's picture
    Muhammad

    hello , can i use other gps module ? anyone ?

    Sep 10, 2016
  • Abhishek's picture
    Abhishek

    Yes, check the datasheet of your GPS before connecting it.

    Sep 20, 2016
  • mark's picture
    mark

    hi .... everyone I have GPS-GSM Module (SARA-G350) i used the first code but it doesnt work thé module give not a réponse please can you help me

    Sep 12, 2016
  • Abhishek's picture
    Abhishek

    @Muhammad and @mark: Yes you can use any GPS but check the datasheet of it before connecting it. Also you can use this procedure to first properly interface it with Arduino: How to Use GPS with Arduino

    Sep 20, 2016
  • Vicente's picture
    Vicente

    hi i am from Ecuador use the GPS module neo Neo 6 - m and 900 sim Hield but I made ​​the connection and load the code but it does not work me out on serial port only the command AT

    Sep 16, 2016
  • Hassan's picture
    Hassan

    sir i have a problem with it . it does'nt work its stuck in (system ready) and can't get any thing out of it . when i send (Track Vehicle ) nothing happen could u pls help me with it iam using the same code , sim900 and also what does echo mean ?

    Sep 17, 2016
  • Maddy's picture
    Maddy

    Check your connections and code again. Further echo is disabled otherwise it will print all the given AT commands on serial monitor.

    Sep 21, 2016
  • Vicente's picture
    Vicente

    that such a shield for 900 gsm sim I need other libraries or if it works with libraries that are in the code

    Sep 18, 2016
  • Abhishek's picture
    Abhishek

    You dont need to install any Library for GSM, we just need to serially send and receive the data from the GSM module using the Rx and Tx pin. Further SoftwareSerial.h library is enough to change the Default Rx Tx pins of Arduino, which we have used.

    Sep 20, 2016
  • Brana Rajah's picture
    Brana Rajah

    Sir, this is my final year project, I have got the Arduino UNO R3, GPRS/GSM Shield SIM900 Ver 2.0
    I am little confused with my components, My following doubts are,
    1. In my GPRS Shield SIM900 there is a in built antenna, what's the purpose of the antenna?
    2. is it nesessary to add a GPS module for this project?, if so please recommend a suitable one?
    3. But in my Shield i don't have no idea where to plug the GPS module?

    Your help would be highly appreciated!

    Thank you.

    Sep 24, 2016
  • Abhishek's picture
    Abhishek

    Antenna is there in all the GSM modules, and you can use any GPS module or can use GPS Module SKG13 which we have used in this project.

    Oct 01, 2016
  • sarhia's picture
    sarhia

    is it OK to use trimmers 10k or high precision 3296w 10 k ? because their is no available 10k pot

    Oct 02, 2016
  • nurul's picture
    nurul

    hello.....anyone can help me to do this project for my final year project?

    Oct 03, 2016
  • salufu's picture
    salufu

    for those that still encounter problem in setting up this circuit to work, double check your connection very well and if its failed to work check the previous page and use the modified code i use for my own circuit

    Oct 03, 2016
  • salufu's picture
    salufu

    nurul this project can be use for final year project but use just have to make sure you are not having any issue with the connection between the hardware. also make sure you check your hardware datasheet expecially the gsm and the gps for proper power connection 

    Oct 03, 2016
  • salufu's picture
    salufu

    the issue i had then was that my sim800l doesnt work with ''serial.find''

    while(Serial.available()) 
      {
        if(Serial.find("#A."))
        {
          digitalWrite(led, HIGH);
          delay(1000);
          digitalWrite(led, LOW);
          while (Serial.available()) 
          {
          char inChar=Serial.read();
          str[i++]=inChar;
          if(inChar=='*')
          {
            temp=1;
            return;
          } so i tried use other method like the while loop

     

     serialEvent();
        if (temp == 1)
        {
          x = 0, k = 0, temp = 0;
          while (x < l)
          {
            while (str1[x] == '#')
            {
              x++;
              while (str1[x] != '*')
              {
                msg[k++] = str1[x++];
              }
            }
            x++;
          }

     

    so check whether your gsm works with the serial.find or the while loop 

    Oct 03, 2016
  • salufu's picture
    salufu

    #include<LiquidCrystal.h>
    #include <SoftwareSerial.h>
    LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
    SoftwareSerial gps(10, 11); // RX, Tx    connect the gps tx to pin10 and leave the gps RX unconnected 
    int led = 13;

    int l = 0, x = 0, k = 0;
    char str1[100], msg[32];

    //String str="";
    char str[70];
    String gpsString = "";

    char *test = "$GPGGA";

    String latitude = "No Range      ";
    String longitude = "No Range     ";

    int temp = 0, i;
    boolean gps_status = 0;
    void setup()
    {

      lcd.begin(16, 2);
      Serial.begin(9600);
      gps.begin(9600);

      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");
      delay(500);
      Serial.println("AT+CMGF=1");
      lcd.print("GPS Initializing");
      lcd.setCursor(0, 1);
      lcd.print("  No GPS Range  ");
      get_gps();
      delay(500);
      lcd.clear();
      lcd.print("GPS Range Found");
      lcd.setCursor(0, 1);
      lcd.print("GPS is Ready");
      delay(500);
      lcd.clear();
      lcd.print("System Ready");
      digitalWrite(led, LOW);
    }
    void loop()
    {
      for (unsigned int t = 0; t < 60000; t++)
      {
        serialEvent();
        if (temp == 1)
        {
          x = 0, k = 0, temp = 0;
          while (x < l)
          {
            while (str1[x] == '#')
            {
              x++;
              while (str1[x] != '*')
              {
                msg[k++] = str1[x++];
              }
            }
            x++;
          }
          get_gps();
          tracking();
          msg[k] = '\0';
          lcd.clear();
          lcd.print(msg);
          delay(1000);
          temp = 0;
          l = 0;
          x = 0;
          k = 0;
        }
      }
     // lcd.scrollDisplayLeft();
      Serial.println("AT+CMGD=1,4"); // delete all SMS
    }

    void serialEvent()
    {
      while (Serial.available())
      {
        char ch = (char)Serial.read();
        str1[l++] = ch;
        if (ch == '*')
        {
          temp = 1;
          lcd.clear();
          lcd.print("Message Received");
          delay(1000);
        }
      }
    }

    void gsm_init()
    {
      lcd.clear();
      lcd.print("Finding Module..");
      boolean at_flag = 1;
      while (at_flag)
      {
        Serial.println("AT");
        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 gpsEvent()
    {
      gpsString = "";
      while (1)
      {
        while (gps.available() > 0)          //checking serial data from GPS
        {
          char inChar = (char)gps.read();
          gpsString += inChar;                   //store data from GPS into gpsString
          i++;
          if (i < 7)
          {
            if (gpsString[i - 1] != test[i - 1])    //checking for $GPGGA sentence
            {
              i = 0;
              gpsString = "";
            }
          }
          if (inChar == '\r')
          {
            if (i > 65)
            {
              gps_status = 1;
              break;
            }
            else
            {
              i = 0;
            }
          }
        }
        if (gps_status)
          break;
      }
    }

    void get_gps()
    {
      gps_status = 0;
      int x = 0;
      while (gps_status == 0)
      {
        gpsEvent();
        int str_lenth = i;
        latitude = "";
        longitude = "";
        int comma = 0;
        while (x < str_lenth)
        {
          if (gpsString[x] == ',')
            comma++;
          if (comma == 2)     //extract latitude from string
            latitude += gpsString[x + 1];
          else if (comma == 4)     //extract longitude from string
            longitude += gpsString[x + 1];
          x++;
        }
        int l1 = latitude.length();
        latitude[l1 - 1] = ' ';
        l1 = longitude.length();
        longitude[l1 - 1] = ' ';
        lcd.clear();
        lcd.print("Lat:");
        lcd.print(latitude);
        lcd.setCursor(0, 1);
        lcd.print("Long:");
        lcd.print(longitude);
        i = 0; x = 0;
        str_lenth = 0;
        delay(10000);
      }
    }

    void tracking()
    {
      Serial.println("AT+CMGF=1");    //Sets the GSM Module in Text Mode
      delay(1000);  // Delay of 1000 milli seconds or 1 second
      Serial.println("AT+CMGS=\"+xxxxxxxxxxxxxx\""); // Replace x with  your country mobile number
      delay(100);
      delay(1000);
      Serial.println("Vehicle Tracking Alert:");
      Serial.print("Your Vehicle Current Location is:");
      Serial.print("Latitude:");
      Serial.print(latitude);
      Serial.print("Longitude:");
      Serial.print(longitude);
      Serial.print("Please take some action soon..\nThankyou");
      delay(100);
      Serial.write(26);// ASCII code of CTRL+Z
      delay(1000);
      lcd.clear();
      lcd.print("Message Sent");
      delay(2000);
      lcd.clear();
      lcd.print("System Ready");
      //return;
    }

    Oct 03, 2016
  • mark's picture
    mark

    Hi salufu hope u can help me with this problem i really need your help right for my final project this is the error in program
    in my LCD it stock in Finding Module.. what is the problem>? and there are some problems below in arduino program says

    C:\Users\ASUS\Documents\Arduino\GPS_tracker\GPS_tracker.ino:15:14: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

    char *test = "$GPGGA";

    ^

    C:\Users\ASUS\Documents\Arduino\GPS_tracker\GPS_tracker.ino: In function 'void gsm_init()':

    C:\Users\ASUS\Documents\Arduino\GPS_tracker\GPS_tracker.ino:114:27: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

    if (Serial.find("OK"))

    ^

    C:\Users\ASUS\Documents\Arduino\GPS_tracker\GPS_tracker.ino:131:27: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

    if (Serial.find("OK"))

    ^

    C:\Users\ASUS\Documents\Arduino\GPS_tracker\GPS_tracker.ino:148:37: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

    if (Serial.find("+CPIN: READY"))

    Please help ASAP.. Thanks

    Nov 10, 2016
  • Zaa's picture
    Zaa

    i have my final project. I used SIM800 and my gps is Skylab SKG25B . does it work for the same circuit and codes?.

    Oct 09, 2016
  • Andrew O&#039;Neill's picture
    Andrew O'Neill

    hi, how do you simulate this design in proteus?

    Oct 12, 2016
  • jeffrey's picture
    jeffrey

    i have done this project with same components without using lcd.
    i hav a litlle confusion with this..how to interface gps with uno... whether TTL pins hav to be interfaced with uno? is TTL pins used as transmitter?/ please suggest me how to interface gps with uno..
    then i dont recieve any msg...

    Oct 13, 2016
  • Hussein Aliy's picture
    Hussein Aliy

    I like this project to do for my self experiance

    Oct 15, 2016
  • missa's picture
    missa

    how can you simulate this project proteus? tq in advance .

    Nov 01, 2016
  • Avinash's picture
    Avinash

    it is showing finding module and that's it can someone say me a solution its urgent

    Nov 01, 2016
  • harris's picture
    harris

    what if i will not put lcd. what would i do? pls help me

    Nov 03, 2016
  • Abhishek's picture
    Abhishek

    LCD is optional to check the status messages for debugging purpose, you can remove it.

    Nov 30, 2016

Pages

Leave a comment