Mengetahui Posisi dengan Mengintegrasikan GPS Receiver dan GSM

Wednesday, March 30, 2011 6:22 PM by Computer and Programming
Abstraksi
GPS receiver sebagai alat penentu posisi dikembangkan dalam bentuk modul. Dengan bentuk modul tersebut GPS receiver dapat di integrasikan dengan perangkat lain, seperti komputer, PDA, GSM (telepon selluler). Modul GPS receiver mengeluarkan standaar data yang disebut NMEA. Data NMEA dari GPS receiver untuk dapat langsung digunakan, karena harus diproses terlebih dahulu. Machine Java (J2ME) yang ditanam pada GSM? dapat digunakan sebagai tool bahasa pemrograman untuk membaca data yang dikirim dari GPS receiver. Sebelum ditampilkan data NMEA harus di parsing untuk dapat di tampilkan informasi posisi yang lebih informasif.
Keyword : GPS, J2ME, NMEA, GSM, Position

A.?????? PENDAHULUAN

GPS (Global Positioning System) adalah sistem navigasi berbasiskan satelit yang saling berhubungan satu dengan yang lain. Untuk mengetahui posisi, minimalkan diperlukan 3 buah satelit yang masing-masing mengirimkan sinyal ke GPS Receiver. Sinyal tersebut diolah, kemudian posisi diubah menjadi titik yang dikenal dengan nama Way-point, yaitu berupa titik-titik koordinat lintang (latitude) dan bujur (Longitude).
Secara fisik GPS Receiver berupa integrated circuit (IC) dan dapat digunakan untuk berbagai kepentingan, misalnya pada mobil, kapal, pesawat terbang, pertanian dan lain-lain. GPS receiver dapat diintegrasikan dengan komputer, laptop atau perangkat lain. GPS Receiver memiliki output standar yang berisi informasi yang berhubungan dengan data-data geografi. Standar format informasi tersebut diberi nama NMEA-0183.
GPS Receiver ada yang dilengkapi dengan display ada juga tanpa display. GPS yang memliki display informasi ditampilkan pada layar displaynya, sedangkan yang tidak memiliki tampilan atau yang lebih dikenal dengan modul GPS Receiver. GPS receiver yang berbentuk modul untuk mengirimkan sintak NMEA-0183 keperangkat lain mengggunakan media komunikasi data baik dengan media kabel atau wireless.
Perangkat modul GPS yang sekarang komunikasi dilengkapi dengan bluetooth. Perangakat yang sering digunakan untuk menampilkan data tersebut adalah Personal Komputer, Laptop, PDA dan telephone seluler.


A.1???????? NMEA (National Mrearine Electronics Association) 0183 Standard

Pada mulanya NMEA-0183 adalah standar industri sebagai antar-muka alat kelautan yang diperkenalkan sejak tahun 1983. NMEA-0183 adalah hasil konversi dari sinyal elektronik, protokol tranmisi data, waktu dan format perintah lain.
NMEA-0183 berisi informasi yang berhubungan dengan geografi seperti tentang koordinat, ketinggian, kecepatan dan masih banyak lagi. Untuk menampilkan informasi yang informatif maka data NMEA-0183 perlu diolah lebih lanjut.

A.2??????? J2ME

J2ME adalah bagian dari J2SE yang ditujukan untuk implementasi pada peralatan embendded system yang tidak dapat di tangani oleh J2SE. Embendded system adalah produk-produk dengan komputer kecil berada didalamnya, namun aplikasi yang dimanfaatkan dari peralatan tersebut sangatlah spesifik. Contoh aplikasi embendded system adalah aplikasi yang memanfaatka microprosessor seperti televisi, handphone, PDA, sistem keamanan gedung dan sebagainya.
Sama seperti java pada umumnya yang menggunakan JVM (Java Virtual Machine), dalam J2ME juga menggunakan virtual machine yang disebut K Virtual Machine (KVM). K Virtual Machine adalah virtual machine dengan kapasitas memori yang sangat kecil. Huruf K di ambil dari Kilobyte yang mengambarkan betapa kecil total memori yang digunakan mulai dari 128 kilobyte hingga maksimal rata-rata sekitar 512 kilobyte. Java 2 platform, Micro Edition (J2ME) merupakan kumpulan API (Aplication Programing Interface) yang memfokuskan diri pada konsumen embendded system. J2ME berisi kumpulan arsitektur, profile, dan paket opsional. Aritektur J2ME dapat dilihat pada Gambar 1.
Hierarki Platform Java 2
Hierarki Platform Java 2

