Antarmuka Modem GSM untuk Pengiriman Data dan Kendali Dua Arah

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

Modem yang digunakan adalah modem keluaran Wavecom.Inc tipe Fastract M1306B. Modem ini mendukung komunikasi AT-Command dengan keluaran serial RS232. Adanya perbedaan level komunikasi ini sehingga dibutuhkan antarmuka agar dapat berkomunikasi dengan baik yaitu menggunakan IC MAX232 Gambar 28. Dapat dilihat pada IC tersebut kaki TX dan RX komunikasi RS232 pada pin 7 dan 8 sedangkan input dan keluaran RX dan TX komunikasi RS232 level TTL pada pin 9 dan 10. Pin 7 dan 8 kemudian dihubungkan dengan pin TX dan RX modem GSM secara null-modem atau TX dan RX saling disilangkan seolah-olah komunikasi dilakukan oleh dua peralatan yang sama tanpa adanya sinyal kontrol. 147 Gambar 28. Rangkaian antarmuka modem GSM Gambar 28. menunjukkan rangkaian antarmuka mikrokontroler Tx PD.1 dan Rx PD.0 dengan Tx dan Rx Fastract M1306B dengan protocol komunikasi baud rate 9600. Untuk mengatur komunikasi pada kecepatan yang sama yaitu 9600 bps maka pada modem dan mikrokontroler harus diatur kecepatan komunikasi yang sama. Default modem M1306B memiliki baudrate 115200 bps, tetapi dengan Kristal 4 MHz yang digunakan pada mikrokontroler kecepatan komunikasi ini tidak mungkin dilakukan, oleh karena itu kecepatan modem harus diatur kembali. Pengaturan kembali kecepatan baud rate ini dilakukan menggunakan AT-Command AT+CIFR=9600. Perintah tersebut bersifat sementara artinya konfigurasi kecepatan yang dilakukan belum disimpan di memori EEPROM modem, dan jika catu daya dimatikan konfigurasi akan kembali ke 115200 bps. Penyimpanan setting kecepatan pada EEPROM dapat menggunakan AT-Command ATW. hubungan antara modem dan mikrokontroler dilakukan hanya menggunakan pin TX dan RX tanpa melibatkan pin control sehingga konfigurasi kabel keduanya harus menggunakan konfigurasi null modem , dimana konfigurasi ini menyilangan antara kabel TX dan RX. Modul Pengirim Data Modul pengiriman data berupa SMS ini akan aktif bila dalam file config.ini nilai variabel smsornot sama dengan satu baris ke-2 dalam file CONFIG.INI, maka pada modul ini dilakukan pengecekan berapa nilai variable tersebut. Jika 148 nilainya sama dengan 1 maka akan dilakukan perintah SMS seperti pada kode berikut: If Smsornot = 1 Then If Hitungsms Waktusms Then Print AT+CMGS=;Chr34;Nomer;Chr34;Chr13;Chr10 Waitms 500 Print Waktu ; : ; Msg12 ; , ; Msg2 ; Msg4 ; , ; Msg3 ; Msg7 ; , ; Msg10 ; , ; Suhu Print Chr26 ; Chr13 ; Chr10 Waitms 700 Hitungsms = 0 End If End If Setelah melakukan pengecekan konfigurasi dilakukan pengiriman atau tidak, perintah AT+CMGS adalah untuk mengirimkan SMS yang diikuti dengan nomor penerima dan isi SMS kemudian diakhiri CHR26 atau CTRL-Z . isi dari SMS diisi menggunakan perintah PRINT diikuti dengan format data yaitu variabel WAKTU , MSG12 yang merupakan tanggal, MSG2 dan MSG4 merupakan latitude, MSG3 dan MSG7 merupakan longitude , MSG10 merupakan kecepatan yang diukur oleh GPS dan SUHU . Hasil uji coba di laboratorium menunjukan bahwa sukses tidaknya perintah ini sangat bergantung pada kualitas sinyal GSM. Dari selang sinyal yang dikeluarkan oleh modem yaitu 0-19 poin didapatkan melalui perintah AT-COMMAND AT+CSQ, minimal ada 5 poin yang dibutuhkan agar perintah pada modul ini sukses dilakukan pengiriman SMS. Sukses tidaknya perintah SMS ini dapat dideteksi melalui respon yang diberikan oleh modem, jika sukses modem akan memberikan respon “OK”, jika tidak maka modem akan memberikan respon “+ERROR”. Pada penelitian ini jika terjadi kegagalan pengiriman maka data tersebut dilewatkan atau tidak dikirimkan kembali, dengan pertimbangan keefektifan perangkat lunak dan untuk mengetahui data sebenarnya dapat dilihat pada data yang tersimpan di SDMMC card. Kendali Dua Arah Komunikasi dua arah pada implementasi drifter sangat penting dilakukan Ohlmann, 2005, Kendali dua arah yang dimaksud pada penelitian ini adalah pengiriman SMS berkode tertentu yang tersimpan di memori buoy sehingga ketika 149 buoy menerima SMS tersebut, buoy akan melakukan hal yang kita perintahkan. Beberapa hal yang diatur dalam kendali dua arah ini seperti pada Tabel 9. Langkah pertama untuk kendali dua arah yaitu menghidupkan vektor interupsi komunikasi serial sehingga pada saat kapanpun SMS masuk perangkat lunak akan mengecek ke vektor interupsi tersebut. Untuk menghidupkan vektor interupsi ini di BASCOM AVR seperti berikut: Config Serialin = Buffered , Size = 40 Enable Interrupts AT-Command tanda SMS masuk yaitu AT+CMTI sehingga setelah vektor interupsi terpenuhi maka tugas pertama dari rutin interupsi adalah mengecek apakah isi dari interupsi tersebut karakter +CMTI. Rutin tersebut dibuat menjadi: Sub Ada_sms Config Watchdog = 2048 Start Watchdog Getline Sret Stop Watchdog I = Instrsret , : : If I 0 Then Stemp = Leftsret , I Select Case Stemp ANY MESSAGE FROM SOMEONE Case +CMTI: : Showsms Sret Case Else ANY CALL FROM SOMEONE End Select End If End Sub Setiap karakter yang diterima di port RS232 akan ditampung pada variabel sret melalui perintah getline , kemudian di dalam variabel tersebut dicari karakter “:” dan karakter sebelumnya di tampung dalam variable I. jika variable I ini adalah “+ CMTI ” maka tanda adanya SMS baru kemudian akan dilakukan proses pembacaan SMS, jika tidak proses kembali ke program utama. Langkah terakhir adalah mencocokan isi SMS dengan kode SMS yang telah disepakati seperti pada Tabel 11. Berikut rutin pencocokan yang dilakukan pada penelitian ini: Sub Showsmss As String I = Instrs , , I = I + 1 Stemp = Mids , I Print AT+CMGR= ; Stemp Getline S Do 150 Getline S Select Case S Case CODE-1 : Print Phonenumber Waitms 50 Print RESET Print MIKROKONTROLER Print Print Chr26 Config Watchdog = 2048 Start Watchdog Wait 5 Stop Watchdog Case CODE-2 : … … Case OK : Exit Do Case Else End Select Loop Print AT+CMGD=1,4 Getline S Waitms 100 End Sub Pertama mikrokontroler akan membaca isi SMS setelah pengecekan variable I adalah “+ CMTI ”, kemudian dengan perintah AT+CMGR isi SMS tersebut diambil menggunakan rutin getline dan disimpan dalam variabel S , hasil pembacaan isi SMS inilah yang kemudian dicocokan dengan menggunakan perintah case . jika memenuhi case tertentu maka mikrokontroler akan melakukan perintah yang diinginkan Table 9. Setelah melakukan perintah tersebut mikrokontoler kemudian melakukan perintah pengiriman SMS sebagai laporan bahwa perintah telah dilakukan. Terakhir SMS kemudian dihapus menggunakan perintah AT+CMGD. Komunikasi ini sangat berguna dalam mengetahui kondisi atau merubah alur kerja dari drifter di laut.

4.2.6. File Konfigurasi Kerja Drifter CONFIG.INI