Introduction: GPS Tracker - DIY - Arduino - Quectel L80 - SIM800
In this instructable, I will show you how to make your very own GPS Tracker.
Let's Do it...
Step 1: Designing of the Circuit
Design schematic diagram in EDA tool (PCB Design Software).
List of EDA Tools (PCB Design Software):
- DipTrace
- EAGLE PCB Design
- Kicad EDA
- Express PCB
- Proteus PCB Design & Simulation software
- Altium Designer
- NI Multisim
You can select any one of them.
I prefer EAGLE PCB Design Software.
Step 2: Designing of the PCB Layout
After designing of the schematic diagram, Now start designing of PCB Layout in the Eagle EDA tool (PCB Design Software).
Step 3: Soldering Process - SMD
Step 4: Burning the Firmware - ATMega328-AU
Test Code:
#include<SoftwareSerial.h>
#include<TinyGPS++.h>
TinyGPSPlus gps; SoftwareSerial gpsSerial(8, 9); // (RX, TX) const int POWERKEY = 3; String str3; const int LED = 13;
void setup()
{
Serial.begin(9600);
gpsSerial.begin(9600);
pinMode(LED, OUTPUT);
pinMode(POWERKEY, OUTPUT);
digitalWrite(LED, HIGH);
digitalWrite(POWERKEY, HIGH);
delay(3000);
digitalWrite(LED, LOW);
digitalWrite(POWERKEY, LOW);
}
void loop()
{
while (gpsSerial.available() > 0)
{
if (gps.encode(gpsSerial.read()))
{
if (gps.location.isValid())
{
digitalWrite(LED, HIGH);
Serial.println("AT");
delay(1000);
Serial.println("AT+CPIN?");
delay(1000);
Serial.println("AT+CREG?");
delay(1000);
Serial.println("AT+CGATT?");
delay(1000);
Serial.println("AT+SAPBR=3,1,\"Contype\",\"GPRS\"");
delay(1000);
Serial.println("AT+SAPBR=3,1,\"APN\",\"Your APN Name\"");
delay(1000);
digitalWrite(LED, LOW);
Serial.println("AT+SAPBR=1,1");
delay(1000);
Serial.println("AT+SAPBR=2,1");
delay(1000);
Serial.println("AT+HTTPINIT");//start task and setting the APN,
delay(2000);
Serial.println("AT+HTTPPARA=\"CID\",1");//bring up wireless connection
delay(1000);
Serial.println("AT+HTTPPARA=\"URL\", Your API - latitude=" + String(gps.location.lat(), 6) + "&longitue=" + String(gps.location.lng(), 6));
digitalWrite(LED, HIGH);
delay(4000);
digitalWrite(LED, LOW);
Serial.println("AT+HTTPACTION=0");//close the connection
delay(5000);
Serial.println("AT+HTTPREAD");//close the connection
delay(5000);
Serial.println("AT+HTTPTERM");//close the connection
delay(500);
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
}
}
}
}







