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