Apa itu GPS?
GPS atau Global Positioning System adalah sistem penentuan lokasi dan navigasi berbasis satelit. Sistem ini mampu menentukan posisi di permukaan bumi dengan sinkronisasi dari satelit. Sistem GPS beroperasi dengan konstelasi yang terdiri dari 24 buah satelit. GPS merupakan sistem buatan amerika serikat. Selain GPS terdapat juga sistem navigasi lainnya seperti GLONASS milik Rusia, dan lain sebagainya. Sementara itu GNSS (Global Navigation Satelite Systems) merupakan gabungan dari sistem penentuan posisi global, termasuk GPS, Glonass, Galileo dan lain-lain.
Modul GPS Ublox NEO6MV2
Modul GPS yang digunakan pada percobaan ini adalah modul GY-NEO6MV2 . Pada modul u-blox NEO-6M ini telah terdapat regulator tegangan LDO 3.3V, sehingga modul ini bisa langsung digunakan dengan supply 5V dari arduino. Modul ini dapat menggunakan komunikasi serial UART. Baud rate default dari modul ini adalah 9600. Selain itu, pada modul ini juga telah dilengkapi antena external berbahan keramik. Harga dari modul ini cukup terjangkau, sekitar 50 ribuan.
Percobaan Modul GPS dengan Arduino
Percobaan 1
Pada percobaan ini akan dilakukan pengujian modul gps Ublox Neo-6M. Caranya mudah yaitu dengan menghubungkan tx rx arduino ke tx rx modul gps, dan supply (VCC dan GND) mdul gps ke 5V dan GND arduino. Untuk programnya, karena kita hanya ingin melihat dat yang dikirim modul GPS via komunikasi UART maka programnya kosongkan saja. Disini kita gunakan tx rx default arduino yaitu pin 0 dan 1, karena datanya bisa diamati langsung di serial monitor. Jadi disini arduino hanya sebagai antarmuka untuk menampilkan data yang dikirimkan oleh modul GPS, melalui serial monitor. Koneksi dan programnya sebagai berikut:
Pin Ublox Neo | Pin Arduino Uno |
VCC | 5V |
RX | RX (0) |
TX | TX (1) |
GND | GND |
void setup() { } void loop() { }
Hasil dari percobaan diatas dapat dilihat pada serial monitor dengan setting baud rate 9600, sebagai berikut (data sengaja di sensor demi keamanan privasi 😁).

Sekilas mungkin datanya terlihat acak, namun ini bukan lah error. Data ini merupakan format data NMEA (National Marine Electronics Association) yaitu format data standar pada GPS. Untuk informasi lengkap tentang NMEA sudah banyak di interner, bisa dicari dengan mengetikan kata kunci “format data NMEA”. Untuk mendapatkan data yang lengkap memerlukan waktu beberapa saat sampai modul gps dapat mengunci dengan satelit. Hal ini juga bergantung dari antena modul dan kondisi lingkungan, seperti adanya penghalang. Untuk itu penggunaan di outdoor akan lebih cepat mendapatkan data.
Percobaan 2
Hasil percobaan diatas menunjukan modul GPS berfungsi, dan mengirimkan data dalam format NMEA. Selanjutnya pada percobaan kali ini, akan dilakukan percobaan untuk mendapatkan data Latitude dan Longitude. Untuk itu memerlukan NMEA parser untuk mengekstrak dan mendapatkan datanya. Namun jangan khawatir karena telah banyak library yang tersedia secara gratis. Untuk kali ini saya akan menggunakan library TinyGPSPlus yang dibuat oleh Mikal Hart, librarynya dapat diunduh melalui tautan ini.
Karena kita akan menggunakan serial monitor untuk menampilkan data latitude dan longitudenya, dan serial monitor ini terhubung dengan pin 0 dan 1, maka disini kita akan pisahkan serial (tx, rx ) dari GPS dan serial monitor. Untuk itu disini digunakan Software.Serial sebagai tx rx dari modul GPS, diamna pin nya adalah 5 untuk tx dan 6 untuk rx. Sehingga koneksinya sebagai berikut:
Ublox GPS | Arduino Uno |
VCC | 5V |
RX | 6 |
TX | 5 |
GND | GND |
Rangkaian nya adalah sebagai berikut

Sedangkan, untuk program nya sebagai berikut:
#include <TinyGPSPlus.h> #include <SoftwareSerial.h> unsigned long millis_prev=0; TinyGPSPlus gps; SoftwareSerial ss(5,6); double lt, ln; void setup() { Serial.begin(115200); ss.begin(9600); Serial.println("Tes GPS Ublox GY-NEO6MV2"); } void loop() { while(ss.available()){ gps.encode(ss.read()); } if (millis()-millis_prev>=2000){ lt=gps.location.lat(); ln=gps.location.lng(); Serial.print("LAT : "+String(lt,6)); Serial.print(" "); Serial.println ("LON : "+String(ln,6)); millis_prev=millis(); } }
Pada program diatas kita menggunakan millis untuk interval dalam menampilkan data latitude dan longitude. Sebenarnya bisa saja menggunakan delay(2000), namun penggunaan millis menurut saya lebih baik karena tidak memblok (mengganggu) program lainnya. Untuk melihat hasilnya, menggunakan serial monitor dengan baud rate 115200.
Hasil dari percobaan ini adalah sebagai berikut:

Percobaan 3
Pada percobaan ini kita akan mencoba untuk menampilkan data yang lebih lengkap. Disini kita tidak akan membuat program dari awal, melainkan menggunakan dari example yang sudah ada. Untuk lebih lengkap nya ada di example bawaan dari library TinyGPSPlus, caranya pada arduino IDE klik File > Examples > FullExample. Jangan lupa untuk mengatur beberapa bagian yaitu baud rate, rubah menjadi 9600. Pin TX dan RX sesuaikan dengan rangkaian yang dibuat, disini saya menggunakan RX di pin 5 dan TX di pin 6. Jika sudah silahkan upload program nya, maka hasilnya dapat dilihat pada serial monitor dengan baud rate 115200, seperti berikut:

Demikian percobaan modul GPS ublox Neo-6M dan arduino, selebihnya silahakan untuk ber experimen dan explorasi lebih lanjut. Sekian tulisan kali ini, semoga bermanfaat dan mohon maaf apabila ada kesalahan