Preparation
Ok, for starters biar aku terang kan bahan² dan ramuan² die dulu. ini barang² yang aku guna:
1. 66 channel Locosys LS20031 GPS 10Hz Receiver.
2. Arduino Board UNO.
3. Jumper wires.
4. Arduino Software.
barang² nih korang leh dapatkan melalui online dari web die Arduino ngan Sparkfun. or beli kat jalan pasar. ade jual kot.
![]() |
| GPS receiver dan kakinya. ada 5. |
![]() |
| Arduino UNO. |
Pemasangan
Mula² solder kaki GPS tu macam dalam gambar kat sebelah ni.
Untuk dapatkan data dari GPS kite kena sambungkan GPS ni dengan Arduino. dan Arduino ni kena sambungkan dengan komputer.
Quicktest
Untuk quick test, mula² bukak software arduino dan pastikan arduino board bersambung dengan komputer melalui USB port yang telah di'assign'kan untuk arduino.
then, copy code dibawah dekat ruang sketch dalam software Arduino dan upload ke dalam Arduino board korang.
void setup() {
Serial.begin(57600);
}
void loop() {
if (Serial.available()) {
Serial.print(Serial.read(), BYTE);
}
}pastikan masa korang upload tu GPS belum bersambung dengan Arduino. just for safety. lepas tu baru sambungkan GPS dengan Arduino mengikut PIN configuration seperti di bawah.
- GPS Pin 5 : (paling kiri bila dilihat dari atas) : tiada connection (or ground)
- GPS Pin 4 : ke Arduino ground (GND) pin
- GPS Pin 3 : ke Arduino pin 0
- GPS Pin 2 : No connection
- GPS Pin 1 : (paling kanan) : ke Arduino pin 3.3V
![]() |
| GPS PIN configuration |
$GPGGA,105317.709,8960.0000,N,00000.0000,E,0,0,,137.0,M,13.0,M,,*4C
$GPGLL,8960.0000,N,00000.0000,E,105317.709,V,N*49
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GPRMC,105317.709,V,8960.0000,N,00000.0000,E,0.00,0.00,010610,,,N*78
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32output ini adalah NMEA Sentences yang digunakan GPS module untuk mengira kedudukan.
tapi untuk kita paham sentences ni memang payah. Tapi tak perlu la susah payah nak interpret bahasa asing ni sebab dah ada library yang boleh digunakan untuk tafsir maklumat ni.
Untuk gunakan library tu bolehla download library TinyGPS dekat web ni, arduiniana.
Menggunakan TinyGPS
Setelah korang download library ni dan save dalam folder hardware>library korang leh la open example code die dari software Arduino tu.
Tapi sebelum korang upload dan guna code tu kite kena wat sedikit ubah suai sebab pada cubaan sebelum ini, cubaan menggunakan code asal adalah menghampakan. Maklumat yang anda dapat hanyalah latitude dan longitude tanpa maklumat lain seperti tarikh, masa, dan halaju. malah untuk setiap update GPS tu akan ambil masa sehingga 4 minute!
Ini disebabkan code asal menggunakan lagi satu library "NewSoftSerial" dan default buffer untuk library tu adalah terlampau perlahan untuk GPS module yang digunakan. (GPS update at 10hz = 0.1 saat per update)
solusi nye ialah. kita ubah code tu untuk menggukan default serial library.
dalam code test_with_gps_device tukarkan line2 berikut.
TinyGPS gps;
NewSoftSerial nss(2, 3);
void gpsdump(TinyGPS &gps);
bool feedgps();
void printFloat(double f, int digits = 2);
void setup()
{
Serial.begin(115200);
nss.begin(4800);
kepada
TinyGPS gps;
//NewSoftSerial nss(0, 1);
void gpsdump(TinyGPS &gps);
bool feedgps();
void printFloat(double f, int digits = 2);
void setup()
{
Serial.begin(57600);
//nss.begin(57600);
dan cari (ctrl+f) semua line yang mengandungi 'nss' lalu replace kan dengan 'Serial'
Contoh : nss.available()--> Serial.available()
Setelah selesai diedit code itu bolehla anda save dan upload ke Arduino board anda. kemudian sambungkan GPS, compile dan tengok serial monitor.
Sekiranya berjaya, anda sepatutnya akan mendapat output seperti berikut:
data akan diupdate setiap 5 saat. Anda boleh tukar update rate GPS dalam coding tadi pada line
while (millis() - start < 5000) untuk jadikan 10 saat tukar nilai menjadi 10000 dan seterusnya.
data yang telah anda dapat ini kemudiannya boleh digunakan dalam tracking software seperti OpenGTS atau software mapping yang lain (Google Map, phone software etc.). Aku pun akan buat satu software untuk tracking ni nanti. Tapi buat sementara ini setakat ni je dulu. Selamat Mencuba!! ;)
p/s: jika ada apa² pertanyaan atau cadangan sila lontarkan dalam ruangan komen. tq. ;) all info are taken from sparkfun and Arduino website.




di malaysia ad yg jual gps module LS20031 nya tak bro ??
ReplyDeletekalau ad boleh bagi infonya bro