Desain Perangkat Lunak Sistem Drifter Buoy

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