A.3??????? Modul GPS Receiver

Untuk penelitian ini peneliti menggunakan modul Garmin GPS 10 dengan spesifikasi terlihat pada Tabel 1:
Garmin GPS 10x
Garmin GPS 10

Tabel 1. Spesifikasi Garmin GPS 10
Receiver Type 12 parallel channel GPS receiver
GPS Performance Receiver: WAAS enabled, 12 parallel channel GPS receiver continuously tracks and uses up to 12 satellites to compute and update your position
Acquisition Times
Reacquisition: Less than 2 seconds
Warm: Approximately 15 seconds
Cold: Approximately 45 seconds
AutoLocate?: 5 minutes
SkySearch: 5 minutes
Update Rate 1 to 900 seconds between updates; programmable in 1 second increments
GPS Accuracy:
Position: < 15 meters, 95% typical
Velocity: 0.1 knot RMS steady state
Connectivity Bluetooth wireless technology; Protocol: NMEA 0183, sentences GGA/GSA/GSV/GLL/RMC/VTG
Dimension 88 x 45 x 19 mm
Weight 80 g
Selain menggunakan GPS 10, untuk saat ini direkomendasikan menggunakan Garmin GPS 10x.

A.4??????? Hanphone Nokia 6120

Perangkat ini yang digunakan untuk mengambil data dari perangkat GPS receiver serta untuk menampilkan hasil pengolahan informasi di dalam layarnya. Hanphone yang penulis gunakan adalah Nokia 6120 Classic dengan MIDP 2.0. Dengan spesifikasi tersebut digunakan untuk menjalankan aplikasi J2ME. Selain itu hanphone Nokia 6120 Classic juga sudah men-support koneksi dengan handware lain via bluetooth.
Nokia 6120 Classic
Nokia 6120 Classic
Adapun spesifikasi detail handphone yang dipakai dapat diklik disini.

B.?????? PEMBAHASAN

Pada penelitian metode ini menggunakan GPS receiver, dan handphone. Penelitian kedua ini difokuskan bagaimana mengambil data NMEA dari perangkat GPS receiver untuk ditampilkan di handphone. Data yang diambil pada penelitian ke dua ini adalah data NMEA yang standar yang dapat digunakan untuk mengetahui data Latitude dan Longitude.
Prinsip Kerja Penelitian
Prinsip Kerja Penelitian

B.1???????? Pembuatan Program.

Untuk membuat aplikasi J2ME dalam handphone penulis melakukan beberapa pengolahan terhadap format data GPRMC yang dikirimkan dari GPS receiver.

B.1.1???????? Pembuatan Koneksi.

Langkah pertama untuk koneksi lewat bluetooth ke GPS receiver, kita perlu mengetahui terlebih dahulu Address Device GPS receiver. Untuk perangkat yang penulis pakai memilki alamat 00054f002823. Adapun bentuk untuk umum koneksi adalah (btspp:alamat device dan port), kemudian membuat InputStreamReader menggunakan koneksi yang sebelumnya dibuka.
1
2
3
4
String url = "btspp://00054f002823:1";
javax.microedition.io.StreamConnection connection = (StreamConnection) Connector.open(url, Connector.READ);
 
java.io.InputStreamReader in = new InputStreamReader(connection.openInputStream());

B.1.2??????? Membaca Data

Pada sesi ini data dikirim dari GPS receiver dengan berurutan dan selalu ditambahkan dalam urutan string sampai ditemukan karakter (ASCII kode 13) yang menandakan akhir sebuah baris. Untuk proses lebih lanjut karakter terakhir diakhiri dengan karakter (line feet, ASCII kode 10).
1
2
3
4
5
6
7
8
9
10
11
in = new InputStreamReader(con.openDataInputStream());
while ( (ch = in.read()) != '\n') {
txtNMEA += (char) ch;
}
txtNMEA = txtNMEA.substring(0, txtNMEA.length() - 1);
String output;
int in;
while ((in = reader.read()) != 13){
txtNMEA += (char) in;
}
txtNMEA = txtNMEA.substring(1, txtNMEA.length() - 1);

