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); } } } }