Tutorial Starduino: Membaca Data Dari GPS dan Menampilkannya di LCD


starduino_gps_573

Gambar di samping adalah foto eksperimen Starduino yang sedang membaca data dari GPS dan menampilkannya di layar LCD 16×2 karakter. Modul GPS yang digunakan adalah Parallax CIROCOMM PMB-648 GPS module.

Modul GPS tipe ini tergolong mudah untuk diantarmukakan dengan mikrokontroler (Starduino Board) karena memiliki output berupa data serial dengan level tegangan TTL dan RS232. Adapun baudrate yang digunakan adalah 4800 (default).

Jika menggunakan Starduino Board, pin TX/RX-TTL modul GPS bisa langsung dihubungkan dengan pin-1 (RX) dan pin-2 (TX) pada Starduino Board. Sedangkan pin TX/RX-RS232 modul GPS bisa dihubungkan ke pin-2 (RX) port DB9 Starduino Board dan pin-3 (TX) port DB9 Starduino Board. Pada eksperimen ini, saya menghubungkan pin TX modul GPS ke pin-1 Starduino Board.

Modul GPS PMB-648 dari Parallax ini mendukung protokol data NMEA0183 versi 2.2, untuk lebih detil tentang protokol data NMEA0183, silakan download datasheetnya melalui link berikut ini: http://www.tronico.fi/OH6NT/docs/NMEA0183.pdf.

Sesaat setelah modul GPS diberi catudaya, maka modul GPS akan mengirimkan data-data secara terus-menerus dengan format yang sesuai dengan protokol data NMEA0183. Berikut adalah tampilan data yang dikirimkan oleh modul GPS sesaat setelah modul GPS diberi catudaya yang saya ‘tangkap’ menggunakan program DockLight V1.9.

docklight_gps

Pada tutorial singkat ini hanya akan ditampilkan data mengenai posisi pada derajad lintang dan bujur dan beberapa data tambahan seperti waktu/jam, ketinggian dari permukaan air laut, dan jumlah satelit yang terbaca. Adapun data yang harus diambil adalah data pada kalimat berawalan $GPGGA seperti yang ditunjukkan pada screenshot di atas.

GP adalah Global Positioning. Kalimat yang diawali dengan $GP berarti kalimat yang berhubungan dengan posisi global seperti derajad lintang dan bujur, ketinggian, dll.

GGA adalah Global Positioning System Fix Data. Time, Position and fix related data
for a GPS receiver
.

Berikut adalah keterangan selengkapnya mengenai format kalimat $GPGGA.

nmea0183_gga

Setelah mengetahui informasi-informasi di atas, maka tugas program kontroler adalah menerima dan menampung data yang diterima dari modul GPS dan mengidentifikasi kalimat $GPGGA yang selanjutnya data-data yang terkandung dalam kalimat $GPGGA tersebut kita ambil dengan memilah-milah string yang terpisahkan oleh tanda baca koma (,).

Berikut adalah penggalan-penggalan program yang terdiri dari deklarasi variabel-variabel yang digunakan, perintah pembacaan data serial dan penyimpanan pada buffer data serial, perintah pemilahan data-data string yang terpisahkan oleh tanda baca koma, dan perintah tampilan pada LCD 16×2.

Deklarasi Variabel

#include <LiquidCrystal.h>
#include <MsTimer2.h>

int i=0, j=0, n=0;
char ch;
char *char_ptr;
char inbuf[250];
char *gps[16];
int inbuf_len = 0;
boolean CRLF = false;
unsigned long XWAIT;

LiquidCrystal LCD(7,6,5,4,3,2);

Baca Data Serial – Simpan Dalam Buffer Data Serial

while (!CRLF && XWAIT>0)
{
  if (Serial.available())
  {
    inbuf[inbuf_len] = Serial.read();
    inbuf_len++;
    if (strstr(inbuf, "\r\n"))
      CRLF = true;
  }
  XWAIT--;
}

Pemilahan Data String

gps[0] = strtok(inbuf, ",");
for (i=1; i<10; i++)
gps[i] = strtok(NULL, ",");

