120
3.6. Desain Perangkat Lunak Sistem Drifter Buoy
Perangkat lunak yang ditanamkan di buoy berbasis mikrokontroler, sehingga baik ukuran program, bahasa dan tools pemrograman dilakukan sesuai dengan
mikrokontroler yang digunakan yaitu mikrokontroler ATMega32. Perangkat lunak penerima yaitu perangkat lunak pada bagian server penerima data yaitu komputer
yang dilengkapi modem GSM dan nomor yang di-set sebagai nomor penerima data sehingga data yang dikirimkan drifter dapat diterima dan disimpan dengan
baik.
Perangkat Lunak Buoy
Perangkat lunak yang ditanamkan di buoy terdiri atas beberapa fungsi utama yaitu mengakuisisi data yang dibutuhkan, menyimpan data dan mengirimkannya.
Perangkat lunak ini dibangun menggunakan bahasa pemrogram BASIC BASCOM AVR yang merupakan bahasa pemrograman untuk mikrokontroler
AVR. Perangkat lunak ini terdiri atas dua alur program yaitu alur program utama dan alur program interupsi SMS konfigurasi. Adapun kedua alur tersebut terlihat
pada Gambar 16 dan 17. Pada saat dinyalakan mikrokontroler melakukan konfigurasi terutama untuk perangkat luar yang digunakan yaitu modem GSM,
sensor suhu dan perangkat internal yaitu vektor interupsi RS232 yang digunakan untuk mendeteksi interupsi SMS masuk. Selama tidak ada interupsi
mikrokontroler melakukan kegiatan rutin yaitu membaca data GPS berupa posisi, jam dan tanggal serta kecepatan. Selanjutnya membaca sensor suhu dan kemudian
selama 300 data 5 menit data posisi dan kecepatan terakhir, serta suhu yang telah di rata-ratakan akan dikirim melalui modem GSM menggunakan perintah
AT-command .
Sebelum pengiriman SMS terlebih dahulu mikrokontroler melakukan pengecekan sinyal GSM apakah ada atau tidak. Jika tidak, pengiriman data SMS
tidak dilakukan dan jika sinyal tersebut ada maka dilanjutkan dengan pengecekan waktu pengiriman data. Kemudian, jika belum memenuhi selang waktu yang telah
ditentukan oleh file CONFIG.INI, mikrokontroler akan kembali ke proses awal, tetapi jika sudah memenuhi waktu yang ditentukan maka data kemudian
dikirimkan.
121
Mulai Konfigurasi Sistem Baca dari
config.ini 1. Modem GSM
2. Sensor 1-wire suhu 3. GPS
Baca Parameter GPS 1. Posisi
2. Kecepatan Ambil Jam dan tanggal
Baca Sensor Suhu Simpan Data Logger
Hitung Nilai Rata-Rata Suhu Susun Dalam Format
Cek Sinyal GSM Cek Delta waktu
Kirim SMS Ulangi Proses
Ya ya
Tidak
Gambar 16. Diagram alir program utama
Pembacaan Data GPS
GPS yang digunakan yaitu PMB-648 hampir semua GPS yang diproduksi memiliki fasilitas komunikasi RS232 dan menggunakan standar komunikasi
NMEA-0183. Adapun perintah NMEA yang digunakan untuk pembacaan posisi dan kecepatan serta tanggal dan jam UTC yaitu GPRMC. Contoh sebuah
keluaran NMEA seperti berikut: Format keluaran dari GPRMC dapat dideskripsikan sebagai berikut contoh
dimana penjelasan dari format NMEA tersebut seperti terlihat pada Tabel 10.
GPRMC,161229.487,A,3723.2475,N,12158.3416,W,0.13,309.62,120598, ,10
122
Tabel 10. Penjelasan NMEA GPRMC
Nama Contoh
Unit Penjelasan
Message ID
GPRMC RMC protocol Header
UTC Time 161229.487
Hhmmss.sss status
A A=data valid or V data tidak
valid Latitude
A3723.2475 ddmm.mmmm
NS indicator N
N=North atau S=South Longitude
12158.3416 dddmm.mmmm
EW indicator W
E=East atau W=West Speed over Ground
0.13 Knots
Course over Ground 309.62
degrees True Date
120598 ddmmyy
Magnetic Variation Degrees E=east atau W=west
Mode A
A=Autonomous, D=DGPS, E=DR
Checksum 10
CRLF Tanda akhir
Pada kalimat NMEA ini GPRMC merupakan header dari kalimat NMEA, artinya setelah GPRMC hingga tanda akhir kalimat CR LF merupakan satu
bentuk kalimat NMEA dengan format dan urutan tertentu sesuai yang telah ditetapkan oleh standar. Pembatas antara data satu dengan data yang lain dalam
satu kalim at yaitu menggunakan tanda koma “,”. Pembacaan kalimat NMEA
tersebut oleh mikrokontroler dimulai dengan mendeteksi header data yaitu GPRMC kemudian urutan berikutnya adalah UTC Time, disela oleh satu
karakter status kemudian pembacaan latitude di sela oleh satu karakter kemudian longitude
di sela oleh satu karakter lagi baru kemudian pembacaan speed dan seterusnya berdasarkan urutan kalimat NMEA tersebut.
Perataan Data, Penyusunan Format dan Penyimpanan Data
Pengukuran dilakukan setiap 1 detik waktu akusisi GPS dan dengan tujuan penghematan sumber daya, pengiriman dilakukan setiap 5 menit. Oleh karena itu
diperlukan perataan data khususnya data suhu. Data yang dikirimkan adalah data suhu hasil rata-rata dan data posisi terakhir yang diakuisisi pada selang waktu
yang ditentukan. Data yang disimpan pada modul data logger adalah data pengukuran setiap 2 detik. Perataan data suhu dilakukan selama 5 menit. Sebelum
dikirim data tersebut disusun dalam format pengiriman. Penyusunan format
123
dilakukan dengan menyimpan setiap data yang telah dibaca dalam format yang telah ditentukan. Format pengiriman yang digunakan dalam sistem ini yaitu:
dimana :
BUOY
: header setiap 1 kali pengiriman
n
: indeks dari buoy
suhu
: data suhu hasil rata-rata
Latitude
: data latitude terakhir
Longitude
: data longitude terakhir
Kecepatan
: data kecepatan terakhir
Pengiriman Data
Data yang telah disusun berdasarkan format pengiriman kemudian dikirimkan melalui komunikasi RS232 dengan modem GSM melalui AT-command. AT-
Command yang digunakan adalah AT-Command pengiriman SMS yaitu
AT+CMGS. Format penulisan perintah ini yaitu contoh :
dimana :
AT+CMGS
: Header perintah SMS
no_server
: nomor penerima
13H10H
: karakter Hexadecimal “ENTER” dalam ASCII
1AH
: karakter Hexadesima “Ctrl-Z” dalam ASCII
: karakter yang menandakan isi SMS siap ditulis Setelah rutin perintah tersebut dilakukan maka modem akan memberikan
tanda apakah perintah tersebut berhasil dikirimkan atau tidak, jika perintah tersebut berhasil dieksekusi maka modem akan memberikan balasan “
OK 13H10H
” kepada mikrokontroler atau jika tidak maka modem akan mengirimkan kalimat “
+ERROR
”.
BUOY,n,latitude,longitude,kecepatan,suhu CRLF
AT+CMGS = no_server 13H10H
BUOY, n,latitude,longitude,kecepatan,suhu CRLF 1AH13H10H
124
Kendali dua Arah Rutin Interupsi
Alur lengkap proses kendali drifter diperlihatkan pada Gambar 17. Kendali dua arah yang dimaksud disini adalah merubah beberapa konfigurasi drifter
melalui jarak jauh menggunakan SMS berisi teks tertentu. Vektor interupsi RS232 dihidupkan sejak mikrokontroler bekerja, vektor interupsi tersebut berfungsi
untuk mendeteksi penerimaan karakter dari modem. Jika ada karakter yang dikirimkan oleh modem ke mikrokontroler maka vektor interupsi tersebut akan
melakukan rutin pengecekan berupa isi apakah karakter tersebut berupa AT Command menandakan
SMS masuk yaitu “AT+CNMI”, jika benar dilanjutkan dengan membaca SMS AT+CMGR, kemudian kembali mencocokan nomor dan
isi SMS apakah nomor pengirim adalah nomor yang diberikan hak mengendalikan, jika benar kemudian isi SMS dibandingkan dengan kode SMS
yang sudah tersimpan di memori EEPROM mikrokontroler untuk mengetahui perintah mana yang akan dilakukan. Beberapa kode perintah tersebut tersusun
dalam Tabel 11. Tabel 11. Daftar perintah kendali dua arah
No Perintah
Keterangan 1
CODE-1 Restart Mikrokontroler
2 CODE-2
Kirim Data Segera 3
CODE-3=n Rubah delta waktu, n jumlah pengukuran
4 CODE-4
Cek kondisi catu daya buoy Ada 4 hal Tabel 9 yang dilakukan dalam pengendalian dua arah ini yaitu
pertama restart mikrokontroler. Hal ini diperlukan karena kemungkinan terjadi kesalahan dalam urutan langkah perangkat lunak bisa saja terjadi dan
mengacaukan kerja sistem sehingga diperlukan untuk memulai kembali proses dari awal pada mikrokontroler. Kedua yaitu pengiriman data segera, ini dilakukan
untuk mengantisipasi diperlukanya data segera pada saat tertentu, ketiga yaitu merubah selang waktu pengiriman, karena tidak selalu dibutuhkan selang waktu
yang sama selama operasi dan terakhir yaitu pengecekan kondisi drifter, hal ini sangat penting terutama melihat catu daya yang tersisa dan kondisi komunikasi
dengan sensor.
125
Mulai Interupsi Mulai
Baca Pengirim dan Isi SMS
Apakah SMS Kode?
Delete SMS Kembali Ke
Program Utama Cocokan Kode
SMS Kode Restart
Kode Kirim Data Segera
Kode Rubah Delta Waktu Pengiriman
Kode Cek Kondisi Buoy
Aktifkan Watchdog Timer
Delay melebihi Watchdog Timer
Sistem Restart Baca Data GPS:
1. Posisi 2. Kecepatan
Percepatan Susun Format
SMS Kirim SMS
Kembali Ke Program Utama
Baca Parameter Waktu
Set Parameter Waktu di
EEPROM Kirim SMS
Konfirmasi Kembali Ke
Program Utama Baca Tegangan
Power menggunakan
ADC Internal Scanning Kondisi
GPS dan Modem Scanning Kondisi
Sensor Baca Jumlah
Sinyal Modem Kirim SMS
Konfirmasi Kembali Ke
Program Utama
Gambar 17. Diagram alir program interupsi kendali dua arah
3.7. Perangkat Lunak Penerima