GPS TRACKER
Oleh :
Muhammad Abdul Latif
(1102204526)
S1 TEKNIK ELEKTRO
FAKULTAS TEKNIK ELEKTRO
UNIVERSITAS TELKOM BANDUNG
2023
ABSTRAK
PT.INDO TRANS TEKNOLOGI, merupakah salah satu Perusahaan
yang bergerak di bidang penyediaan perlengkapan pendukung transportasi.
PT. Indo Trans Teknologi ini memproduksi beberapa perlengkapan
pendukung transportasi seperti Fleet Management System, Transportation
Management System, Portable/Cargo Tracker dan sebagainya.
Internet of Things atau disingkat IOT merupakan sebuah teknologi
yang membantu manusia dalam mempermudah pekerjaan manusia. Melalui
IOT ini, manusia dapat dengan mudah terkoneksi dengan perangkat-
perangkat elektronik meskipun dalam jarak yang jauh. Dalam pengembangan
IOT, Perusahaan memerlukan seorang programmer untuk memprogram
perangkat agar dapat bekerja sesuai dengan yang menjadi tujuan agar dapat
bermanfaat dan memudahkan pekerjaan manusia.
ABSTRAK ............................................................................................................... 3
KATA PENGANTAR.............................................................................................. 4
DAFTAR ISI ............................................................................................................ 5
DAFTAR GAMBAR ............................................................................................... 6
DAFTAR TABEL .................................................................................................... 7
BAB 1 ...................................................................................................................... 8
PENDAHULUAN ................................................................................................... 8
1.1 Latar Belakang ............................................................................................... 8
1.2 Lingkup Penugasan......................................................................................... 8
1.3 Target Pemecahan Masalah ............................................................................ 9
1.4 Metode Pelaksanaan Tugas............................................................................. 9
1.5 Rencana dan Penjadwalan Kerja ............................................................... 10
1.6 Ringkasan Sistematika Laporan.................................................................... 11
BAB II ................................................................................................................... 13
PROFIL INSTITUSI KP ........................................................................................ 13
2.1 Profil Instansi........................................................................................... 13
2.2 Struktur Organisasi .................................................................................. 14
2.3 Lokasi Unit Pelaksanaan Kerja ..................................................................... 15
BAB III .................................................................................................................. 16
KEGIATAN DAN PEMBAHASAN ..................................................................... 16
3.1 Kegiatan Kerja Praktik ................................................................................. 16
3.1.1 Deskripsi Singkat ................................................................................... 16
3.1.2 Pekerjaan yang dikerjakan ..................................................................... 16
3.2 Analisis Kritis ............................................................................................... 34
BAB IV .................................................................................................................. 37
Kesimpulan dan Saran............................................................................................ 37
4.1 Kesimpulan ................................................................................................... 37
4.2. Saran dan masukan ...................................................................................... 37
4.2.1 Saran dan masukan untuk Perusahaan ................................................... 37
4.2.2 Saran dan masukan untuk Universitas ................................................... 38
Daftar Pustaka ........................................................................................................ 39
DAFTAR GAMBAR
PENDAHULUAN
1.1 Latar Belakang
5 Memprogram Memprogram
Elecrow A9G agar
mendapatkan timestamp sesuai
dengan format UNIX
10 Memprogram
STM32G070RT6 untuk GPRS
Connection
Table 1 Rencana dan penjadwalan kerja
PROFIL INSTITUSI KP
• Mengutamakan pelanggan.
• Prima.
• ATMEGA32U4+A9G.
• Work voltage: 3.3V to 5V.
• Operating temperature: -30 ℃ to + 80 ℃.
• Three kinds of interface.
• Equipped with 3.5mm headphone jack.
• 3.7V Battery power supply.
• Standby average current 3ma or less.
• Support the GSM / GPRS/ GPS Quad-band, including 850,900,1800,1900MHZ.
• Support China Mobile and China Unicom's 2G GSM network worldwide.
• GPRS Class 10.
• Sensitivity < -105.
• Support GPS Positioning.
• Support for voice calls.
• Support for SMS text messaging.
• Support GPRS data business, the maximum data rate: download 85.6Kbps, upload
42.8Kbps.
• Supports standard GSM07.07, 07.05 AT commands and Ai-Thinker extended
commands.
• Supports two serial ports, a serial port to download an AT command port.
• Support for Global Positioning System.
• Horizontal positioning accuracy of less than 2.5m.
• AT command supports the standard AT and TCP / IP command interface.
• Support digital audio and analog audio support for HR, FR, EFR, AMR speech
coding.
• Support ROHS, FCC, CE, CTA certification.
Untuk menjadikan board ini menjadi sebuah device gps tracker, diperlukan
Langkah-langkah sebagai berikut :
1. Pemasangan antenna GPS dan GSM
Pemasangan antenna ini diperlukan agar board dapat menangkap sinyal gps maupun
gsm dengan baik
Jika board sudah melakukan Langkah-langkah diatas, maka board sudah siap
untuk deprogram
3.1.2.2 Program Device GPS Tracker Elecrow 32u4 with A9G GPRS/GSM/GPS
Program device GPS Tracker Elecrow 32u4 with A9G GPRS/GSM/GPS
ditujukan untuk memiliki beberapa fungsi berikut ini :
1) Dapat mentracking Location device
2) Dapat mentracking speed dan degree dari device
3) Dapat terkoneksi dengan GPRS
4) Dapat mendeteksi ignition menyata atau tidak
5) Dapat mengirimkan data ke platform telematics.transtranck.id
Untuk membuat code program gps tracker board Elecrow ini, kita dapat
menggunakan Arduino IDE karena mikroprosesor yang dipakai sama persis
dengan mikroprosesor yang digunakan oleh Arduino uno yaitu atmega 32u4.
Berikut adalah penjelasan lengkap mengenai program device Elecrow 32u4
with A9G GPRS/GSM/GPS
1) Diagram blok
2) Flowchart
void setup() {
pinMode(ignition_pin, INPUT);
Serial.begin(115200);
Serial1.begin(115200);
delay(2000);
Serial.println("System ON!");
Serial.println("Initializing...");
check_network();
setting_gprs();
turn_on_gps();
}
void loop() {
current_millis = millis()/1000;
// ignition_state = digitalRead(ignition_pin);
ignition_state = HIGH;
if(ignition_state == HIGH){
if(current_millis - last_millis >= interval_ignition_on_in_second){
last_millis = current_millis;
get_gps_data();
timestamp();
ignition = "true";
sendToplatform();
}
}
if(ignition_state == LOW){
if(current_millis - last_millis >= interval_ignition_off_in_second){
current_millis = current_millis;
get_gps_data();
timestamp();
ignition = "false";
sendToplatform();
}
}
}
void check_network(){
while (true) {
Serial1.println("AT+CREG?");
delay(100);
if(Serial1.available()){
String response = Serial1.readStringUntil('\n');
Serial.println(response);
if (response.indexOf("+CREG: 1,1") != -1) {
Serial.println("Success");
break;
}
else{
Serial.println("Looking for a network...");
delay(2000);
}
}
}
}
void setting_gprs(){
Serial1.println("AT+CGATT=1");
delay(100);
if (Serial1.find("OK")) {
Serial.println("Success Connect to GPRS");
}
else{
Serial.println("Failed connect to GPRS");
check_network();
}
Serial1.println("AT+CGDCONT=1,\"IP\",\"internet\"");
delay(100);
if (Serial1.find("OK")) {
Serial.println("Success Setting APN");
}
else{
Serial.println("Failed Setting APN");
check_network();
}
Serial1.println("AT+CGACT=1,1");
delay(100);
if (Serial1.find("OK")) {
Serial.println("OK");
}
else{
Serial.println("Failed");
check_network();
}
}
void turn_on_gps(){
Serial1.println("AT+GPS=1");
delay(100);
if (Serial1.find("OK")) {
Serial.println("GPS Activated");
}
else{
Serial.println("Failed to Active GPS");
return turn_on_gps();
}
}
void get_gps_data(){
turn_on_gpsrd();
if(Serial1.find("+GPSRD:")){
String response = Serial1.readStringUntil('\n');\
int commaIndex1 = response.indexOf(',');
int commaIndex2 = response.indexOf(',', commaIndex1 + 1);
int commaIndex3 = response.indexOf(',', commaIndex2 + 1);
int commaIndex4 = response.indexOf(',', commaIndex3 + 1);
int commaIndex5 = response.indexOf(',', commaIndex4 + 1);
int commaIndex6 = response.indexOf(',', commaIndex5 + 1);
String latitudeStr = response.substring(commaIndex2 + 1, commaIndex3);
String direction_lat = response.substring(commaIndex3 + 1, commaIndex4);
String longitudeStr = response.substring(commaIndex4 + 1, commaIndex5);
String direction_long = response.substring(commaIndex5 + 1,
commaIndex6);
float latitude = latitudeStr.toFloat();
float longitude = longitudeStr.toFloat();
Latitude = convertToDecimal(latitude);
Longitude = convertToDecimal(longitude);
if (direction_lat == "S") {
Latitude = -Latitude;
}
if(direction_long == "W"){
Longitude = -Longitude;
}
Serial.print("Latitude : ");
Serial.println(Latitude, 5);
Serial.print("Longitude : ");
Serial.println(Longitude, 5);
}
if(Serial1.find("$GNRMC,")){
String response = Serial1.readStringUntil('\n');
int commaIndex1 = response.indexOf(',');
int commaIndex2 = response.indexOf(',', commaIndex1 + 1);
int commaIndex3 = response.indexOf(',', commaIndex2 + 1);
int commaIndex4 = response.indexOf(',', commaIndex3 + 1);
int commaIndex5 = response.indexOf(',', commaIndex4 + 1);
int commaIndex6 = response.indexOf(',', commaIndex5 + 1);
int commaIndex7 = response.indexOf(',', commaIndex6 + 1);
int commaIndex8 = response.indexOf(',', commaIndex7 + 1);
String speedstr = response.substring(commaIndex6+1, commaIndex7);
Speed = speedstr.toInt()*1.852;
String degreestr = response.substring(commaIndex7+1, commaIndex8);
Degree = round(degreestr.toFloat());
Serial.print("Speed : ");
Serial.println(Speed);
Serial.print("Degree : ");
Serial.println(Degree);
}
turn_off_gpsrd();
delay(5000);
}
void turn_on_gpsrd(){
Serial1.println("AT+GPSRD=1");
delay(100);
if (Serial1.find("OK")) {
Serial.println("Reading GPS data...");
}
else{
Serial.println("Failed to read GPS data");
return turn_on_gpsrd();
}
}
void turn_off_gpsrd(){
Serial1.println("AT+GPSRD=0");
delay(100);
if (Serial1.find("OK")) {
Serial.println("Deactive read GPS data");
}
else{
Serial.println("Failed to deactive read GPS data");
return turn_off_gpsrd();
}
}
void timestamp(){
Serial1.println("AT+CCLK?");
delay(100);
if (Serial1.find("+CCLK:")) {
String response = Serial1.readStringUntil('\n');
uint16_t Year = response.substring(2, 4).toInt();
uint8_t Month = response.substring(5, 7).toInt();
uint8_t Day = response.substring(8, 10).toInt();
uint8_t Hour = response.substring(11, 13).toInt();
uint8_t Minute = response.substring(14, 16).toInt();
uint8_t Second = response.substring(17, 19).toInt();
Year += 2000;
stamp.setDateTime(Year, Month, Day, Hour, Minute, Second);
unix = stamp.getUnix();
Serial.print("Unix Timestamp\t: ");
Serial.println(unix);
}
}
void sendToplatform(){
String url;
url = "http://telematics.transtrack.id:6055/?id=867959034100155&lat=";
url += formatFloat(Latitude, 5);
url += "&lon=";
url += formatFloat(Longitude, 5);
url += "×tamp=";
url += unix;
url += "&speed=";
url += Speed;
url += "&ignition=";
url += ignition;
url += "&bearing=";
url += Degree;
Serial.print("URL : ");
Serial.println(url);
Serial1.println("AT+HTTPGET=\"" + url + "\"");
Dan berikut adalah dokumentasi Ketika instalasi device pada kendaraan mobil :
Berikut ini adalah hasil dari device GPS Tracker dengan Elecrow 32u4
with A9 GPRS/GSM/GPS :
void get_gps_data(){
turn_on_gpsrd();
if(Serial1.find("+GPSRD:")){
String response = Serial1.readStringUntil('\n');\
int commaIndex1 = response.indexOf(',');
int commaIndex2 = response.indexOf(',', commaIndex1 + 1);
int commaIndex3 = response.indexOf(',', commaIndex2 + 1);
int commaIndex4 = response.indexOf(',', commaIndex3 + 1);
int commaIndex5 = response.indexOf(',', commaIndex4 + 1);
int commaIndex6 = response.indexOf(',', commaIndex5 + 1);
String latitudeStr = response.substring(commaIndex2 + 1, commaIndex3);
String direction_lat = response.substring(commaIndex3 + 1, commaIndex4);
String longitudeStr = response.substring(commaIndex4 + 1, commaIndex5);
String direction_long = response.substring(commaIndex5 + 1,
commaIndex6);
float latitude = latitudeStr.toFloat();
float longitude = longitudeStr.toFloat();
Latitude = convertToDecimal(latitude);
Longitude = convertToDecimal(longitude);
if (direction_lat == "S") {
Latitude = -Latitude;
}
if(direction_long == "W"){
Longitude = -Longitude;
}
Serial.print("Latitude : ");
Serial.println(Latitude, 5);
Serial.print("Longitude : ");
Serial.println(Longitude, 5);
}
if(Serial1.find("$GNRMC,")){
String response = Serial1.readStringUntil('\n');
int commaIndex1 = response.indexOf(',');
int commaIndex2 = response.indexOf(',', commaIndex1 + 1);
int commaIndex3 = response.indexOf(',', commaIndex2 + 1);
int commaIndex4 = response.indexOf(',', commaIndex3 + 1);
int commaIndex5 = response.indexOf(',', commaIndex4 + 1);
int commaIndex6 = response.indexOf(',', commaIndex5 + 1);
int commaIndex7 = response.indexOf(',', commaIndex6 + 1);
int commaIndex8 = response.indexOf(',', commaIndex7 + 1);
String speedstr = response.substring(commaIndex6+1, commaIndex7);
Speed = speedstr.toInt()*1.852;
String degreestr = response.substring(commaIndex7+1, commaIndex8);
Degree = round(degreestr.toFloat());
Serial.print("Speed : ");
Serial.println(Speed);
Serial.print("Degree : ");
Serial.println(Degree);
}
turn_off_gpsrd();
delay(5000);
}
Dalam code diatas, agar data nmea yang didapat tidak masuk terus menerus
sehingga membuat serial AT command bermasalah, penulis membuat pembacaan
tersebut menyala hanya Ketika dibutuhkan saja dan mati setelah data lokasi sudah
didapatkan.
BAB IV
4.1 Kesimpulan
Dari Kegiatan Pelaksanaan KP (Kerja Praktik), kesimpulan yang didapat
adalah sebagai berikut :
1. GPS adalah teknologi yang berfungsi menentukan posisi di permukaan bumi
dengan menggunakan sinyal satelit. Teknologi ini didukung 24 satelit yang
mengirimkan sinyal gelombang mikro ke Bumi. Sinyal ini berfungsi untuk
menentukan posisi, kecepatan, arah dan waktu
2. General Packet Radio Service (GPRS) adalah paket komunikasi data
bergerak pada layanan GSM. Transfer data GPRS umum dihitung per
kilobyte data yang ditransfer. Hal ini berdeda dengan transfer data berbasis
kabel yang dihitung per menit sehingga pengguna tetap diminta membayar
walaupun tidak melakukan transfer data apapun.
3. GPS Tracker adalah sebuah device yang memiliki fungsi untuk mengetahui
posisi secara realtime, GPS tracker ini menggunakan teknologi GPS untuk
mengetahui lokasi dari device ini dan juga GSM untuk mendukung
komunikasi Device agar dapat dikirimkan ke server dan diterima oleh user
sehingga user bisa memonitoring posisi dari device berada.
Saran untuk PT.Indo Trans Teknologi agar system untuk mahasiswa kerja
praktik dapat dibuat dengan lebih baik lagi agar mahasiswa dapat bekerja dan
mempelajari dengan maksimal.
4.2.2 Saran dan masukan untuk Universitas
Saran untuk pihak Universitas Telkom, semoga kegiatan Kerja Praktik (KP)
dapat berjalan dengan lancar dan dimudahkan untuk proses administrasi berkas
pendaftaran perusahaan tempat Kerja Praktik (KP).
Daftar Pustaka
[1] I Made Oka Widyantara, I Gede Agus Krisna Warmayana, dan Linawati,
“Penerapan Teknologi GPS Tracker Untuk Identifikasi Kondisi Traffik Jalan Raya”,
Universitar Udayana, 2015
[2] L. Xiao dan Z. Wang,” Internet of Things: a New Application for Intelligent
Traffic Monitoring System”, Journal Of Networks, Vol. 6, No. 6, 2011, Hal. 887-
894
Lampiran - Lampiran
Lampiran 1 Form Penilaian Pembimbing Lapangan
Lampiran 2 Catatan Kegiatan Kerja Praktik
Logbook 2
Catatan Kegiatan Kerja Praktik Mahasiswa Selama di Tempat Kerja
Praktik
Ulil Ikbal
NIP : 2109002
27 Juni 09.00 WIB 17.00 WIB 8 Jam Mengerjakan Task “send SMS”
Selasa
Ulil Ikbal
NIP : 2109002
Ulil Ikbal
NIP : 2109002
Ulil Ikbal
NIP : 2109002
Ulil Ikbal
NIP : 2109002
Ulil Ikbal
NIP : 2109002
Ulil Ikbal
NIP : 2109002
Ulil Ikbal
NIP : 2109002
Ulil Ikbal
NIP : 2109002
Ulil Ikbal
NIP : 2109002
Ulil Ikbal
NIP : 2109002