Membuat Sistem GPS Tracking

Arsitektur sistem secara global

Sistem terdiri dari Tracking Devices yaitu alat yang secara periodik atau berdasarkan kondisi tertentu mengirimkan informasi posisinya pada saat itu. Informasi posisi diperoleh dari perhitungan data yang diterimanya dari satelit GPS yang senantiasa ada setiap saat. Pada seri artikel ini kita akan menggunakan handphone Nokia N95 yang telah dilengkapi dengan GPS receiver built in, dan membuat program J2ME sehingga hanphone dapat berfungsi sebagai GPS Tracking Device.

Sistem GPS Tracking secara global dapat digambarkan seperti di bawah.

Arsitektur Sistem GPS Tracking

Data posisi tersebut dikirimkan oleh N95 ke Server GPS Tracking melalui internet (disini kita menggunakan HTTP untuk mengirimkan data). Koneksi ke internet dilakukan melalui GPRS yang dimiliki oleh masing-masing operator GSM dan terhubung ke internet.

Di internet kita memiliki GPS Tracking Server yang diletakkan pada server hosting yang akan menampung data yang dikirimkan oleh Nokia N95 pada sebuah database (di sini kita menggunakan MySQL). Server tersebut kita lengkapi dengan aplikasi pemantau (di sini kita buat dengan PHP) sehingga dapat diakses oleh komputer pemantau melalui web browser.

Aplikasi di GPS tracking device

Pada Nokia 95 kita akan membuat aplikasi berbasis J2ME yang mengakses GPS Receiver yang telah ada secara built-in. Setelah informasi posisi didapat, maka data tersebut dikirimkan secara periodik melalui koneksi GPRS dengan protokol HTTP ke server GPS Tracking. Format URL untuk mengirimkan data melalui HTTP misalnya:

http://namaserver/up.php?unit=1&lat=-6.100&lon=107.2900

Struktur URL tersebut terdiri dari beberapa bagian dan dapat dijelaskan sebagai berikut:

Bagian Keterangan
Http:// Nama protokol yang digunakan yaitu HTTP
Namaserver Nama server GPS Tracking yang dikenali di internet misalnya nama server hosting yang kita gunakan
u.php Nama file PHP yang memproses data yang diterima dari Nokia N95. File ini akan menyimpan data yang diterimanya ke database untuk diproses selanjutnya oleh server gps tracking.
Unit=1 Parameter identifikasi unit GPS Tracking device, dimana setiap unit yang mengirimkan data
Lat=-6.100 Latitude koordinat GPS device pada saat itu
Lon=107.2900 Longitude koordinat GPS device pada saat itu

Prinsip kerja aplikasi J2ME sendiri kita sederhanakan sebagai berikut:

  1. Inisialisasi data
  2. Baca data dari GPS dan tunggu sampai data posisi GPS sudah didapatkan
  3. Jika data GPS sudah didapat dan perioda pengiriman data (misal setiap 1 menit) sudah dicapai maka buka koneksi GPRS dan kirimkan data melalui HTTP dengan format URL seperti di atas
  4. Ulangi langkah ke 2, demikian seterusnya, proses ini dilakukan setiap 1 detik sekali.

Implementasi looping di atas akan dilakukan dengan fasilitas Timer yang sudah terdapat pada J2ME.

Flow chart aplikasi GPS Tracking Device dapat digambarkan sebagai berikut:

Flowchart Aplikasi GPS Tracking Device

Aplikasi pemantau

Aplikasi pemantau diimplementasikan dengan web based application, yaitu aplikasi disimpan pada web server yang berfungsi sebagai GPS Tracking Server. Komputer pemantau akan melakukan koneksi ke alamat web server untuk dapat mematau posisi benda bergerak yang dimilikinya.

Aplikasi pemantau yang kita bangun menggunakan tampilan peta digital yang diambil dari Google Map. Peta Google Map tersebut kita program melalui API (application programming interface) yang tersedia untuk menampilkan objek yang mewakili posisi benda bergerak/ GPS Tracking Device.

Informasi posisi objek tersebut diambil dari database MySQL dimana datanya selalu diupdate oleh GPS Tracking Device secara periodik. Akibatnya kita akan mendapatkan efek bergerak setiap kali kita me-refresh data dan menampilkannya pada peta Google Map.

Arsitektur sistem pemantau dapat digambarkan sebagai berikut:

Arsitektur Aplikasi Pemantau

Berikut adalah deskripsi masing-masing file program PHP yang digunakan untuk membangun aplikasi GPS Tracking Server:

Program Keterangan
up.php File penerima update data dari GPS Tracking Device. File ini memiliki parameter input unit_id, lat, dan lon yang merepresentasikan informasi posisi GPS Tracking Device pada saat mengirimkan data. Data ini dikirimkan melalui HTTP GET method seperti yang telah dijelaskan pada bagian sebelumnya.

Ketika data diterima, program ini akan langsung menyimpan data tersebut pada table yang terdapat pada database. Informasi yang disimpan adalah semua data tersebut di atas (unit_id, lat, dan lon) ditambah dengan timestamp yang mencatat waktu penyimpanan dan id record (auto increment).

viewer.php Program ini berfungsi untuk menginisialisasi dan menampilkan Google Map pada suatu koordinat tertentu, menyediakan tombol navigasi kepada user (geser dan zoom), menyediakan fasilitas pencarian benda bergerak, dan menampilkan objek dengan tampilan animasi (jika objek yang dipantau bergerak maka tampilan pada peta akan bergerak juga).

Benda bergerak direpresentasikan dengan objek Marker yang terdapat pada API Google Map. Setiap Marker harus memiliki koordinat dimana Marker tersebut diposisikan pada peta.

Data posisi koordinat Marker tersebut diambil dari table yang ada pada database yang berisi data posisi terakhir benda bergerak. Data ini harus diformat terlebih dahulu ke dalam bentuk XML karena Google Map mensyaratkan seperti itu. Hal ini dikerjakan oleh program lainnya yaitu lastpos.xml.php.

lastpos.xml.php Berfungsi untuk membaca data dari table database dan menghasilkan output file dengan format XML sehingga dapat dibaca oleh Google Map dan untuk menampilkan Marker di atas peta oleh program viewer.php.

Struktur database

Database minimal harus terdiri dari satu tabel yang menyimpan informasi posisi terakhir dari benda bergerak yang ingin dipantau. Kita namakan saja tabel ini dengan tabel lastpos. Struktur data pada tabel tersebut adalah sebagai berikut:

Field Datatype Keterangan
id Integer auto increment primary key Indentifikasi nomor record
unit_id Varchar(10) Identifikasi benda bergerak
lat Double Informasi koordinat latitude benda bergerak
lon Double Informasi koordinat longitude benda bergerak
ts Datetime Informasi timestamp saat record dituliskan

Seperti telah disebutkan di atas, tabel ini akan senantiasa di-update datanya oleh GPS Tracking Device yang terdapat pada benda bergerak yang dipantau yang dilakukan oleh program up.php.

Tabel ini juga akan senantiasa dibaca oleh program viewer.php melalui program lastpos.xml.php ketika akan menampilkan repersentasi posisi benda tersebut pada tampilan peta Google Map.

Database ini kita namakan misalnya gpstracking. Berikut adalah struktur perintah SQL untuk membuat database tersebut.

CREATE TABLE `lastpos` (
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`unit_id` varchar(10),
`lat` double DEFAULT NULL,
`lon` double DEFAULT ’0′,
`ts` datetime DEFAULT NULL,
PRIMARY KEY  (`id`),
UNIQUE KEY `UNITX` (`unit_id`)
) TYPE=MyISAM;

Masukkan juga bebebrapa contoh data yang dapat digunakan selama proses pembuatan program aplikasi sbb:

INSERT INTO `lastpos` VALUES (’1′, ‘D991HN’, ‘-6.50′, ’107.207′, ’2007-07-27 04:11:32′);
INSERT INTO `lastpos` VALUES (’2′, ‘B3892HY’, ‘-6.69′, ’107.192′, ’2007-07-27 14:21:22′);
INSERT INTO `lastpos` VALUES (’3′, ‘D4833AA’, ‘-6.4334′, ’107.3248′, ’2007-07-27 14:12:34′);
INSERT INTO `lastpos` VALUES (’4′, ‘D434YT’, ‘-6.7132′, ’107.9932′, ’2007-07-16 15:24:58′);

