Pada artikel ini, saya akan membahas bagaimana kita bisa membuat GPS tracker kita sendiri dengan menggunakan board arduino dan juga module GPS yang mudah dibeli di pasaran.
GPS tracker yang akan dibuat disini mampu mengirimkan titik koordinat terbaru dan otomatis dapat kita lihat pada google map saat kita mengklik link yang dikirimkan dari GPS tracker ini via SMS.
Sebelum memulai pembuatan GPS tracker ini, ada beberapa komponen yang perlu disiapkan.
Alat yang diperlukan :
- Arduino Uno / Arduino lainnya
- Modul GPS NEO
- Modul relay
- Modul GSM SIM800L
- Modul step down switching 3A
- Kabel Jumper
Dari alat yang diperlukan diatas, untuk arduino yang digunakan kalian bisa memilih antara arduino uno, nano, pro micro, mega atau yang lainnya. Semua nya sama karena kita hanya memerlukan beberapa pin saja pada modul arduino nya.
Untuk modul GSM, karena yang paling lumrah di pasaran adalah SIM 800L, saya lebih menggunakan tipe ini. Tipe lain juga bisa berfungsi dengan coding yang akan kita gunakan nanti.
Modul relay hanya opsional saja yang akan dipakai sebagai sistem keamanan untuk mematikan sepeda motor melalui SMS. Kalian bisa tidak memasangkan modul relay jika hanya ingin mengaktifkan mode GPS tracker nya saja.
Gambar Rangkaian :
Perhatikan gambar perkabelan diatas. Modul regulator switching step down yang digunakan harus sudah kita atur tegangan outputnya menjadi 5V sebelum dipasangkan ke rangkaian nya. Hal ini bertujuan agar tegangan keluar dari modul regulator step down tidak merusak modul lainnya. Karena modul step down ini saat kita dapat di pembelian, trimpot nya belum diatur. Sehingga saat input modul step down diberi tegangan 12V maka tegangan out nya masih 12V juga, ini bisa merusak modul lainnya seperti modul GSM yang perlu 5V, modul GPS yang juga perlu tegangan 5V.
Pin yang digunakan pada gambar rangkaian diatas tidak terikat, artinya kalian masih bisa memindahkan pin yang digunakan ke tempat yang lain dengan catatan kalian juga harus mengubah dan menyamakan denganpin yang dipakai pada coding kalian.
Coding Arduino :
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
SoftwareSerial GPRS(8, 7);
SoftwareSerial neo(3, 2);
String textMessage;
String lampState;
int nyala=5;
String lati="";
String longi="";
int led=13;
const int relay = 4;
TinyGPSPlus gps;
void setup() {
pinMode(nyala,OUTPUT);
delay(10000);
digitalWrite(nyala,HIGH);
delay(2000);
digitalWrite(nyala,LOW);
pinMode(led,OUTPUT);
pinMode(relay, OUTPUT);
digitalWrite(relay,HIGH);
Serial.begin(9600);
GPRS.begin(9600);
neo.begin(9600);
GPRS.listen();
delay(5000);
digitalWrite(led,HIGH);
Serial.print("GPRS ready...\r\n");
GPRS.print("AT+CMGF=1\r\n");
delay(1000);
GPRS.print("AT+CNMI=2,2,0,0,0\r\n");
delay(1000);
digitalWrite(led,LOW);
}
void loop(){
GPRS.listen();
delay(2);
while(GPRS.available()>0){
digitalWrite(led,HIGH);
textMessage = GPRS.readString();
Serial.print(textMessage);
delay(10);
digitalWrite(led,LOW);
}
neo.listen();
if(textMessage.indexOf("ON")>=0){
digitalWrite(relay, HIGH);
lampState = "ON";
Serial.println("Lamp set to ON\r\n");
textMessage = "";
GPRS.println("AT+CMGS=\"081xxxxxxxxx\"");
delay(500);
GPRS.print("Kelistrikan kendaraan telah dinyalakan.\r");
GPRS.write( 0x1a );
delay(1000);
GPRS.println("AT+CMGD=1,4");
}
if(textMessage.indexOf("LOKASI")>=0){
smartDelay(1000);
Serial.println("Permintaan data lokasi\r\n");
textMessage = "";
GPRS.println("AT+CMGS=\"081xxxxxxxxx\"");
delay(500);
String pesan="https://maps.google.com/?q="+lati+","+longi;
GPRS.print(pesan);
GPRS.write( 0x1a );
delay(1000);
GPRS.println("AT+CMGD=1,4");
}
//https://maps.google.com/?q=<lat>,<lng>
if(textMessage.indexOf("OFF")>=0){
digitalWrite(relay, LOW);
lampState = "OFF";
Serial.println("Lamp set to OFF\r\n");
textMessage = "";
GPRS.println("AT+CMGS=\"081xxxxxxxxx\"");
delay(500);
GPRS.print("Kelistrikan kendaraan telah dimatikan.\r");
GPRS.write( 0x1a );
delay(1000);
GPRS.println("AT+CMGD=1,4");
}
}
static void smartDelay(unsigned long ms)
{
unsigned long start = millis();
do
{
neo.listen();
delay(2);
while (neo.available())
gps.encode(neo.read());
} while (millis() - start < ms);
lati=String(gps.location.lat(),8);
longi=String(gps.location.lng(),6);
Serial.println(lati);
Serial.println(longi);
}
Dari coding diatas bisa teman teman perhatikan, kita memerlukan dua library yang harus sudah ter install pada software arduino di komputer kita, yaitu TinyGPS dan softwareSerial.
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
Kedua library tersebut bisa kita cari pada library manager di software arduino IDE.
Untuk pengaturan pin yang digunakan pada modul GPS dan GSM bisa kita lihat di pengaturan coding softwareSerial berikut ini.
SoftwareSerial GPRS(8, 7);
SoftwareSerial neo(3, 2);
Untuk GSM atau modul GPRS pada alat yang saya buat menggunakan pin 8 dan 7 untuk rx dan tx nya. Sedangkan untuk modul GPS Neo nya saya menggunakan pin 3 dan 2 untuk pin rx tx yang menuju ke modul GPS.
Saat menyalakan alat ini, kita harus membuat coding yang berfungsi untuk men-set modul GSM ke mode text dan juga mengatur mode lain yang akan diaktifkan pada modul GSM.
GPRS.print("AT+CMGF=1\r\n");
delay(1000);
GPRS.print("AT+CNMI=2,2,0,0,0\r\n");
delay(1000);
Nah setelah pengaturan mode itu berhasil, maka kita masuk ke coding utama yaitu membaca data GPS dan mengekstak data koordinat yang kemudian bisa kita gunakan dan kirimkan ke modul GSM.
GPRS.listen();
delay(2);
while(GPRS.available()>0){
digitalWrite(led,HIGH);
textMessage = GPRS.readString();
Serial.print(textMessage);
delay(10);
digitalWrite(led,LOW);
}
neo.listen();
if(textMessage.indexOf("LOKASI")>=0){
// Turn on relay and save current state
smartDelay(1000);
Serial.println("Permintaan data lokasi\r\n");
textMessage = "";
GPRS.println("AT+CMGS=\"081xxxxxxxxx\"");
delay(500);
String pesan="https://maps.google.com/?q="+lati+","+longi;
GPRS.print(pesan);
GPRS.write( 0x1a );
delay(1000);
GPRS.println("AT+CMGD=1,4");
}
Dari coding diatas bisa diartikan, jika pesan yang masuk mengandug kata “LOKASI” maka alat ini akan mengirimkan titik koordinat lokasi yang sebelum nya sudah dibaca ke nomor yang sudah ditentukan melalui perintah AT+CMGS.
Jika rangkaian yang teman teman buat sudah benar dan coding serta library sudah terupload dengan baik, maka seharusnya jika teman teman mengirim perintah SMS “LOKASI” ke alat GPS tracker nya. GPS Tracker nya akan membalas otomatis koordinat terbaru yang terbaca. Contoh nya ada pada video dibawah ini.
Jika temen temen ingin yang lebih pro lagi, sebenarnya kita bisa menggambar ulang rangkaian arduino, GPS, dan GSM menjadi satu papan PCB sehingga ukuran nya jauh lebih kecil lagi.
Seperti GPS tracker mini yang saya buat pada video dibawah ini, menggunakan coding yang sama dengan coding diatas. Hanya saja pcb yang digunakan saya gambar ulang dan cetak di pabrik PCB.
Semoga artikel ini bisa membantu teman teman lebih mudah untuk memahami bagaimana kita bisa membuat GPS tracker dengan menggunakan modul Arduino dan yang lainnya.
Jika kalian tertarik dengan project ini, jangan lupa untuk subscribe channel youtube “Anak Agung Duwi Arsana” untuk mendapatkan updatetan informasi menarik lainnya
Eksplorasi konten lain dari Duwi Arsana
Berlangganan untuk dapatkan pos terbaru lewat email.
BANG ITU HARUS ADA KOUTA KAH UNTUK NGIRIM SINYAL LOKASINYA ?ATAU TIDAK PERLU ?
model ini perlu., kalau tidak mau pakai kuota bisa menerapkan modul lora namanya bang
kalau gak pakai sms tapi gps ngiirim data secara realtime ke server kita misal pakai mqtt bisa tidak?
bisa kok tinggal ubah coding aja, hardware nya sebagian besar sama
Halo, ada satu hal yang perlu ditambahkan di sini, kita harus menambahkan lebih banyak kode untuk mendapatkan sms pintu mobil terbuka atau peringatan terminal baterai terbuka
Engr Obaidullah Khan
bisa bang, tapi itu akan membuat pcb nya menjadi lebih besar. kalau tidak masalah dengan hal itu, sebenenarnya banyak fungsi lagi bisa ditambahkan