Introduction: GPS Location Finder

About: I am a robotics engineer and a part time programmer

Hi everyone , Today let us see how to make a GPS Location Finder using NEO-6m GPS module and arduino. First let us see what is GPS .

Step 1: WHAT IS GPS?

The Global Positioning System (GPS), originally NAVSTAR GPS, is a satellite-based radionavigation system owned by the United States government and operated by the United States Air Force. It is a global navigation satellite system (GNSS) that provides geolocation and time information to a GPS receiver anywhere on or near the Earth where there is an unobstructed line of sight to four or more GPS satellites. Obstacles such as mountains and buildings block the relatively weak GPS signals.

The GPS does not require the user to transmit any data, and it operates independently of any telephonic or internet reception, though these technologies can enhance the usefulness of the GPS positioning information. The GPS provides critical positioning capabilities to military, civil, and commercial users around the world. The United States government created the system, maintains it, and makes it freely accessible to anyone with a GPS receiver.

Step 2: GATHER THE MATERIALS REQUIRED:

The materials requried are:

*NEO-6m gps module - amazon affiliate

*Arduino uno - amazon affiliate

*Lcd display - amazon affiliate

**Note: These are amazon affiliate links. When you buy through these links I will recieve a small commision which will help me to write more and more articles

Step 3: CIRCUIT

The circuit as follows:

GPS module ==> Arduino

* GND ==> GND

* TX ==> Digital pin (D3)

* RX ==> Digital pin (D4)

*Vcc ==> 3.3 V

LCD==> Arduino
* VSS ==> GND

* VCC ==> 5V

*VEE ==> 10K Resistor

*RS ==> A0 (Analog pin)

*R/W ==> GND

*E ==> A1

*D4 ==> A2

*D5 ==> A3

*D6 ==> A4

*D7 ==> A5

*LED+ ==> VCC

*LED- ==> GND

Step 4: CODE

#include <LiquidCrystal.h>
#include <SoftwareSerial.h>
#include <TinyGPS.h>
//long   lat,lon; // create variable for latitude and longitude object
float lat ,lon ; // create variable for latitude and longitude object 
SoftwareSerial gpsSerial(3,4);//rx,tx
LiquidCrystal lcd(A0,A1,A2,A3,A4,A5);
TinyGPS gps; // create gps object
void setup(){
Serial.begin(9600); // connect serial
Serial.println("The GPS Received Signal:");
gpsSerial.begin(9600); // connect gps sensor
lcd.begin(16,2);
}
 
void loop(){
    while(gpsSerial.available()){ // check for gps data
    if(gps.encode(gpsSerial.read()))// encode gps data
    { 
    gps.f_get_position(&lat,&lon); // get latitude and longitude
    // display position
    lcd.clear();
    lcd.setCursor(1,0);
    lcd.print("GPS Signal");
   
    lcd.setCursor(1,0);
    lcd.print("LAT:");
    lcd.setCursor(5,0);
    lcd.print(lat);
    Serial.print(lat);
    Serial.print(" ");
    Serial.print(lon);
     Serial.print(" ");
    lcd.setCursor(0,1);
    lcd.print(",LON:");
    lcd.setCursor(5,1);
    lcd.print(lon);
    
   }
  }
  
  String latitude = String(lat,6);
    String longitude = String(lon,6);
  Serial.println(latitude+";"+longitude);
  delay(1000);
  
}

Step 5: OUTPUT

So after all the connections and uploading the code ,the GPS module take some time to get satellite fix which is usually 15 to 20 minutes .If it takes more time go outdoor and try as it is not able to get the satellite fix inside the house. After that you can see that the lcd display can show the GPS cordinates .