B.1.3??????? Memproses Data

Masing-masing baris merupakan sebuah record yang berbeda-beda dalam protocol NMEA-0183. Untuk mengambil data value pada masing-masing record melalui beberapa tahapan.

B.1.3.1??????? Proses Parser

Parser berfungi untuk memisahkan record menjadi data-value dengan mengidentifikasi pemisah karakter (?,?). Jadi dengan menggunakan method next (akan mengembalikan nilai String) dan method hasNext (yang mengembalikan nilai true jika masih ada data yang akan diparsing). Dengan menggunakan method String standar indexOf atau substring, maka data dapat diambil.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public void Parser(){
currentPositon = 1;
nextPosition = txtNMEA.indexOf(DELIMITER, currentPositon);
TYPE_NMEA = next();
UTCPosition? = next();
State = next();
Latitude = next();
LatitudeIndicator = next();
. . . .
private boolean hasNext(){
return nextPosition != -1 &amp;&amp; currentPositon &lt;= nextPosition;
}
private String next() throws NoSuchElementException{
if (!hasNext())
throw new NoSuchElementException();
String next = txtNMEA.substring(currentPositon, nextPosition);
currentPositon = nextPosition + 1;
nextPosition = txtNMEA.indexOf(DELIMITER, currentPositon);
return next;
}

B.1.3.2?????? Konversi Data

Data yang dikirim dari GPS receiver tidak selamanya langsung ditampilkan, ada beberapa yang harus di konversi. Dalam khasus ini data kecepatan masih dalam bentuk knot (1 knot = 1.50779 mile/hour), data tersebut penulis konversi kedalam bentuk km/hour (Kilometer per jam)..
J2ME tidak mengenal tipe data floating point sehingga harus ditambahkan class baru yang dapat mengkonversi dari bentuk string (input dari GPS receiver ke bentuk floating point).
1 knot = 1.85 kilometer/hour
int SpeedX = MathFP.mul(MathFP.toFP(SpeedOverGround),MathFP.toFP("1.85"));
SpeedOverGround =? MathFP.toString( MathFP.round(SpeedX, 2)) + " km/h";

B.1.3.3?????? Membuat Method Untuk Mengambil Data-Value

Masing-masing data yang sudah diolah dan siap ditampilkan akan dibuatkan method agar nantinya memudahkan untuk menampilkannya di program utama. Berikut contoh programnya.
1
2
3
4
5
6
public String getLatitude(){
return Latitude;
}
public String getLatitudeIndicator(){
return LatitudeIndicator;
}

B.1.3.4?????? Menampilkan data

Komponen-komponen yang sudah dipersiapkan untuk ditampilkan akan ditampilkan pada program utama dengan memanggil method yang telah kita buat sebelumnya.
1
2
3
4
5
6
7
8
//Tampilkan Latitude
cY = cY + intvBaris;
g.setColor(0, 0, 255);
g.setFont(Font.getFont(Font.FACE_MONOSPACE, Font.STYLE_PLAIN, Font.SIZE_MEDIUM));
g.drawString("Latitude", cXLabel, cY, g.TOP|g.LEFT) ;
g.setColor(255, 0, 0);
g.setFont(Font.getFont(Font.FACE_MONOSPACE, Font.STYLE_PLAIN, Font.SIZE_MEDIUM));
g.drawString(": " + gps.getLatitude() + " " + gps.getLatitudeIndicator(), cXData, cY, g.TOP|g.LEFT) ;
Tampilan pada layar hanphone dapat dilihat pada gambar dibawah ini:
Tampilan hasil Penelitian
Tampilan hasil Penelitian

C.?????? KESIMPULAN

Setelah dilakukan penelitian, maka dapat diambil kesimplan:
  1. Hanphone dapat digunakan untuk membaca data NMEA dari modul GPS receiver yang dikirim via bluetooth dengan? bahasa pemrograman J2ME.
  2. Pasring dalam J2ME dapat dilakukan menggunakan fungsi indexOf dan substring
  3. Lokasi koordinat dapat ditampilkan dilayar handphone menggunakan class Canvas
  4. Posisi longitude dan latitude yang diambil dari modul GPS riceiver di hanphone valid karena sama dengan yang diambil dengan laptop.

REFERENSI

  1. Abidin, Z, Hasanuddin; Jones, Andrew; Kahar Joenil; Survei Dengan GPS; PT. Pradnya Paramita; Jakarta, 2002.
  2. Andy Mitchell; Analysis Volume:1 Geographical Pattern & Relationship; ESRI Press; Redlands, California.
  3. Davis, E, David; GSI for Everyone Second Edition; ESRI Press, Redlands, California; Desember 2001.
  4. Dreamtech Software Team; Wireless Programming with J2ME?; New York; USA; 2002
  5. Feng, Yu and Zhu Jun; Wireless Java Programming with 2 Micro Edition; SAMS; Indianapolis; USA; 2001
  6. Garmin Ltd; About GPS; http://www.garmin.com/aboutGPS/; Garmin Ltd; Januari 2006
  7. Garmin Ltd; Mobile Electronic GPS 10; http://www.garmin.com/products/gps10/; Garmin Ltd; Januari 2006
  8. GSMArena.com; Nokia 7610 Detail Spesification; http://www.gsmarena.com/nokia_7610-703.php;
  9. Januari 2006
  10. Hartanto, Aditya, Antonius; Tip dan Trik Java 2 Microedition Mobile Interface Device Programing; Elek Media Komputindo; Jakarta; 2003.
  11. Kimmo L?yt?n?; Enabling Location-Based Applications with J2ME?; ForumNokia.com
  12. Keogh, James; J2ME:The Complete Reference; McGraw-Hill; New York;
  13. Riggs, Roger; Taivalsaari, Antero; Peursem, Van, Jim; Huopaniemi, Jyri; Patel, Mark;? Uotila,? Aleksi; Editor, ?Holliday, Jim; Programming Wireless Devices with the Java? 2 Platform, Micro Edition, Second Edition; Addison Wesley; Juni 2003.
  14. Sun Developer Network;Java 2 Platform, Micro Edition (J2ME); JSR 68 Overview; http://java.sun.com/j2me/overview.html; Sun Microsystems, Inc; Januari 2006
  15. Sunyoto, Andi., 2007, ?Thesis: Integrasi Modul GPS Receiver dan GPRS untuk Penentuan Posisi dan Jalur Pergerakan Obyek Bergerak (Studi Kasus : Penentuan Posisi Taksi di Yogyakarta)?, S2 Jurusan Ilmu Komputer, UGM, 2007.
  16. Schmidt, Albrecht; Holleis, Paul; Kranz, Matthias; Rukzio, Enrico; Accessing GPS receiver from mobile phone via bluetooth; http://www.hcilab.org/documents/tutorials/BT_GPS/BT_GPS.htm; Ludwig-Maximilians-University Munich; Desember 2005.
  17. Schmidt, Albrecht; Holleis, Paul; Kranz, Matthias; Rukzio, Enrico; Simple J2ME NMEA parser; http://www.hcilab.org/documents/tutorials/NMEA_Parser/NMEA_Parser.htm; Ludwig-Maximilians-University Munich; Desember 2005.
  18. Sun Microsystems, Inc; User?s Guide Wireless Toolkit, Version 2.0 Java? 2 Platform, Micro Edition; Santa Clara; U.S.A Maret 2000.
  19. Tremblett, Paul; Instant Wireless JavaTM with J2METM; MCGraw-Hill; New York; 2002
  20. Topley, Kim; J2ME In A Nutshell; O?Reilly; O’Reilly; Edisi Maret 2002.
  21. Yuan, Juntao, Michael; Enterprise J2ME: Developing Mobile Java Applications; Prentice Hall PTR; New York; Oktober 2003

0 Response to "Mengetahui Posisi dengan Mengintegrasikan GPS Receiver dan GSM"

Post a Comment