Menampilkan Data Pada LCD 16×2

LCD.clear();
LCD.print("Jam Sekarang:");
LCD.setCursor(0, 1);
LCD.print(gps[0]);
LCD.print(" UTC");
delay(2000);

LCD.clear();
LCD.print("Lintang:");
LCD.setCursor(0, 1);
LCD.print(gps[1]);
LCD.print(" LS");
delay(2000);

LCD.clear();
LCD.print("Bujur:");
LCD.setCursor(0, 1);
LCD.print(gps[3]);
LCD.print(" BT");
delay(2000);

LCD.clear();
LCD.print("Jumlah Satelit:");
LCD.setCursor(0, 1);
LCD.print(gps[6]);
LCD.print(" Satelit");
delay(2000);

LCD.clear();
LCD.print("Ketinggian:");
LCD.setCursor(0, 1);
LCD.print(gps[8]);
LCD.print(" Meter");
delay(2000);

Berikut adalah foto board STARDUINO + LCD 16×2 + Modul GPS.

starduino_gps

Video Demo
Anda dapat menyaksikan video demo hasil eksperimen ini melalui link berikut ini:

http://youtu.be/qyZgNSsgGu4.

Demikianlah tutorial singkat pembacaan data dari modul GPS Parallax PMB-648 menggunakan Starduino Board dan menampilkan data jam, derajad lintang dan bujur, jumlah satelit terbaca, dan ketinggian pada LCD 16×2 karakter.

Untuk informasi detil produk Starduino, harga dan cara pemesanan, silakan mengunjungi http://teknikelektrolinks.com/starduino/neo-starduino.htm.

Semoga bermanfaat.

Selamat belajar dan selamat berkarya!

🙂

Iklan
Perihal

Cek situs kami di http://teknikelektrolinks.com. Blog Raspberry Pi: http://raspi.teknikelektrolinks.com

Tagged with: , , , ,
Ditulis dalam Arduino, AVR, Elektronika, Industrial Control and Automation, MCS51, Mikrokontroler, Starduino
One comment on “Tutorial Starduino: Membaca Data Dari GPS dan Menampilkannya di LCD
  1. udin berkata:

    berapaan modul gpsnya mas? beli dimana y?

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

Kategori

Bergabunglah dengan 2.497 pengikut lainnya

Display Counter 3-Digit Dengan Koneksi Wi-Fi
Display Nomor Antrian WiFi Android
Mengontrol Relay Via USB/Serial dan Wi-Fi
Blog Linux dan Raspberry Pi


USB Relay USB-2REL
USB Relay USB-4REL
Water Level Control WLC-02
Serial Relay SER-4REL
NEO STARDUINO SMS ALARM

Alarm SMS Berbasis NEO STARDUINO

1 PC – 6 Unit USB-2REL

Testing 6 USB-2REL Pada 1 Komputer

Standard Pengujian USB-2REL

Pengujian USB-2REL Sebelum Dikirim

LPT-4REL on Knoppix 7.0.5

Testing LPT-4REL on Knoppix Linux

T101 Inkubator Telur

T101 Inkubator Penetas Telur

KONTROL PERALATAN LISTRIK VIA PORT LPT KOMPUTER

Demo Kontrol Kontaktor via Port LPT

STARDUINO meets ANDROID

Demo Kontrol Bluetooth Relay Android

STARDUINO SMS RELAY

Kontrol Relay Via SMS Dengan Starduino

STARDUINO WEB RELAY

Demo Kontrol Relay Via Web/Internet

JustBASIC USB-2REL Control

Demo Kontrol USB-2REL + JustBASIC

STARDUINO + GPS + LCD

Demo Starduino GPS Dengan LCD

USB-2REL EXTREME TEST

Demo Kontrol On/Off Lampu USB-2REL

THERMOSTAT T101 IN ACTION

Demo Thermostat T101 Pada SV=37.5°C

WATER LEVEL CONTROL WLC-02

Demo Kontrol Level Air Tandon WLC-02

HUMIDITY CONTROLLER H103

Demo Kontrol Kelembaban H103 (DHT11)

%d blogger menyukai ini: