Antarmuka GPS Hasil Rancang Bangun Drifter

142 Cik = 1wread „pembacaan data Next T = C2 256 „byte atas T = T + C1 „byte atas + byte bawah If C2 15 Then T = Not T T = T + 1 Suhu = T 0.0625 Else Suhu = T 0.0625 End If End Sub

4.2.4. Antarmuka GPS

GPS yang digunakan yaitu tipe PMB-648 keluaran Parallax .inc. memiliki keluaran NMEA-0183 melalui komunikasi serial TTL maupun RS232. Penelitian ini menggunakan komunikasi serial TTL karena RS232 mikrokontroler untuk modem GSM dan kabel yang dibutuhkan tidak terlalu panjang dari mikrokontroler ke modul GPS. Gambar 26. merupakan konfigurasi pin dari modul PMB-648. a b Gambar 26. PMB-648 Parallax a Tampak atas, b Tampak samping dan konfigurasi pin Dari Gambar 26 terlihat bahwa ada 4 pin yang digunakan yaitu VCC kaki 3, GND kaki 4, TTL RX kaki 2 dan TTL Tx kaki 1. Komunikasi dengan mikrokontroler digunakan komunikasi null-modem sehingga kaki 2 dan kaki 1 modul PMB-648 dihubungkan dengan PA.4 dan PA.5 mikrokontroler ATMega32. VCC yang digunakan yaitu VCC 5 Volt. PMB-648 memiliki antena internal dimana tipe ini memiliki daya tangkap sinyal yang cukup baik dan masih mampu mendapatkan sinyal secara baik meskipun ditutup bahan tipis seperti baja ataupun 143 acrilyc . Pada penelitian ini modul ini dibungkus dengan bahan acrilyc sehingga kedap air dan ditempatkan pada bagian paling atas dari buoy. Penelitian ini menggunakan NMEA GPRMC sebagai data yang akan diambil dari beberapa kalimat NMEA yang dikirimkan oleh receiver GPS. NMEA ini dikirimkan setiap 1 detik http:www.nmea.org, sehingga dalam proses pembacaan data diperlukan proses pembacaan berulang-ulang loop. Pembacaan berurut dimulai dengan mendeteksi penanda GPRMC apakah sudah diterima atau tidak kemudian karakter selanjutnya dianggap sebagai waktu dan seterusnya, dimana delimiter format data GPRMC ini menggunakan karakter koma “,”. Gambar 27. menunjukan diagram alir dari pembacaan data pada GPS. Pembacaan berurut dilakukan karena data keluaran dari receiver GPS dalam bentuk serial. Kecepatan pengiriman data serial ini yaitu 9600 bps sesuai dengan kecepatan default dari GPS yang digunakan. Proses perangkat lunak di modul ini sangat bergantung dari kualitas data yang diberikan oleh GPS, pada beberapa percobaan tertentu data yang dikeluarkan oleh GPS tidak memiliki karakter null character, tetapi tanda pembatas tetap dikeluarkan sehingga implementasi alur Gambar 27. dapat dilakukan. Implementasi dari alur Gambar 26 kedalam bahasa BASIC BASCOM AVR. Pertama mikrokontroler menyimpan header GPRMC dalam memori EEPROM kemudian setiap penerimaan karakter dari GPS dilakukan pencocokan dengan header tersebut, menggunakan perintah lookupy, message. Jika data cocok atau berupa GPRMC maka program akan keluar dari proses looping ini, tetapi jika tidak maka program akan kembali membaca data. Potongan program tersebut yaitu: Do Fdata = Lookupy , Message If Fdata = 0 Then Exit Do Get 2 , Tmp If Fdata = Tmp Then Incr Y Loop Get 2 , Tmp 144 Mulai For I=1:6 Apakah “GPRMC”? Hingga Karakter “,” Susun teks sebagai Waktu Hingga Karakter “,” Susun teks sebagai Latitude Hingga Karakter “,” Susun teks sebagai Longitude Hingga Karakter “,” Susun teks sebagai Kecepatan tidak ya ya ya ya ya ya tidak ya ya tidak tidak tidak Gambar 27. Alur pembacaan data GPS Setelah header GPRMC ditemukan kemudian dilakukan pembacaan data berikutnya yaitu data waktu dan melakukan konversi. Format data waktu yang dikeluarkan oleh GPS yaitu hhmmss.ss , dimana dd adalah merupakan jam, mm menit dan ss.ss adalah detik, dan jumlah semua data ada 9 karakter. Pembacaan dilakukan setiap karakter dimana karakter pertama dari setiap kode merupakan puluhan dan berikutnya adalah satuan. Setelah data tersusun kemudian disimpan dalam sebuah variabel, implementasi dalam kode program yaitu sebagai berikut: For Ii = 1 To 9 Get 2 , Tmp Msg5 = Msg5 + Chrtmp Waktu = Msg5 If Ii = 1 Then Puluhan = Tmp - H30 Else If Ii = 2 Then Satuan = Tmp - H30 End If 145 Next Var = Puluhan 10 Var = Var + Satuan Var = Var + 7 If Var 24 Then Var = Var – 24 Puluhan = Var 10 Puluhan = Puluhan + H30 Satuan = Var Mod 10 Satuan = Satuan + H30 Midmsg5 , 1 , 1 = Puluhan Midmsg5 , 2 , 1 = Satuan Do Get 2 , Tmp If Tmp = “,” Then Exit Do Msg = Msg + Chrtmp Loop „ Msg = Msg + Msg6 „ variable Waktu Dengan cara yang sama, pembacaan berurutan dari karakter yang dikirimkan GPS dan pembacaan kalimat NMEA dari variabel status data, Latitude , NS, Longitude, ES dan tanggal dilakukan secara berurutan seperti pada kode program dibawah ini: Do Get 2 , Tmp If Tmp = “,” Then Exit Do Msg8 = Msg8 + Chrtmp „variable status Loop Do Get 2 , Tmp If Tmp = “,” Then Exit Do Msg2 = Msg2 + Chrtmp „variable latitude Loop Do Get 2 , Tmp If Tmp = “,” Then Exit Do Msg4 = Msg4 + Chrtmp „variable NorthSouth Loop Do Get 2 , Tmp If Tmp = “,” Then Exit Do Msg3 = Msg3 + Chrtmp „ variable longitude Loop Do Get 2 , Tmp If Tmp = “,” Then Exit Do Msg7 = Msg7 + Chrtmp Loop Do Get 2 , Tmp If Tmp = “,” Then Exit Do Msg10 = Msg10 + Chrtmp „variable WestEast Loop 146 Do Get 2 , Tmp If Tmp = “,” Then Exit Do Msg11 = Msg11 + Chrtmp „variable speed over groung Loop Do Get 2 , Tmp If Tmp = “,” Then Exit Do Msg12 = Msg12 + Chrtmp „variable tanggal Loop If Msg10 = “” Or Msg10 = “ “ Then Msg10 = “0” Perintah “GET” adalah perintah yang digunakan BASCOM untuk membaca satu karakter dari port RS232. Data yang didapatkan berupa karakter. Pembacaan dilakukan dalam sebuah perulangan dimana pembacaan akan berakhir bagi variable tersebut jika pembacaan “GET” menemukan karakter “,”. Karakter yang telah disusun dalam setiap variabel tersebut merupakan data yang sesuai dengan urutan kalimat NMEA GPRMC. Variabel tersebut yaitu Waktu, Msg12, Msg2, Msg4, Msg3, Msg7, Msg10.

4.2.5. Antarmuka Modem GSM untuk Pengiriman Data dan Kendali Dua Arah