Ikuti artikel selanjutnya tentang bagaimana membuat aplikasi J2ME di handphone Nokia N95 dan membuat aplikasi Pemantau menggunakan Google MAP API.

Source Code Program up.php

Berikut ini controh script PHP up.php yang digunakan untuk menerima data dari device Nokia N95 dan menyimpan data tersebut ke tabel.

<?
///koneksi ke database
mysql_connect("localhost","root","");
mysql_select_db("dijexi_gps");
//ambil parameter query string

$unit_id=$_GET[‘unit_id’];
$lat=$_GET[‘lat’];
$lon=$_GET[‘lon’];
$speed=$_GET[‘speed’];
$course=$_GET[‘course’];
$alt=$_GET[‘alt’];
$imei=$_GET[‘imei’];

//update tabel lastpos
$sql="update lastpos set lat=’$lat’,lon=’$lon’,speed=’$speed’,course=’$course’,alt=’$alt’,ts=NOW(), imei=’$imei’ where unit_id=’$unit_id’";
$res=mysql_query($sql) or die(mysql_error());

//insert into tracks history
$sql = "insert into tracks (unit_id,lat,lon,speed,course,alt,ts) values (‘$unit_id’,'$lat’,'$lon’,'$speed’,'$course’,'$alt’,NOW())";
$res=mysql_query($sql) or die(mysql_error());

echo "OK";
?>
 

Artikel terkait:

Akhmad Daniel Sembiring

vITraining.com – Qualified IT Products, Outsourcing, and Services

Ligarwangi.com – Linux, E-book, Coffee, Gift, etc

This entry was posted in Google Map, GPS Tracking System and tagged , , , . Bookmark the permalink.

58 Responses to Membuat Sistem GPS Tracking

  1. Pingback: GPS References | Berlimpah's Blog

  2. henri says:

    mau tanya pak bagamana cara memasukan API ke J2ME say mau bikin grafk online dengan J2ME masalah gak bisa memasukan servis API nya
    maaf pertanyaanya agak melenceng dari topik

    trimakasih..

  3. sudiyo says:

    aku juga mohon di ajari bikin GPS 60cs jadi GPS tracking……… bagaimana cara menginstal ke kompoter di rumah? trim

  4. redi says:

    saya sedang menyelesaikan tugas akhir. Saya sudah buat alat tracking nya menggunakan modul SIM508 (GPS/GSM) + mikrokontroller atmega128.
    Untuk pengiriman datanya sudah berhasil,
    sekarang saya tinggal bikin peta/server untuk memvisualisasikannya.
    Ada yang punya ide nggak? gimana caranya? trimakasih

  5. Iqbal says:

    Mas redi,boleh tau modul SIM508 (GPS/GSM) + mikrokontroller atmega128 yang sudah berhasil dan bagaimana pengiriman datanya….terima kasih

  6. Engly says:

    saya juga ingin melakukan hal yang sama dengan yang bro buat, tapi saya masih bingung dengan rangkaian alatnya, mohon bantuannya……. Terimakasih…..

  7. Hermawan says:

    redi :
    saya sedang menyelesaikan tugas akhir. Saya sudah buat alat tracking nya menggunakan modul SIM508 (GPS/GSM) + mikrokontroller atmega128.
    Untuk pengiriman datanya sudah berhasil,
    sekarang saya tinggal bikin peta/server untuk memvisualisasikannya.
    Ada yang punya ide nggak? gimana caranya? trimakasih

    Iqbal :
    Mas redi,boleh tau modul SIM508 (GPS/GSM) + mikrokontroller atmega128 yang sudah berhasil dan bagaimana pengiriman datanya….terima kasih

    Kalo berkenan bleh saya mnta sourcecode nya, saya juga sedang dalam penelitian saya. Terima kasih..

  8. Rinal says:

    mas, saya lagi belajar aplikasi traking ini, bisa kirimkan data keseluruhannya ke email saya? soalnya saya menarik dengan topik yang masa terangkan ini,
    terima kasih mas bila bisa membantu saya,,,,,

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>