DAFTAR PUSTAKA
1. Thaha, Hendrayana. 2005. Aplikasi Protokol Layanan Pesan Singkat Pada Telemetri. Tugas Akhir, Departemen Fisika FMIPA ITB. 2. http://en.wikipedia.org/wiki/GSM 3. Mehrotra, Asha. 1997. GSM System Engineering. Norwood, MA: Artech House, Inc. 4. ETSI.,”GSMTechnical Specification GSM 03.40”, France (1996). 5. Raharjo, Budi dkk. 2007. Tuntunan Pemrograman Java untuk Handphone. Bandung: Penerbit Informatika. 6. Shalahuddin, M dan Rosa, A.S. 2006. Pemrograman J2ME: Belajar Cepat Pemrograman
Perangkat
Telekomunikasi
Mobile.
Bandung:
Penerbit
Informatika. 7. http://developers.sun.com/mobility/midp/articles/wma2/ 8. http://www.ibm.com/developerworks/library/wi-rms/ 9. http://java.sun.com/javame/technology/index.jsp 10. http://www.arcelect.com/rs232.htm 11. http://java.sun.com/javame/reference/apis/jsr118/ 12. http://gsmfavorites.com/documents/introduction/gsm 13. Sutrisno.1986. ELEKTRONIKA: Teori dan Penerapannya, Jilid 1 dan 2. Bandung: Penerbit ITB.
64
14. Budioko, Totok.2005. Belajar dengan mudah dan cepat Pemrograman Bahasa C dengan SDCC pada Mikrokontroler AT89X051/AT89C51/52. Yogyakarta: Penerbit Gava Media. 15. http://dreamfabric.com/sms/ 16. Sutrisno. Elektronika Lanjut. Jurusan Fisika, Fakultas MIPA, ITB.
65
LAMPIRAN
66
Lampiran 1 Skema Rangkaian Sistem Telemetri GSM
67
Lampiran 2 Foto Alat
Perangkat Keras Sistem Telemetri GSM
Plant Temperatur
68
Rangkaian Penguat Sensor
Tampilan Pengukuran untuk Sensor 1
69
Lampiran 3 Daftar Publikasi
1.
Heri Permadi, Nur Asiah Aprianti, Suryadi, Suryadi, dan Khairurrijal. ”Pemrogaman Lanjut Menggunakan PIC Microtrainer”. Prosiding Seminar Instrumentasi Berbasis Fisika (Bandung, 31 Agustus 2006), pp. 210-215.
2.
Suryadi, Heri Permadi, Nur Asiah Aprianti, Suryadi, dan Khairurrijal. ”PIC Microtrainer untuk Pemrograman Dasar Mikrokontroler Keluarga PIC”. Prosiding Seminar Instrumentasi Berbasis Fisika (Bandung, 31 Agustus 2006), pp. 201-205.
3.
Nur Asiah Aprianti, Heri Permadi, Suryadi, Suryadi, dan Khairurrijal. ”Simulasi Program Aplikasi Modul A/D Converter PIC16F877 dengan menggunakan PIC Microtrainer”. Prosiding Seminar Instrumentasi Berbasis Fisika (Bandung, 31 Agustus 2006), pp. 132-136.
4.
Yanuar Syapaat, Suryadi, Heri Permadi, Gun Gun Gumilar, dan Khairurrijal. ”Aplikasi Mikrokontroler MCS-51 dalam Percobaan Bandul untuk Penentuan Nilai Gravitasi Bumi”. Seminar Nasional Teknologi dan Rekayasa Industri (SNTRI07) Applied Tech 07. Vol. 1. (Serpong, April 2007)
5.
Heri Permadi, Hendrayana Thaha, Asep Suhendi dan Khairurrijal. “Aplikasi Protokol Layanan Pesan Singkat pada Sistem Telemetri”. Seminar Nasional Teknologi dan Rekayasa Industri (SNTRI07) Applied Tech 07. Vol. 1. (Serpong, April 2007)
6.
Heri Permadi, Erik Senstosa, Asep Suhendi, dan Khairurrijal. “Dekapsulasi Data Telemetri dengan Protokol Layanan Pesan Singkat oleh Pesonal Digital Assistant”. Seminar Asosiasi Akademisi Perguruan Tinggi Seluruh Indonesia (ASASI) (Ciawi Bogor, 9-11 Agustus 2007).
70
Implementasi Sistem Telemetri Menggunakan Layanan Pesan Singkat pada Jaringan Global System for Mobile Communication (GSM) Heri Permadi, Erik Sentosa, Asep Suhendi, dan Khairurrijal*) Kelompok Keahlian Fisika Material Elektronik Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Teknologi Bandung Jalan Ganesa 10, Bandung 40132 *) E-mail:
[email protected]
Abstrak Secara umum, sistem pengukuran jarak jauh atau sistem telemetri terdiri dari stasiun ukur dan stasiun kontrol. Untuk melakukan pengiriman data, diperlukan sebuah media komunikasi yang menghubungkan stasiun ukur dengan stasiun kontrol. Media yang digunakan sebagai jalur komunikasi pada sistem telemetri yang dikembangkan di sini adalah jaringan selular atau jaringan Global System for Mobile Communication (GSM). Jaringan GSM memiliki standar internasional dan standar pengiriman yang sama di seluruh dunia sehingga memungkinkan kita untuk mengirimkan data dari stasiun ukur ke stasiun kontrol di manapun selama stasiun tersebut memiliki akses terhadap salah satu penyedia (provider) jaringan GSM. Dengan adanya fasilitas Short Message Service (SMS) pada jaringan GSM, maka data hasil pengukuran dapat dienkapsulasi dengan protokol SMS sehingga dapat dikirimkan ke stasiun ukur yang dituju. Proses dekapsulasi antara data pengukuran dengan protokol SMS dilakukan oleh stasiun kontrol yang dapat berupa komputer atau Personal Digital Assistant (PDA). Jika stasiun kontrol yang digunakan adalah PDA, maka diperlukan salah satu platform Java untuk jenis perangkat mobile yaitu J2ME (Java2 Micro Edition). Dengan menggunakan PDA sebagai stasiun kontrol maka kita dapat melakukan pengukuran di manapun kita berada.
Kata kunci: Stasiun ukur, stasiun kontrol, SMS, GSM, J2ME. I. Pendahuluan Secara terminologi telemetri berasal dari kata tele yang berarti jauh dan metri yang berarti pengukuran, sehingga sistem telemetri dapat diartikan sebagai sistem pengukuran jarak jauh. Proses pengukuran jarak jauh ini secara umum melibatkan dua buah terminal pengukuran yang letaknya berjauhan. Terminal pengukuran tersebut dapat terdiri dari satu atau lebih stasiun ukur dan stasiun kontrol. Untuk melakukan pengiriman data pengukuran dari stasiun ukur ke stasiun kontrol diperlukan sebuah media komunikasi. Beberapa contoh media yang sering digunakan pada sistem telemetri ini adalah gelombang frekuensi radio (RF), jaringan telepon rumah atau Public Switched Telephone Network (PSTN), dan internet. Pada sistem telemetri yang dikembangkan di sini, media yang dipilih sebagai jalur komunikasi antara stasiun ukur dan stasiun kontrol adalah jaringan selular atau jaringan Global System for Mobile Communication (GSM). Pada jaringan GSM terdapat beberapa fasilitas diantaranya adalah
Short Messages Sevice (SMS) atau layanan pesan singkat, Multimedia Messages Sevice (MMS) atau layanan pesan multimedia dan layanan panggilan (calling). Media pengiriman data pengukuran yang digunakan adalah layanan pesan singkat atau Short Message Service (SMS). Sistem telemetri terdiri dari dua bagian yaitu stasiun ukur dan stasiun kontrol. Stasiun ukur berfungsi untuk melakukan pengukuran terhadap besaran fisis yang akan kita ukur dan mengirimkan data yang telah diperoleh tersebut ke stasiun kontrol. Pada makalah ini, besaran fisis yang diukur adalah suhu. Stasiun kontrol berfungsi untuk mengatur proses dalam sistem telemetri dan digunakan juga sebagai tempat penyimpanan data hasil pengukuran yang dilakukan stasiun ukur. Stasiun ukur pada sistem telemetri terdiri dari tiga bagian utama yaitu sistem sensor, mikrokontroler, dan tranceiver sedangkan stasiun kontrol terdiri dari sebuah Pesonal Digital Assistant (PDA). Dengan menggunakan PDA sebagai stasiun kontrol, proses pengukuran jarak jauh lebih fleksibel karena PDA merupakan perangkat mobile
sehingga kita dapat melakukan pengukuran di mana saja.
II. Teknologi GSM dan SMS Protokol 2.1 Teknologi GSM Jaringan GSM menyediakan beberapa fasilitas diantaranya adalah Short Messages Sevice (SMS) atau layanan pesan singkat,
Multimedia Messages Sevice (MMS) atau layanan pesan multimedia dan layanan panggilan (calling). Dengan adanya fasilitas SMS pada jaringan GSM ini, maka data hasil pengukuran dapat dienkapsulasi dengan protokol SMS sehingga dapat disampaikan ke tempat yang dituju selama tempat tersebut masih memiliki akses terhadap jaringan GSM. Proses enkapsulasi merupakan proses penggabungan data hasil pengukuran dengan standar protokol SMS.
Gambar 1 Blok diagram arsitektur GSM1) Untuk mendapatkan data hasil pengukuran yang sebenarnya setelah data hasil enkapsulasi diterima oleh stasiun kontrol, maka dilakukan proses dekapsulasi data. Proses dekapsulasi merupakan proses pemisahan data hasil pengukuran dari protokol SMS.
2.2
Protokol SMS pada Jaringan
Dilihat dari sumber pengirimannya, layanan pesan singkat atau SMS dibagi menjadi dua jenis yaitu mobile originated (SM MO) dan mobile terminated (SM MT). Mobile originated merupakan SMS yang dikirimkan ke service center (SC) sedangkan mobile terminated merupakan SMS yang berasal dari service center (SC).2)
GSM 2.2.1 Prosedur Pengiriman SMS Layanan pesan singkat atau yang lebih dikenal dengan sebutan SMS merupakan layanan yang terdapat pada jaringan GSM yang mengikuti standar European Telecommunication Standards Institute (ETSI). Standar yang digunakan pada layanan ini yaitu ETSI 03.40.
Gambar 2 Layanan mobile terminated2)
III. Java2 Micro Edition (J2ME)
Gambar 3 Layanan mobile originated2)
2.2.2 Protocol Data Unit (PDU) pada SMS Dalam layanan pesan singkat, paket data yang dikirimkan dapat dikirim dalam bentuk protocol description unit (PDU) atau text mode. PDU ini berada pada layer transfer dari arsitektur protokol SMS. Jenis PDU yang terdapat pada layer transfer ini diantaranya SMS deliver dan SMS submit. SMS deliver digunakan ketika MS mengirimkan data menuju SC. PDU ini terdiri dari beberapa elemen yang berfungsi mengatur properti SMS. SMS submit digunakan ketika MS mengirimkan data menuju SC atau dengan kata lain kita sedang menggunakan layanan mobile originated. Sama halnya dengan SMS submit, jenis PDU yang digunakan memiliki beberapa elemen/frame yang mengatur setting dalam SMS.
Platform Java memiliki tiga buah edisi yang berbeda3). Dalam hal ini, Sun Microsystems telah mendefinisikan tiga buah edisi tersebut yaitu: • Java 2 Standar Edition (J2SE), yang digunakan untuk mengembangkan aplikasiaplikasi dekstop dan applet (aplikasi Java yang dapat dijalankan di dalam browser web). • Java 2 Enterprise Edition (J2EE), merupakan superset dari J2SE yang memperbolehkan kita untuk mengembangkan aplikasi-aplikasi berskala besar (enterprise), yaitu dengan melakukan pembuatan aplikasi-aplikasi di sisi server dengan menggunakan EJBs (Enterprise JavaBeans), aplikasi web dengan menggunakan Servlet dan JSP (Java Server Pages) dan teknologi lainnya seperti COBRA (Common Object Request Broker Architecture) dan XML (Extensible Markup Language). • Java 2 Micro Edition (J2ME), merupakan subset dari J2SE yang digunakan untuk menangani pemrograman di dalam perangkat kecil, yang tidak memungkinkan mendukung implementasi J2SE secara penuh.
Gambar 4. Ruang lingkup keterhubungan optional packages dalam Java5)
Java 2 Micro Edition (J2ME) adalah lingkungan pengembangan yang dirancang untuk meletakkan perangkat lunak Java pada alat elektronik beserta perangkat pendukungnya4). J2ME terbentuk antara sekumpulan interface Java yang sering disebut dengan Java API (Application Programming Interface) dengan JVM (Java Virtual Machine). Kombinasi tersebut kemudian digunakan untuk melakukan pembuatan aplikasi-aplikasi yang dapat beroperasi pada alat (mobile devices) misalnya pada telepon selular, pager, Personal Digital Assistants (PDA) dan sejenisnya.
3.1 Konfigurasi Konfigurasi merupakan bagian yang berisi JVM dan beberapa library. Konfigurasi hanya mengatur hal-hal tentang kesamaan sehingga dapat dijadikan ukuran kesesuaian antar device. Terdapat dua buah konfigurasi pada J2ME yaitu CDC (Connected Device Configuration) dan CLDC (Connected Limited Device Configuration). CDC merupakan superset dari CLDC sehingga semua kelas yang didefinisikan di dalam CLDC akan terdapat pada CDC.
Tabel 1 Perbandingan CDC dengan CLDC4) CLDC
CDC
Mengimplementasikan seluruh fitur J2SE JVM yang digunakan adalah CVM Digunakan pada perangkat genggam (internet TV, Nokia Communicator, car TV) dengan memori minimal 2 MB Prosesor: 32 bit
Mengimplementasikan sebagian fitur J2SE JVM yang digunakan adalah KVM Digunakan pada perangkat genggam (handphone, PDA, pager) dengan memori terbatas (160 - 512 KB) Prosesor : 16/32 bit
Fitur tambahan MIDP 2.0 dibanding MIDP 1.0 yaitu API untuk multimedia.
3.2 Profil Profil merupakan bagian perluasan dari konfigurasi.Dalam J2ME terdapat dua buah profil yaitu MIDP dan Foundation profile. M IDP Kum pulan Library CLDC KVM
Sistem Operasi
Gambar 5 MIDP dalam arsitektur J2ME4) Foundation Profile merupakan profil yang digunakan untuk konfigurasi CDC. Profil ini menambahkan beberapa kelas dari J2SE ke dalam konfigurasi CDC, dan berperan juga sebagai pondasi untuk membentuk profil baru lainnya. MIDP (Mobile Information Device Profil) adalah spesifikasi untuk sebuah profil J2ME. MIDP memiliki lapisan di atas CLDC, API tambahan untuk daur hidup aplikasi, antarmuka, jaringan, dan penyimpanan persisten. Pada saat ini terdapat MIDP 1.0 dan MIDP 2.0.
IV. Perangkat Keras Telemetri GSM
Sistem
Sistem telemetri yang dirancang memiliki berbagai macam masukan dan keluaran sehingga perancangan tidak hanya melibatkan suatu sistem sensor secara spesifik. Hal ini dimaksudkan agar sistem ini dapat menangani berbagai macam masukan yang berupa masukan analog dan digital. Masukan analog pada sistem ini diwakili oleh delapan buah masukan yang terdiri dari satu masukan dari sensor suhu LM35, dua masukan yang besar tegangannya dapat diubah-ubah dengan potensiometer dan sisanya dapat digunakan untuk berbagai macam sensor. Kedelapan masukan analog tersebut dihubungkan langsung ke perangkat sistem dengan masukan sinyal antara 0 sampai 5 volt. Sistem ini juga memiliki keluaran digital dan dilengkapi dengan tampilan LCD. Berikut ini merupakan gambaran secara lengkap dari sistem telemetri yang dibangun dengan berbagai macam perangkat pendukung.
Gambar 6. Implementasi perangkat keras sistem telemetri Sistem telemetri yang dirancang pada makalah ini memiliki delapan kanal masukan analog yang dirancang untuk menangani suatu sistem sensor. Sensor yang digunakan adalah sensor LM35 yang berfungsi untuk mengukur suhu. Kedelapan kanal masukan analog tersebut dihubungkan langsung ke perangkat sistem dengan masukan sinyal antara 0 sampai 3,3 volt. Stasiun kontrol yang digunakan pada makalah ini berupa sebuah perangkat mobile yang mendukung salah satu platform Java yaitu Java 2 Micro Edition (J2ME). Salah satu contoh perangkat mobile tersebut adalah Personal Digital Assistant (PDA). PDA ini berfungsi untuk memberi perintah kepada stasiun ukur untuk melakukan pengukuran sekaligus menampilkan data hasil pengukuran. Stasiun ukur terdiri dari sistem akusisi data, sistem kontrol sekunder, tampilan LCD, sistem komunikasi serial, dan protokol layanan pesan singkat (SMS).
V. Implementasi Perangkat Lunak pada Stasiun Ukur dan Dekapsulasi Data Telemetri oleh PDA 5.1 Implementasi Perangkat Lunak pada Stasiun Ukur
Implementasi perangkat lunak di stasiun ukur terdiri dari sebuah program utama dan dua buah program yang berfungsi sebagai interupsi Timer. Dalam program utama terdapat berberapa subrutin. Subrutin tersebut adalah pengecekan perintah yang berasal dari SMS datang. PDU yang dikirimkan tranceiver ke mikrokontroler di simpan dalam array InputSerial[i]. Data dari array tersebut digunakan untuk menentukan sensor atau kanal mana yang aktif. Setelah itu dilakukan konversi hasil ADC ke suhu dalam desimal dan ditampilkan pada LCD. Subrutin berikutnya adalah konversi data dari 8 bit ke tujuh 7 bit. Data 7 bit digabungkan dengan protokol data pengukuran. Pada akhirnya, protokol data pengukuran tersebut dienkapsulasi dengan protokol SMS dan dikirimkan ke stasiun kontrol. Program interupsi diimplementasikan untuk melakukan interupsi secara periodik dengan interval pengukuran ditentukan dalam inisialisasi interupsi Timer 0 dan Timer 1. Kedua interupsi ini terjadi ketika timer flag (TF) mengalami overflow. Interupsi Timer 0 digunakan untuk mengecek perintah pengukuran yang dienkapsulasi dengan protokol SMS yang datang pada transceiver stasiun ukur. Interupsi Timer 1 digunakan untuk menentukan interval pengukuran pada stasiun ukur. Pada tugas akhir ini, pengukuran suhu dilakukan setiap 30 detik sekali. Gambar 4.13 di bawah ini memperlihatkan implementasi perangkat lunak pada stasiun ukur.
Mulai A Inisialisasi Serial Inisialisasi Interupsi Timer 0 Inisialisasi Interupsi Timer 1 Inisialisasi LCD Int_T0_Flag = 0, PT0 = 1
Konversi Hasil ADC ke suhu (desimal)
Tampilkan di LCD Tampilan awal LCD
Ambil Data Suhu Temperatur[20] = HasilADC()*0.02015; Int_T0_Flag = 1 Konversi Data 8 bit ke 7 bit Cek perintah SMS Penggabungan Protokol Data Pengukuran SBUF != ‘OK’
Enkapsulasi Protokol Data Pengukuran dengan Protokol SMS
InputSerial[i] = PDU datang Set Perintah Kirim SMS AT+CMGS = n <enter> + PDU data
Pilih Channel (MUX)
Selesai A
(a) Mulai
Mulai
Int_T0_Flag = 1 Static int data = 0
Static long int waktu = 0 Static int cacah = 0
Data ++
Waktu ++
Data =10000
Waktu =300000
Data = 0
Waktu = 0
Selesai
Temperatur[cacah++] = HasilADC()*0.02015;
Cacah = 20
Cacah = 0
Selesai
(b) Gambar 7. (a) Diagram alir program utama, (b) Diagram alir program interupsi
5.2 Protokol Layanan Pesan Singkat dan Protokol Data Pengukuran Data hasil pengukuran yang diperoleh dikirimkan beserta protokol pengukuran menuju stasiun kontrol melalui data layanan pesan singkat. Untuk dapat mengirimkan data pengukuran dalam format SMS, maka data pengukuran harus dienkapsulasi dengan protokol SMS seperti terlihat pada Gambar 8 dan Gambar 9 di bawah ini. Susunan protokol data pengukuran ditempatkan pada elemen user data pada protokol SMS tersebut. TP-MTI
TP-RD
…….
TP-VP
TP-UDL
TP-UD
Mulai
Tidak
Tunggu SMS Ada
Cek panjang string
Pemisahan data dari header
Simpan dalam Texfield
Gambar 8. Protokol layanan pesan singkat (SMS)2) Simpan data RecordStore Penanda Awal (1byte)
ID Sensor (1 byte)
Data Pengukuran
Penanda Akhir (1 byte)
Gambar 9. Susunan protokol data pengukuran pada paket SMS
5.3 Perancangan Dekapsulasi Telemetri oleh PDA
Data
Proses dekapsulasi data telemetri oleh PDA ini merupakan bagian yang menentukan akurat atau tidaknya proses pengukuran yang dilakukan. Data telemetri yang dienkapsulasi dalam protokol SMS diterima secara default oleh PDA langsung masuk ke dalam inbox (kotak masuk pesan). Untuk dapat mengolah data tersebut, diperlukan sebuah metode untuk mengakses inbox PDA yang digunakan sebagai stasiun kontrol. Cara lain dapat dilakukan dengan mencari port khusus yang terdapat pada setiap mobile phone ketika menerima atau mengirimkan pesan. Jika data pengukuran yang masih terenkapsulasi dalam protokol SMS kita peroleh, maka langkah selanjutnya adalah mengolah data tersebut. Teks SMS diinterprestasikan sebagai string kemudian dilakukan pemisahan data pengukuran dari header-nya. Header ini berupa penanda awal dan ID sensor. Setelah data pengukuran dipisahkan dari header-nya, langkah selanjutnya adalah menyimpan data tersebut dalam sebuah recordstore. Dengan adanya sistem penyimpanan data ini maka sebuah MIDlet dapat menyimpan suatu informasi dan mengaksesnya.
Selesai
Gambar 10. Diagram alir sederhana proses dekapsulasi data telemetri oleh PDA
Gambar 11 Tampilan aplikasi untuk mengirim perintah ke stasiun ukur
Oleh karena itu, ketelitian ADC ini dalam satuan tegangan adalah:
VI. Hasil dan Diskusi Pengujian pengukuran temperatur dilakukan dengan cara membandingkan pembacaan suhu yang dibaca sensor dengan suhu yang dibaca termometer. Dari perbandingan tersebut akan dihasilkan persentasi error. Persentasi error inilah yang menggambarkan keakuratan pengukuran yang dilakukan. Untuk mendapatkan nilai suhu yang sebenarnya maka perlu dilakukan proses konversi yang merubah nilai keluaran ADC menjadi suhu. Nilai keluaran ADC berkaitan erat dengan ketelitian ADC itu sendiri dan penguatan sensor. Sensor yang digunakan adalah LM35 yang memiliki karakteristik keluaran tegangan 10 mV/ oC. Dengan penguatan empat kali maka : VLM35 = Temperatur * 40 mV ADS7822 yang digunakan sebagai ADC memiliki karakteristik sebagai berikut: - Konversi digital 12 bit - Resolusi 1 LSB - Tegangan input maksimum 3,3 Volt
Ketelitian(V ) =
Re solusi * skala maksimum = 0,806 mV 212 − 1
Proses konversi dilakukan dengan persamaan sebagai berikut: Suhu =
HasilADC * Kenaikan tegangan tiap bit 1 KenaikanTegangan Amplifier
Suhu =
HasilADC * 0,000806 1 0,04
Suhu = HasilADC * 0,000806 * 25 = HasilADC * 0,02015
Tabel 2 di bawah ini menunjukkan pengujian pengukuran temperatur pada stasiun ukur dengan besar suhu yang semakin menurun. Dalam setiap pengukuran diambil 20 data dengan interval waktu 30 detik sekali.
Tabel 2 Pengukuran temperatur pada stasiun ukur No 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Suhu yang diukur Sensor 48 46 45 44 43 43 42 42 41 40 40 39 39 39 39 39 38 38 38 37
Suhu yang diukur Termometer 48 47 46 45 44 43 43 42 42 41 40 40 40 40 40 40 39 38 38 37 Error rata-rata
Error 0.00 0.02 0.02 0.02 0.02 0.00 0.02 0.00 0.02 0.02 0.00 0.03 0.03 0.03 0.03 0.03 0.03 0.00 0.00 0.00 0.02
Error (%) 0.00 2.13 2.17 2.22 2.27 0.00 2.33 0.00 2.38 2.44 0.00 2.50 2.50 2.50 2.50 2.50 2.56 0.00 0.00 0.00 1.55
Dari Tabel 2 di atas, pengukuran temperatur pada selang 48 oC s.d. 37 oC memiliki hasil yang cukup baik. Hal ini dibuktikan dengan adanya nilai error rata-rata yang cukup kecil yaitu sebesar 1,55 %. Pengukuran dilakukan melalui kanal 1 dengan konfigurasi besar suhu yang semakin menurun. Konfigurasi besar suhu yang semakin menurun dilakukan karena lambatnya respon termometer yang digunakan sebagai pembanding besar suhu yang dibaca sensor.
VII. Kesimpulan Telah dirancang dan diimplementasikan sistem telemetri dengan menggunakan layanan pesan singkat (SMS) pada jaringan GSM sebagai media pengiriman data. Data pengukuran dari stasiun kontrol dienkapsulasi dengan protokol SMS pada stasiun ukur. Proses dekapsulasi data telemetri dilakukan di stasiun kontrol yang berupa Personal Digital Assistant (PDA) dengan menggunakan salah satu platform Java untuk jenis perangkat mobile yaitu J2ME (Java2 Micro Edition). Konfigurasi dan Profil yang digunakan pada perangkat J2ME ini yaitu CLDC 1.0/1.1 dan MIDP 2.0. Sistem Telemetri yang telah dikembangkan ini berbasis mikrokontroler AT89S52 yang memiliki 8K Byte of In-System Reprogrammable Downloadable Flash Memory dan 256 x 8-bit RAM Internal. Pada stasiun ukur terdapat 8 kanal masukan sensor yang terhubung ke ADC. ADC yang digunakan pada tugas akhir ini adalah ADS7822 yang merupakan ADC serial 12 bit yang menggunakan komunikasi Serial Peripheral Interface (SPI) dengan ketelitian +/- 1 LSB. Hasil pengujian sistem memiliki tingkat kesalahan (error) rata-rata cukup kecil yaitu sebesar 1,55 % untuk pengukuran temperatur.
VIII. Daftar Pustaka [1] Mehrotra, Asha. GSM System Engineering. Norwood, MA: Artech House, Inc., 1997. [2] ETSI.,”GSMTechnical Specification GSM 03.40”, France (1996) [3] Raharjo, Budi dkk.2007. Tuntunan Pemrograman Java untuk Handphone. Bandung: Penerbit Informatika [4] Shalahuddin, M dan Rosa, A.S.2006. Pemrograman J2ME: Belajar Cepat Pemrograman Perangkat Telekomunikasi Mobile. Bandung: Penerbit Informatika. [5] http://java.sun.com/javame/technology/ index.jsp [6] http://java.sun.com/javame/reference/apis/ jsr118/ [7] http://gsmfavorites.com/documents/ introduction/gsm
Pemrogaman Lanjut Menggunakan PIC Microtrainer Heri Permadi, Nur Asiah Aprianti, Suryadi, Suryadi#), dan Khairurrijal#) Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Teknologi Bandung Jl. Ganesha 10, Bandung 40132 #) Pusat Penelitian Fisika LIPI, Komplek Puspiptek Serpong, Tangerang 15314 #) E-mail :
[email protected] Abstrak – PIC Microtrainer merupakan sebuah kit yang dirancang untuk mempermudah mempelajari arsitektur, aplikasi, serta pemrograman mikrokontroler khususnya dari keluarga mikrokontroler PIC produksi Microchip Technology Inc. Untuk tujuan tersebut Microtrainer ini telah dilengkapi dengan beberapa modul yang memungkinkan untuk mempelajari/merancang aplikasi menggunakan LED, 7-segmen, LCD, komunikasi serial melalui RS232, ADC maupun aplikasi keypad heksadesimal. Microtrainer ini dirancang untuk mikrokontroler tipe PIC16F877, namun dapat digunakan juga tipe lain yang memiliki kompatibilitas pinout seperti PIC18F452 atau PIC16F4520. Pada paper ini akan dijelaskan dua aplikasi dalam PIC Microtrainer yaitu aplikasi tampilan peraga LCD dan komunikasi serial melalui RS232. Kedua aplikasi tersebut merupakan lanjutan dari pemrogaman dasar mikrokontroler menggunakan PIC Microtrainer.
Laboratorium Elektronika dan Instrumentasi, Program Studi Fisika, FMIPA ITB, sebagai simulator mikrokontroler dari keluarga PIC tipe PIC16F877/18F452/16F4520, kita dapat dengan mudah untuk mempelajari arsitektur, aplikasi, serta pemrograman mikrokontroler. Hampir semua aplikasi mikrokontroler dapat dilakukan pada PIC Microtrainer ini sehingga dapat mempercepat pemahaman kita dalam mempelajari mikrokontroler.
Kata kunci : PIC Microtrainer, LCD, komunikasi serial
I. PENDAHULUAN Dengan adanya kemajuan dalam bidang teknologi semikonduktor, pemaduan ribuan transistor beserta komponen yang lain dalam satu buah chip yang dikenal sebagai IC (Integrated Circuit) sudah dimungkinkan. Teknologi IC tersebut berkembang dengan pesat sehingga di pasaran beredar ribuan jenis IC dengan spesifikasi dan kegunaan yang beragam [1]. Penemuan piranti elektronika yang dapat diprogram (progammable devices) memberikan keuntungan bagi manusia, terutama dalam hal penekanan biaya, penghematan ruang dan fleksibilitas yang tinggi. Semikonduktor yang termasuk dalam semikonduktor jenis ini antara lain mikroprosesor dan mikrokontroler. Mikrokontroler merupakan piranti elektronika yang dapat diprogram yang paling sering digunakan untuk membuat sistem dengan berbagai keperluan karena praktis dan murah. Dengan tersedianya PIC Microtrainer seperti ditunjukkan dalam Gambar 1, yang dibuat di
Gambar 1: PIC Microtrainer.
Dalam makalah ini, kami mengemukakan aplikasi mikrokontroler PIC 16F877 terutama untuk aplikasi tampilan peraga LCD dan komunikasi serial melalui RS232 yang akan dimanfaatkan untuk praktikum pembelajaran mikrokontroler bagi mahasiswa di Program Studi Fisika ITB.
II. APLIKASI TAMPILAN PERAGA LCD Peraga LCD dapat menampilkan bentuk karakter yang jauh lebih beragam dibandingkan dengan peraga 7 segmen. Jenis peraga LCD yang digunakan dalam microtrainer ini adalah jenis LCD yang dapat menampilkan 2x16 karakter. Peraga LCD memiliki delapan buah pin untuk jalur data (D0 s.d. D7), tiga pin jalur kontrol (RS, R/W, dan En) serta beberapa pin yang lain untuk catu daya serta pengatur kekontrasan tampilan layar LCD. Rangkaian selengkapnya untuk aplikasi tampilan
80
menggunakan peraga LCD diberikan oleh Gambar 2. Delapan buah pin jalur data LCD dihubungkan dengan kedelapan pin pada port D mikrokontroler PIC16F877, sementara tiga buah pin jalur kontrol dihubungkan dengan pin-pin pada port E-nya. Data yang dikirimkan ke LCD dapat berupa perintah (command) maupun berupa data karakter yang ingin ditampilkan.
message atau karakter yang ingin kita tampilkan, maka panggil rutin DISP_MSG. Program Utama: Mulai
Inisialisasi PORTD&PORTE sebagai output, Inisialisasi LCD
Masukkan 00h
Set_DDRAM
Masukkan 00h
DISP_MSG
stop
Rutin Set_DDRAM:
Rutin LCD_cmd:
Mulai
Mulai
LCD_cmd
Clear-kan pin R/W & RS pada LCD
ret
LCD_pulse
ret
Rutin DISP_MSG: Mulai
A
Gambar 2: Rangkaian aplikasi tampilan peraga LCD.
Salah satu contoh tampilan dari aplikasi peraga LCD diperlihatkan pada Gambar 3.
Pindahkan lcd_tmp(22h) ke W Masukkan 00h ke INDEX (21h)
LCD_Data MSG1 Pindahkan isi INDEX (21h) ke W
Pindahkan MSG1 ke lcd_tmp(22h)
Addlw 01h
Gambar 3: Tampilan pada peraga LCD.
Gambar 4 memberikan diagram alir dari program aplikasi tampilan peraga LCD, yang terdiri dari satu program utama dan enam rutin. Program utama dimulai dengan inisialisasi Port D dan Port E sebagai keluaran. Kemudian mengeksekusi rutin Set_DDRAM yang berisi rutin LCD_cmd untuk mengirim command ke LCD. Jika pin R/W dan RS clear, maka dipilih fungsi write pada pin R/W dan instruction input pada pin RS. Untuk menuliskan
sublw '#'
B Cek STATUS,Z = 0
No MSG_END
Yes
A
B
81
modul aplikasi ADC dengan masukan analog dari potensiometer pada pin RA0/AN0.
Rutin MSG1: Mulai Addwf PCL,F
Return with literal Retlw ‘ASCII code’ MSG1_END retlw ‘#’
Rutin LCD_Data:
Rutin LCD_pulse: Mulai
Mulai
Set pin En pada LCD Clear-kan pin R/W pada LCD
delay
Set pin RS pada LCD
Clear-kan pin En pada LCD delay
LCD_pulse
ret ret
Gambar 4: Diagram alir tampilan peraga LCD.
Pada rutin DISP_MSG juga terdapat rutin MSG1 yang berisi pesan yang ingin kita tampilkan di layar peraga LCD. Karakter huruf yang diterima merupakan kode ASCII. Gambar 5: Rangkaian aplikasi komunikasi serial PIC 16F877 dengan komputer melalui RS232.
III. APLIKASI KOMUNIKASI SERIAL RS232 PIC Microtrainer telah dilengkapi dengan modul yang memungkinkan mikrokontroler untuk berkomunikasi dengan komputer dan sebaliknya. Untuk menjembatani perbedaan level tegangan antara mikrokontroler (TTL) dengan port serial pada komputer digunakanlah IC MAX232. Mikrokontroler PIC telah memiliki modul USART (Universal Synchronous/Asynchronous Receiver/ Transmitter) internal atau dikenal juga dengan sebutan SCI (Serial Communications Interface) yang semakin memudahkan proses komunikasi. Modul USART dapat dikonfigurasi sebagai full duplex asynchronous system yang bisa berkomunikasi dengan alat lain seperti terminal CRT dan komputer, atau juga dapat dikonfigurasi sebagai half duplex synchronous system yang dapat berkomunikasi dengan alat lain seperti IC A/D atau D/A, EEPROM serial dan sebagainya. Gambar 5 memberikan rangkaian aplikasi komunikasi serial RS232 yang digabungkan dengan
Mikrokontroler PIC yang digunakan oleh Microtrainer ini telah menyertakan modul ADC (Analog to Digital Converter) 10 bit sebagai modul internal. Pada modul tersebut terdapat sebuah sumber tegangan analog yang dapat diatur dengan menggunakan potensiometer serta dilengkapi dengan terminal untuk memasukkan tegangan analog dari luar (A0, A1, A2, dan A3). Hasil konversi oleh modul ADC diambil 8 bit MSB-nya dan dikirimkan ke komputer melalui RS232. Data hasil konversi tersebut pada akhirnya akan ditampilkan pada perangkat lunak Hyperterminal. Pembahasan mengenai penggunaan perangkat lunak Hyperterminal untuk komunikasi serial mikrokontroler PIC dengan komputer akan diberikan pada bagian akhir. Proses komunikasi menggunakan pin RC6 sebagai pin transmitter untuk mengirimkan data dari mikrokontroler ke komputer dan pin RC7 sebagai pin receiver untuk menerima data serial dari komputer. Program komunikasi serial pada
82
mikrokontroler dirancang untuk menerima data dari luar (dari komputer) untuk kemudian mengirimkannya kembali ke komputer dengan nilai/karakter yang sama.
Rutin serial:
Rutin set async:
Mulai
Mulai
Pindahkan isi W ke alamat 22h
banksel SPBRG
Program Utama: set_async
Mulai1
Masukan d’64’ ke SPBRG
A
Inisialisasi PORTA sebagai input Inisialisasi PORTD sebagai output Inisialisasi ADC
banksel ADRESH
Pindahkan isi alamat 22h ke W
Pindahkan isi ADRESH ke W
kirim
banksel TXSTA
Masukan b’00100100’ ke TXSTA
Mulai konversi banksel PORTD wait_acq_t
Kirimkan d’10’ ke W untuk karakter line feed
banksel RCSTA
Pindahkan isi W Ke PORTD
Masukan b’10010000’ ke RCSTA
Kirimkan d’13’ ke W untuk karakter carriage return
banksel ADCON0 serial
ret
bsf ADCON0,GO
Mulai1
end
Rutin kirim: no
ADCON0,G O=0 Mulai
yes A
Banksel PIR1
Rutin wait_acq_t :
Rutin serial: TXIF=1
Mulai
Mulai
banksel count (21h)
Pindahkan isi W ke alamat 22h
Masukkan d’50’ ke W
no
yes banksel TXREG
Movwf TXREG set_async
Pindahkan isi W ke alamat 21h Pindahkan isi alamat 22h ke W
Movwf PORTD
ret
Gambar 6: Diagram alir aplikasi komunikasi serial RS232. decfsz 21h,f
kirim
21h = 0
Kirimkan d’10’ ke W untuk karakter line feed
ret
Kirimkan d’13’ ke W untuk karakter carriage return
Mulai1
Gambar 6 memberikan diagram alir dari program aplikasi komunikasi serial melalui RS232, yang terdiri dari satu program utama dan empat rutin yaitu wait_acq_t, serial, set_async, dan kirim. Pada program utama dilakukan inisialisasi Port A sebagai masukan, PORTD sebagai keluaran, dan inisialisasi ADC. Setelah dilakukan inisialisasi, masukan analog akan mulai dikonversi. Kemudian kita panggil rutin wait_acq_t (wait for acquisition time) yang berfungsi sebagai delay pada proses konversi. Untuk memulai konversi, kita pilih register ADCON0 dan set bit GO pada register tersebut. Kemudian kita lakukan pengecekan bit GO tersebut, jika nilainya satu maka akan terjadi proses looping sampai nilainya sama dengan nol.
83
Jika nilai bit GO pada register ADCON0 sama dengan nol maka akan dipilih register ADRESH yang menyimpan data 8 bit MSB hasil dari konversi analog ke digital. Kemudian kita kirim data dari register ADRESH tersebut ke PORTD jika nilai konversinya ingin kita tampilkan pada deret LED. Untuk melakukan komunikasi serial antara mikrokontroler dengan komputer, kita panggil rutin serial. Rutin ini digunakan untuk mengirimkan data hasil konversi dari ADRESH ke komputer melalui RS232. Pada rutin set_async kita pilih komunikasi serial dengan asynchronous mode dengan BRGH=1 (High Speed) untuk menentukan baudrate sebesar 9600 bps. Setelah menentukan baudrate kita lakukan konfigurasi transmitter dan receiver untuk asynchronous mode dengan memasukkan bilangan b’00100100’ ke register TXSTA dan b’10010000’ ke register RCSTA.
Gambar 7: Pemilihan icon dan nama koneksi pada Hyperterminal.
Pada rutin kirim kita pilih register PIR1 dan cek bit TXIF. Jika nilainya 1 maka pilih register TXREG untuk menulis data ke transmit buffer. Kemudian pindahkan data tersebut ke Port D yang berfungsi sebagai keluaran. Untuk menguji program komunikasi serial, perangkat lunak Hyperterminal yang ada pada setiap PC yang dioperasikan dengan Windows dapat digunakan. Hyperterminal
Salah satu cara untuk melakukan komunikasi antara perangkat keras di luar komputer secara serial yaitu dengan menggunakan perangkat lunak Hyperterminal. Program ini ada secara otomatis ketika kita melakukan instalasi Windows. Untuk mengakses program ini klik Start Æ All Programs Æ Accessories Æ Communications Æ Hyperterminal. Akhirnya kita memperoleh tampilan seperti ditunjukkan pada Gambar 7.
Gambar 8: Pemilihan port serial.
Isikan Nama Koneksi yang akan kita buat pada textbox Name dan pilihlah ikon yang kita hendaki. Setelah itu kita harus mengatur port mana yang akan kita gunakan untuk berkomunikasi antara komputer dan hardware di luar komputer. Hal ini diberikan dalam tampilan pada Gambar 8. Pada combo box Connect using kita memilih port mana yang akan kita gunakan untuk berkomunikasi. Setelah kita pilih port mana yang akan digunakan untuk berkomunikasi, kita harus mengatur properties port tersebut seperti diberikan pada Gambar 9.
Gambar 9: Pengaturan propertis port.
84
Terakhir, kita harus memastikan port komunikasi yang digunakan adalah port yang sama pada komputer dengan baudrate yang sama (9600 bps) tanpa flow control dan jumlah data = 8. Keadaan tampilan sebelum dilakukan komunikasi serial diperlihatkan pada Gambar 10. Setelah komunikasi berhasil dilakukan, tampilannya menjadi seperti pada Gambar 11 dengan masukan dari modul ADC.
Gambar 11: Tampilan Hyperterminal setelah dilakukan komunikasi serial dengan masukan dari modul ADC.
IV. KESIMPULAN
Gambar 10: Tampilan Hyperterminal sebelum dilakukan komunikasi serial.
Pada Gambar 11, data yang dikirim pada Hyperterminal merupakan karakter huruf “u” yang merupakan kode ASCII dengan nilai 117 untuk bilangan desimal dan 75 untuk bilangan heksadesimal. Jika program ADC tersebut digunakan untuk menghasilkan konversi tegangan analog menjadi digital dengan keluaran untuk menyalakan deret led 8 bit, maka nilai dari deret led tersebut sebanding dengan nilai karakter yang ditampilkan pada perangkat lunak Hyperterminal. Karakter huruf “u” yang ditampilkan pada Hyperterminal sama nilainya dengan nyala deret led yang memberikan bilangan 75 heksadesimal Hal ini membuktikan bahwa proses komunikasi serial antara mikrokontroler PIC dengan komputer berhasil dilakukan.
Dengan adanya PIC microtrainer dapat mempermudah kita dalam mempelajari arsitektur, aplikasi, serta pemprograman mikrokontroler keluarga PIC16F877/18F452/16F4520. Hampir semua aplikasi mikrokontroler dapat dilakukan pada PIC microtrainer ini diantaranya adalah aplikasi tampilan peraga LCD dan komunikasi serial melalui RS232.
DAFTAR PUSTAKA
[1] PIC16F8X Datasheet. Microchip Tech. Inc. [2] Pratomo, Andi. Belajar Cepat dan Mudah Mikrokontroler PIC 16F84. Jakarta : PT.ElexMediaKomputindoKelompokGramedia [3] User manual Elkahfi PIC Microtrainer. Oktober 2005.
85
PIC Microtrainer untuk Pemrograman Dasar Mikrokontroler Keluarga PIC Suryadi, Heri Permadi, Nur Asiah Aprianti, Suryadi*), dan Khairurrijal#) Program Studi Fisika, Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Teknologi Bandung Jl. Ganesa 10, Bandung 40132 #) E-mail :
[email protected] Abstrak - PIC Microtrainer produksi Laboratorium Elektronika dan Instrumentasi, Program Studi Fisika, FMIPA, ITB adalah sebuah kit yang dirancang untuk mempermudah mempelajari arsitektur, aplikasi serta pemrograman mikrokontroler khususnya dari keluarga mikrokontroler PIC produksi Microchip Technology Inc. Microtrainer ini dilengkapi dengan modul LED, 7-segmen, LCD, komunikasi serial melalui RS232, dan ADC. Modul LED dan 7-segmen merupakan contoh aplikasi sederhana yang merupakan dasar untuk mempelajari pemrograman untuk aplikasi lain yang lebih rumit. Mikrokontroler yang digunakan dalam PIC Microtrainer ini adalah PIC16F877, tetapi tidak menutup kemungkinan untuk menggunakan mikrokontroler produksi Microchip yang lain dengan konfigurasi pinout yang sama.
mempermudah mempelajari arsitektur, aplikasi serta pemrograman mikrokontroler khususnya dari keluarga mikrokontroler PIC produksi Microchip Technology Inc. Untuk tujuan tersebut Microtrainer ini, seperti yang ditunjukkan pada Gambar 1, telah dilengkapi dengan beberapa modul yang memungkinkan untuk mempelajari aplikasi menggunakan modul LED, 7segmen, LCD, komunikasi serial RS232, dan ADC. Microtrainer ini dirancang untuk mikrokontroler bertipe PIC 16F877, namun dapat digunakan juga tipe lain yang memiliki kompatibilitas pinout, seperti PIC18F452 atau PIC18F4520. Untuk mendownload program ke mikrokontroler, PIC Microtrainer ini telah dilengkapi oleh rangkaian ICSP (In-Circuit Serial Programming) sehingga memudahkan bagi para pengguna yang akan mendownload program ke dalam mikrokontroler.
Kata kunci: PIC Microtrainer, PIC16F877 1.
Pendahuluan
Kemajuan teknologi semikonduktor telah memungkinkan manusia untuk memadukan ribuan transistor beserta komponen lain ke dalam satu chip yang dikenal sebagai IC (Integrated Circuit). Seiring dengan kemajuan tersebut telah berkembang pula piranti semikonduktor yang dapat diprogram. Semikonduktor yang termasuk dalam semikonduktor jenis ini antara lain mikroprosesor, mikrokontroler CPLD (Complex Programmable Logic Device) dan FPGA (Field Programmable Gate Array). Penggunaan piranti yang dapat diprogram memiliki banyak keuntungan, terutama dalam hal penekanan biaya, penghematan ruang dan fleksibilitas yang tinggi. Dengan manipulasi perangkat lunak, piranti dapat deprogram tersebut dapat mengoptimumkan kerja suatu sistem. Mikrokontroler merupakan salah satu contoh piranti yang dapat diprogram yang banyak diminati orang1).
2.
PIC Microtrainer
PIC Microtrainer, produksi Laboratorium Elektronika dan Instrumentasi, Program Studi Fisika, FMIPA, ITB adalah sebuah kit yang dirancang untuk *)
Sekarang bekerja di Pusat Penelitian Fisika LIPI, Kompleks Puspitek Serpong, Tangerang 15314, Indonesia
Gambar 1. PIC Microtrainer
3.
Instruksi-Instruksi PIC16F877
Dari segi arsitekturnya, mikroprosesor atau mikrokontroler dapat digolongkan menjadi dua, yaitu arsitektur Harvard dan von-Neumann. Pada arsitektur Harvard, bus data dan bus alamat dipisahkan, sehingga aliran data dari ke CPU menjadi lebih lancar dan kecepatan kerja mikrokontroler menjadi lebih tinggi. Biasanya, arsitektur Harvard memiliki lebih sedikit macam instruksi dibandingkan arsitektur vonNeumann. Mikrokontroler dengan arsitektur Harvard disebut juga mikrokontroler jenis RISC (Reduced Instruction Set Computer)1).
86
Mikrokontroler PIC16F877 tergolong mikrokontroler berjenis RISC sehingga instruksi yang digunakan relatif sedikit, hanya 35 instruksi. Instruksi-instruksi tersebut terdiri dari 6 instruksi untuk transfer data, 15 instruksi untuk operasi aritmatika dan logika, 2 instruksi untuk operasi bit, 9 instruksi pengarah aliran program dan 3 instruksi umum. Terdapat beberapa simbol yang digunakan dalam menulis program dalam PIC 16F877 yaitu f menunjukkan register file, W register kerja (work register) yang berfungsi sebagai akumulator, b register alamat bit, k register medan literal, konstanta atau label. d register tujuan, jika d = 0, hasil operasi disimpan di register W, sedangkan jika d = 1, hasil operasi ditempatkan di register f. Label menunjukkan nama suatu bagian program. Instruksi untuk transfer data terdiri dari MOVLW, MOVWF, MOVF, CLRW, CLRF, dan SWAPF. Instruksi MOVLW digunakan untuk memindahkan nilai literal ke register W. MOVWF untuk memindahkan isi register W ke f. MOVF untuk memindahkan isi register f ke W jika d = 0, atau ke register f jika d = 1. CLRW untuk membersihkan isi register W. CLRF untuk membersihkan isi register f. Sedangkan SWAPF untuk menukarkan 4 bit atas dengan 4 bit bawah pada register f dan hasilnya disimpan di tujuan d. Instruksi untuk operasi aritmatika terdiri dari ADDLW, ADDWF, SUBLW, SUBWF, ANDLW, ANDWF, IORLW, IORWF, XORLW, XORWF, INCF, DECF, RLF, RRF, dan COMF. Instruksi ADDLW digunakan untuk menjumlahkan suatu literal dengan register W, dan hasilnya disimpan di register W. ADDWF untuk menjumlahkan isi register W dengan f, kemudian hasilnya disimpan di tujuan d. SUBLW untuk mengurangkan isi register W dari suatu nilai literal, hasilnya disimpan di register W. SUBWF untuk mengurangkan isi register W dari register f, hasilnya disimpan di tujuan d. ANDLW untuk melakukan operasi logika AND antara nilai literal dengan register W, hasil operasi disimpan di register W. ANDWF untuk operasi logika AND antara register W dengan register f, hasilnya disimpan di tujuan d. IORLW untuk melakukan operasi OR antara register W dengan nilai literal k, hasilnya disimpan di W. IORWF untuk operasi logika OR antara register W dengan register f, hasilnya disimpan di tujuan d. XORLW untuk melakukan operasi logika XOR antara register W dengan nilai literal k, hasilnya disimpan di W. XORWF untuk operasi XOR antara register W dengan register f, hasilnya disimpan di tujuan d. INCF untuk menaikkan 1 nilai register f, hasilnya disimpan di tujuan d. DECF untuk mengurangi 1 nilai register f, hasilnya disimpan di tujuan d. RLF untuk menggeser ke kiri bit-bit dalam register f, bit 0 ke 1, bit 1 ke 2 dan seterusnya, bit 7 ke carry, carry ke bit 0, dan
hasilnya disimpan di tujuan d. RRF untuk menggeser ke kanan bit-bit dalam register f, bit 7 ke 6, bit 6 ke 5 dan seterusnya, bit 0 ke carry, carry ke bit 7. COMF digunakan untuk mendapatkan nilai komplemen dari isi register f, hasilnya disimpan di tujuan d. Instruksi untuk operasi bit meliputi BCF dan BSF. Instruksi BCF digunakan untuk membersihkan suatu bit pada register f. BSF untuk menetapkan suatu bit pada register f menjadi berlogika 1. Instruksi-instruksi untuk pengarah aliran program terdiri dari BTFSC, BTFSS, DECFSZ, INCFSZ, INCFSZ, GOTO, CALL, RETURN, RETLW, dan RETFIE. Instruksi BTFSC digunakan untuk menguji logika suatu bit pada register f, jika nilainya 0 instruksi berikutnya akan dilompati, sedangkan jika nilainya 1 instruksi berikutnya tetap dieksekusi. BTFSS untuk memeriksa bit pada register f, jika 0 instruksi berikutnya akan dilompati, sedangkan jika berlogika 1 instruksi berikutnya tetap dieksekusi. DECFSZ untuk melakukan pengurangan terhadap register f, jika hasilnya 0 instruksi berikutnya dilompati, hasilnya disimpan di tujuan d. GOTO untuk mengarahkan suatu program ke suatu tempat dengan nama atau alamat tertentu. CALL untuk memanggil suatu subrutin. RETURN untuk kembali dari suatu subrutin. RETLW untuk kembali dari suatu subrutin sambil memberi nilai literal k pada W. RETFIE untuk mengakhiri suatu rutin interupsi. Instruksi-instruksi umum terdiri dari NOP, CLRWDT, SLEEP. Instruksi NOP digunakan untuk mengulur waktu kerja mikrokontroler dan menghabiskan satu cycle namun tidak melakukan operasi apapun. CLRWDT untuk me-reset WDT. Jika WDT diaktifkan, maka mikrokontroler akan mengalami reset saat WDT mengalami overflow, maka WDT ini harus di reset agar WDT tidak mengalami overflow. SLEEP digunakan untuk menjadikan mikrokontroler berada dalam keadaan standby Proses pemindahan data antar register f dalam PIC16F877 harus dilakukan melalui register W. Contoh dari instruksi jenis ini adalah MOVF, yaitu memindahkan isi register f ke tujuan d. Dengan membuat d bernilai 0, maka isi dari register f akan dipindahkan (dikopikan) ke register W. Instruksi MOVWF memindahkan isi register W ke f. Pada dasarnya operasi aritmatika dalam PIC16F877 hanya terdiri dari operasi penjumlahan dan pengurangan. Proses operasi aritmatika ini mempengaruhi nilai bit C, DC, dan Z pada register status. Contoh dari instruksi jenis ini adalah ADDWF dan SUBWF. Instruksi ADDWF berfungsi untuk menjumlahkan isi register W dengan isi register f. SUBWF berfungsi untuk mengkurangkan isi register W dari register f.
87
PIC16F877 memiliki operasi logika yang terdiri dari operasi AND, OR, XOR, COMF dan rotasi RLF atau RRF. Contoh dari instruksi jenis ini adalah ANDLW yang berfungsi untuk melakukan operasi AND antara literal dengan isi register W dan hasilnya disimpan di register W. IORLW untuk melakukan operasi logika antara literal dengan isi register W, hasilnya disimpan di register W.
agar menyala kemudian padam kembali, perlu diberi delay (waktu tunda) agar perubahan antara nyala dan padam dapat terlihat oleh mata. Diagram alir untuk menampilkan data dengan menyalakan LED diberikan dalam Gambar 3. MULAI
Inisialisasi PORT D PortD sebagai Output
Operasi bit terdiri dari dua jenis yaitu BCF dan BSF. Instruksi BCF berfungsi untuk membersihkan bit pada register tertentu dan BSF untuk menset bit pada register tertentu menjadi berlogika 1.
4.
Matikan LED di PORTD (PORTD = H’00’)
Aplikasi Tampilan Deret LED
Dalam PIC Microtrainer, rangkaian perangkat keras untuk aplikasi dengan modul LED ditunjukkan oleh Gambar 2.
Delay
Nyalakan LED di PORTD (PORTD = H’0FF’)
Delay
Gambar 3. Diagram alir modul aplikasi tampilan LED
Langkah pertama yang harus dilakukan dalam memprogram mikrokontroler adalah melakukan inisialisasi portnya dahulu, apakah port itu akan berfungsi sebagai input atau output. Dari Gambar 2 terlihat bahwa PORTD berfungsi sebagai output yang kemudian terhubung pada delapan buah LED. Untuk menjadikan fungsi PORTD sebagai output, register TRISD harus diberi logika 0. Untuk mematikan deret LED, PORTD harus diberi logika 0, dan untuk menyalakan deret LED, PORTD harus diberi logika 1 pada setiap bitnya, atau sebesar 0FF dalam bilangan hexa. Agar aplikasi LED ini bekerja bekelanjutan, maka program untuk mematikan dan menyalakan LED ini harus diulang terus-menerus. Namun, kerja dari mikrokontroler ini sangat cepat sehingga mata manusia tidak dapat mengikuti perubahan nyala LED tersebut. Supaya perubahan nyala LED tersebut dapat diikuti oleh mata manusia, maka harus diberi waktu tunda (delay) kira-kira satu detik, sehingga mengakibatkan LED akan mati selama satu detik, lalu nyala selama satu detik, lalu mati kembali selama satu detik, dan begitu seterusnya. Gambar 2. Perangkat keras untuk aplikasi tampilan deret LED
Delapan buah LED yang diberi label D0 sampai D7 dihubungkan dengan delapan buah pin yang terdapat pada port D mikrokontroler. LED akan menyala apabila pin pada port D yang terhubung ke LED yang bersangkutan diberi logika 1 (High) serta akan padam bila diberikan logika 0 (Low). Untuk membuat LED
5.
Aplikasi Tampilan 7-Segmen
Empat buah peraga 7-segmen tipe common anode dirangkai secara paralel untuk membentuk peraga yang dapat menampilkan empat digit angka. Untuk menampilkan empat digit angka dengan satu jalur data yang diparalel, digunakan teknik multiplexing dimana keempat peraga 7-segmen dinyalakan secara
88
bergantian dengan data yang ingin ditampilkan pada setiap peraga dikirimkan pada saat unit peraga tersebut dinyalakan. Dengan mengatur refresh-rate yang cukup akan diperoleh tampilan yang nyaman di mata manusia. Jalur data peraga 7-segmen yang yang dirangkai paralel, dihubungkan ke mikrokontroler melalui IC driver yaitu 74LS247. Port mikrokontroler yang digunakan untuk aplikasi ini adalah port D, dimana bagian LSB (RD0 sampai RD3) digunakan sebagai jalur data dan bagian MSB (RD4 sampai RD7) digunakan untuk mengontrol hidup mati keempat unit peraga 7-segmen. Rangkaian untuk aplikasi tampilan dengan peraga 7-segmen diberikan oleh Gambar 4.
kaki anoda pada 7-segmen. Apabila pin ini diberi logika low (0), maka tegangan pada basis transistor ini akan bernilai 0 volt, sehingga tegangan pada kaki kolektornya akan menjadi +5 volt, hal ini akan menyebabkan 7-segmen akan menyala. Untuk menampilkan sebuah angka pada sebuah unit peraga, data yang bersesuaian dengan angka yang ingin ditampilkan dikirim melalui bagian LSB dari port D mikrokontroler sementara pin pada bagian MSB untuk mengontrol unit peraga yang ingin dihidupkan diberi logika 0 (low) sementara pin pengontrol unit yang lain diberi logika 1 (high).
D
MULAI
A
Inisialisasi PORTD PORTD sebagai output
Masukkan angka 2 ke register W W = 02
Masukkan angka 1 ke register W W = 01
W OR B’11110000' PORTD = W Clear PORTD,6
W OR B’11110000' PORTD = W Clear PORTD,5
Delay
Delay B A
B
C
Masukkan angka 3 ke register W W = 03
Masukkan angka 4 ke register W W = 04
W OR B’11110000' PORTD = W Clear PORTD,6
W OR B’11110000' PORTD = W Clear PORTD,7
Delay
Delay
C
D
Gambar 4. Perangkat keras aplikasi tampilan 7-segmen
Gambar 5. Diagram alir tampilan 7-segmen
Bagian LSB pada port D (RD0 sampai RD3) yang berfungsi sebagai jalur data dihubungkan ke IC driver 74LS247. IC ini berfungsi untuk mengkonversi nilai yang berbentuk desimal yang masuk menjadi kodekode biner yang kemudian dihubungkan secara paralel ke empat buah 7-segmen. Untuk memilih 7-segmen yang akan diaktifkan digunakan bagian MSB pada port D (RD4 sampai RD7). Masing-masing pin ini dihubungkan ke bagian basis dari transistor yang berjenis PNP setelah melewati resistor. Kaki emitor pada transistor ini dihubungkan pada tegangan +5 volt, sedangkan kaki kolektornya dihubungkan pada
Untuk menampilkan angka 1234 pada 7-segmen dilakukan dengan cara memberi nilai 1,2,3,4 pada PORTD serta mengaktifkan 7-segmen ke 1,2,3,4 secara bergantian. Dengan adanya delay yang sangat kecil menyebabkan mata kita tidak dapat melihat perubahan tersebut sehingga seolah-olah kita hanya melihat nilai 1234 pada keempat 7-segmen tersebut. Program aplikasi 7-segmen diawali dengan proses inisialisasi. Karena port yang digunakan sebagai output adalah PORTD, maka port ini perlu
89
diinisialisasi terlebih dahulu agar berfungsi sebagai output. Untuk menjadikan PORTD berfungsi sebagai output, register TRISD diberi nilai 0. Untuk menampilkan angka 1 pada 7-segmen yang pertama (digit ke-1), register W diisi dengan nilai 1 lalu di-ORkan dengan B’11110000’ hal ini dimaksudkan agar seluruh 7-segmen mati. Nilai W ini kemudian dikirim ke PORTD, dengan menjadikan bit ke 4 pada PORTD berlogika 0, maka 7-segmen yang pertama akan menampilkan angka 1. Untuk menampilkan angka 2 pada 7-segmen yang kedua (digit ke-2), register W diisi dengan nilai 2 lalu di-OR-kan dengan B’11110000’ hal ini dimaksudkan agar seluruh 7segmen mati. Nilai W ini kemudian dikirim ke PORTD, dengan menjadikan bit ke 5 pada PORTD berlogika 0, maka 7-segmen yang kedua akan menampilkan angka 2. Demikian juga halnya dengan 7-segmen yang ketiga dan keempat. Proses ini diulang secara terus menerus dengan delay yang sangat kecil sehingga seolah-olah kita hanya melihat angka 1234 pada empat 7-segmen tersebut.
6.
Kesimpulan
PIC Microtrainer ini telah dirancang untuk mempelajari arsitektur dan pemrograman mikrokontroler PIC16F877 secara mudah dan cepat. Modul Apliksi LED dan 7-segmen merupakan contoh aplikasi sederhana yang merupakan dasar untuk mempelajari aplikasi lain yang lebih rumit
Daftar Pusaka [1] Pratomo, Andi. Belajar Cepat dan Mudah Mikrokontroler PIC16F84. Jakarta. PT ElexMediaKomputindo. [2] Elkahfi PIC Microtrainer Manual Book. Bandung: Program Studi Fisika, FMIPA, ITB. [3] http://pdf1.alldatasheet.com/datasheetpdf/view/75016/MICROCHIP/PIC16F877.html
90
Simulasi Program Aplikasi Modul A/D Converter PIC16F877 dengan Menggunakan PIC Microtrainer Nur Asiah Aprianti, Suryadi, Heri Permadi, Suryadi#) dan Khairurrijal Program Studi Fisika, Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Teknologi Bandung Jalan Ganesa 10, Bandung 40132 #) Pusat Penelitian Fisika LIPI, Komplek Puspiptek Serpong, Tangerang 15314 E-mail :
[email protected] Abstrak - Mikrokontroler memiliki posisi yang cukup penting dalam perkembangan teknologi. Salah satu aplikasi mikrokontroler adalah akusisi data dalam pengukuran yang mengkonversi sinyal masukan analog menjadi sinyal digital sebanding. Dengan menggunakan PIC Microtrainer dari Laboratorium Elektronika dan Instrumentasi, Program Studi Fisika, FMIPA ITB, simulasi program aplikasi modul A/D Converter (ADC) dapat dengan mudah dilakukan karena PIC Microtrainer tersebut memanfaatkan mikrokontroler PIC16F877 yang telah dilengkapi dengan ADC di dalamnya. Beberapa contoh simulasi program aplikasi ADC dengan memanfaatkan beberapa fitur PIC Microtrainer diberikan dalam makalah ini. Kata Kunci : A/D Converter, Mikrokontroler PIC16F877 dan PIC Microtrainer 1. PENDAHULUAN
dan penstranferan data ke PC menjadi lebih mudah karena tidak perlu lagi dirangkaikan dengan rangkaian ADC eksternal. PIC Microtrainer, simulator yang berfungsi untuk mempermudah mempelajari arsitektur, aplikasi serta pemograman mikrokontroler dari keluarga PICmicro, yang diproduksi Laboratorium Elektronika dan Instrumentasi, Program Studi Fisika ITB dirancang khusus untuk mikrokontroler tipe PIC16F877 atau tipe lainnya yang memiliki kompatibilitas pinout seperti PIC18F425 atau PIC16F4520. PIC Microtrainer ini telah dilengkapi dengan beberapa modul aplikasi selain aplikasi ADC, di antaranya adalah aplikasi deret LED, peraga 7 segmen, peraga LCD, komunikasi serial dengan RS232 dan keypad. Dengan menggunakan PIC Microtrainer simulasi program aplikasi ADC menjadi lebih mudah dan efisien. Gambar 1 berikut menunjukkan tampilan kit PIC Microtrainer.
Akusisi data merupakan hal penting dalam suatu pengukuran. Salah satu komponen yang berfungsi sebagai akusisi data adalah A/D converter, suatu komponen yang mampu mengkonversi sinyal masukan analog menjadi sinyal digital sebanding. Saat ini A/D converter yang dikenal juga dengan sebutan ADC telah memiliki banyak spesifikasi. Pada umumnya, harga dan kerumitan suatu ADC akan bertambah seiring dengan kecepatan konversi dan keakuratan yang dimiliki ADC tersebut1). Kecepatan konversi dan keakuratan suatu ADC merupakan dua parameter penting yang harus diperhatikan dalam pengukuran/aplikasi lainnya. Kini dengan kemajuan teknologi semikonduktor telah memungkinkan manusia untuk memadukan ribuan transistor beserta komponen lainnya dalam satu chip IC yang dapat diprogram (programmable device) seperti mikrokontroler2). Pada beberapa jenis mikrokontroler ada yang telah dilengkapi dengan komponen ADC sebagai modul pengkonversi. Salah satunya adalah mikrokontroler PIC16F877 dari keluarga PICmicro. Mikrokontroler PIC16F877 telah dilengkapi dengan modul internal ADC 10 bit. Keakuratan yang dimiliki modul internal ini cukup baik dan memiliki waktu pengkonversian yang cukup cepat. Dengan menggunakan mikrokontroler yang telah dilengkapi modul internal ADC ini, proses akusisi data mulai dari pengukuran, pengkonversian
Gambar 1. PIC Microtrainer
2. DESKRIPSI MODUL A/D CONVERTER A/D converter pada PIC PIC16F877 memiliki delapan buah masukan yang mengkonversi sinyal masukan analog ke dalam bilangan digital 10 bit. Modul A/D memiliki pilihan input tegangan rendah dan tinggi, hal tersebut dapat disetting dengan mengatur VDD, VSS, RA2 atau RA3 pada register ADCON1. Modul ini memiliki empat buah register, yaitu : 9 ADRESH (A/D result high register) 9 ADRESL (A/D result low register) 9 ADCON0 (A/D control register 0)
91
9 ADCON1 (A/D control register 1) Register ADCON0 berfungsi sebagai kontrol dalam pengoperasian modul ADC sedangkan register ADCON1 berfungsi untuk mengkonfigurasi fungsi dari port ADC. Modul internal ADC pada PIC16F877 memiliki fitur yang unik, yaitu mampu beroperasi saat dalam keadaan mode SLEEP.
7, potensiometer (sebagai masukan analog) oleh no. 6 dan terminal (sebagai masukan analog) oleh no. 8
Urutan waktu pengkonversian modul ADC adalah sebagai berikut :
Acquisition time merupakan waktu yang diperlukankan untuk menghubungkan kapasitor modul ADC pada level tegangan eksternal. Hal ini terjadi saat channel ADC disetting dan setelah pengkonversian ADC terjadi. Sedangkan A/D Conversion time merupakan waktu yang diperlukan untuk melakukan konversi ADC. Konversi ADC dimulai saat bit GO pada Register ADCON0 disetting berlogika ‘1’ dan saat berakhir hasil konversi ADC diisikan ke register ADRES. Langkah-langkah untuk melakukan konversi ADC : 1. mengkonfigurasi modul ADC 2. mengkonfigurasi interrup ADC (bila perlu) 3. menunggu untuk Acquisition time 4. memulai konversi dengan men set bit GO (ADCON0) 5. menunggu untuk menyelesaikan pengkonversian dengan mencek bit GO masih berlogika ‘1’ atau tidak 6. membaca hasil konversi ADC pada register ADRESH atau ADRESL
Gambar 2. Tata letak papan PIC Microtrainer
Program aplikasi yang akan di load ke mikrokontroler dapat langsung diisikan setelah diperoleh file hexsanya dengan bantuan rangkaian ICSP (In-Circuit Serial Programming) yang telah terpasang dalam PIC Microtrainer dan perangkat lunak WinPIC. Beberapa contoh program aplikasi ADC adalah sebagai berikut : 3.1 ADC – LED Start Port A = input Port D = output Setting modul ADC
Modul internal ADC memiliki keakuratan yang cukup baik dgn resolusi 10bit namun masih terdapat error dalam pengoperasiannya. Untuk VDD=Vref nilai error yang terjadi pada konversi ADC adalah < ± 1 LSb. Pada sistem yang memiliki frekuensi operasi rendah, penggunaan clock RC pada saat konversi ADC sangat dianjurkan. Dengan menggunakan clock RC, saat sistem mengaktifkan mode SLEEP sesaat setelah penkonversian dimulai, digital noise dari modul akan berhenti.
Baca port A, 0
Konversi ADC
Tidak
Konversi selesai Ya W = ADRESH
3. HASIL DAN PEMBAHASAN Simulasi program aplikasi ADC pada PIC Microtrainer dapat dilakukan dengan mengkonfigurasi swicth SW1 dan jumper J1 sesuai dengan input dan output yang digunakan. konfigurasi SW1 menentukan modul output yang aktif (LED, peraga 7 segmen atau peraga LCD) dan J1 menentukan tegangan input ADC yang digunakan (potensiometer / terminal). Pada Gambar 2 di bawah ini, LED indikator setting SW1 ditunjukkan oleh no.
Tampilkan di port D
End
Gambar 3. Diagram alir ADC-LED
92
Program aplikasi ini merupakan program aplikasi ADC yang paling sederhana, output hasil konversi ADC ditampilkan pada modul deret LED. Nilai hasil konversi ADC yang ditampilkan deret LED merupakan nilai dalam bilangan biner. Diagram alir dari program tersebut dapat dilihat pada Gambar 3 di atas
ground (0 Volt) sedangkan common katode dengan menghubungkan pada VCC (5 Volt).
3.2 ADC - 7 segmen Start Port A = input Port D = output
Setting modul ADC
Baca port A, 0
Konversi ADC
Tidak
Konversi selesai
Ya Terjemahkan nilai hasil konversi
Tampilkan di Peraga 7 segmen
Gambar 4. Peraga 7 segmen
Untuk dapat menampilkan angka desimal (mis. Angka 1) maka perintahnya adalah memberikan logika high (1) pada LED b dan LED c. Namun hal tersebut sangat lah tidak praktis. Karena itu pada rangkaian aplikasi 7 segmen dalam PIC Microtrainer dipasangkan IC 74LS247 sebagai IC yang dapat mengkonversi secara otomatis angka desimal yang ingin ditampilkan. Diagram alir dari program aplikasi ADC – 7 segmen ini titunjukkan pada Gambar 5. 3.3 ADC – LCD Sama halnya dengan peraga 7 segmen, peraga LCD dapat menampilkan output hasil konversi ADC dalam bentuk angka desimal. Bukan hanya itu, peraga LCD pun dapat menampilkan bentuk karakter yang lebih beragam dibandingkan dengan peraga 7 segmen. Jenis perga LCD yang digunakan dalam PIC Microtrainer ini adalah jenis LCD yang dapat menampilkan 2x16 karakter. Peraga LCD memiliki delapan buah pin untuk jalur data, tiga pin untuk jalur kontrol, dua pin untuk jalur catu daya dan satu pin untuk mengatur kekontrasan tampilan layar LCD. Dengan mengkombinasi rangkaian aplikasi ADC dan LCD maka dapat diperoleh tampilan hasil konversi ADC dari tegangan input yang telah ditentukan (potensiometer/terminal) pada peraga LCD. Selain itu dengan program aplikasi ADC – LCD, programmer dapat menyelipkan pesan / keterangan untuk di tampilkan pada peraga LCD bersamaan dengan nilai hasil konversi ADC. Diagram alir dari program aplikasi tersebut diberikan pada Gambar 6.
End
Gambar 5. Diagram alir ADC-7 segmen
Pada program aplikasi ADC – 7 segmen, output hasil konversi ADC ditampilkan pada peraga 7 segmen. Pada peraga 7 segmen output yang ditampilkan bukan dalam bilangan biner namun berupa tampilan angka desimal. Karena itu pensettingannya pun menjadi lebih rumit dibandingkan program aplikasi ADC – LED. Peraga 7 segmen merupakan susunan 7 buah LED yang membentuk angka delapan (Gambar 4). Ada dua buah jenis peraga 7 segmen, yaitu common anode dan common cathode. Perbedaan keduanya adalah bagaimana cara mengaktifkannya. Common anode dapat diaktifkan dengan menghubungkan pada
93
Start Port A = input Port D = output Port E = output
Setting modul ADC Setting peraga LCD
Baca port A, 0
hasil konversi ADC. Diagram alir contoh program aplikasi ADC-7 segmen-serial ditunjukkan pada Gambar 7. 3.5 ADC-LCD-Serial Sama halnya dengan yang telah dijelaskan pada aplikasi ADC-7 segmen-Serial, program aplikasi ADC-LCD-Serial sangat berguna dalam akusisi data. Pebedaannya hanya pada tampilan data. Pada peraga LCD, data yang ditampilkan dapat lebih dari sekedar angka hasil konversi ADC. Misalnya, menampilkan keterangan urutan data yang masuk (data ke : 1/2/3...). Diagram alir contoh program aplikasi ADC-LCDSerial dapat dilihat pada Gambar 8. Start
Konversi ADC
Port A = input Port D = output
Tidak Konversi selesai Ya
Setting modul ADC
Terjemahkan nilai hasil konversi
Setting mode Asinkron
Tampilkan di Peraga LCD
Baca port A, 0
Konversi ADC
End
Tidak Konversi selesai
Gambar 6. Diagram alir ADC-LCD
3.4 ADC-7 segmen–serial Salah satu hal penting dalam melakukan akusisi data adalah pentransferan data dari mikrokontroler ke PC (Personal Computer). Jenis komunikasi yang umum digunakan untuk melakukan transfer data ini adalah komunikasi serial dengan RS232. PIC Microtrainer telah dilengkapi pula dengan modul komunikasi serial RS232 yang memudahkan penstransferan data dari mikrokontroler ke PC atau sebaliknya. Dengan mengkombinasikan rangkaian aplikasi ADC, peraga 7 segmen dan aplikasi komunikasi serial RS232, hasil konversi A/D dapat dilihat langsung pada peraga 7 segmen dan ditransfer ke PC untuk dapat diolah lebih lanjut. Pada rangkaian komunikasi serial dalam PIC Microtrainer dipasangkan IC MAX232 di antara sambungan mikrokontroler dan port RS232, hal ini dimaksudkan untuk menjembatani perbedaan tegangan antara mikrokontroler dan PC. Data yang ditransfer ke PC dapat dilihat pada Hyperterminal, sebuah perangkat lunak yang terinstal secara otomatis pada PC saat menginstal Windows, dengan menset Hyperterminal sesuai dengan set mikrokontroler. Data yang dikirim ke PC merupakan nilai ASCII dari data
Ya Terjemahkan nilai hasil konversi
Cek register PIR1,4 Tidak
TXIF= 1 Ya Hasil konversi + d’48’ Kirim ke PC & tampilkan di 7 segmen
End
Gambar 7. Diagram alir ADC-7 segmen-serial
94
Start Port A = input Port D = output Port E = output
Setting modul ADC Setting peraga LCD Setting mode Asinkron Baca port A, 0
Konversi ADC Tidak
Konversi selesai Ya Terjemahkan nilai hasil konversi
4. KESIMPULAN Penggunaan mikrokontroler PIC16F877 pada PIC Microtrainer tidak membutuhkan tambahan rangkaian ADC eksternal untuk melakukan simulasi program. Dengan menggunakan beberapa modul aplikasi lainnya yang ada di PIC Microtrainer, pemprograman serta simulasi program mikrokontroler PIC16F877 menjadi lebih mudah.
DAFTAR REFERENSI [1] Wobschall, Darold. Circuit Design for Electronic Instrumentation. Second edition. United States of America : McGraw-Hill, Inc [2] Pratomo, Andi. Belajar Cepat dan Mudah Mikrokontroler PIC16F84. Jakarta : PT. ElexMediaKomputindo [3] http://pdf1.alldatasheet.com/datasheetpdf/view/75016/MICROCHIP/PIC16F877.html [4] Elkahfi PIC Microtrainer, User Manual ver.1.0. Program Studi Fisika, FMIPA, ITB [5] Modul Praktikum Sistem Instrumentasi. Program Studi Fisika, FMIPA, ITB.
Cek register PIR1,4 Tidak
TXIF= 1 Ya Setting DDRAM Hasil konversi + d’48’ Kirim ke PC & tampilkan di LCD
End
Gambar 7. Diagram alir ADC-7 segmen-serial
95
Aplikasi Mikrokontroler MCS-51 dalam Percobaan Bandul untuk Penentuan Nilai Gravitasi Bumi Yanuar Syapaat, Suryadi, Heri Permadi, Gun Gun Gumilar, dan Khairurrijal*) Program Studi Fisika, Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Teknologi Bandung Jalan Ganesha 10, Bandung, Indonesia, 40132 *) E-mail:
[email protected]
Abstrak Mikrokontroler dapat dianalogikan dengan komputer berukuran kecil atau biasa disebut minikomputer. Layaknya sebuah komputer yang memiliki posesor, memori, port input untuk mouse, port output untuk printer, layar dll. mikrokontroler juga mempunyai fitur yang sama tetapi berukuran sangat kecil bila dibandingkan komputer. Mikrokontroler AT89S52 merupakan salah satu jenis dari mikrokoktroler MCS-51 yang mempunyai 8 Kbyte sistem flash memori sehingga kemampuan baca tulis program bisa mencapai 1000 kali, 32 pin I/O dan dengan kelebihan lain, mikrokontroler ini dapat digunakan dalam berbagai fungsi. Dan pada percobaan kali ini, mikrokontroler ini digunakan untuk menghitung nilai gravitasi dari percobaan bandul. Sensor inframerah digunakan sebagai pendeteksi gerak bandul dan sinyal sensor tersebut dimasukan kedalam mikrokontrole. Sinyal yang masuk diidentifikasi sebagai interupsi pada mikrokontroler yang di program untuk mengenali bahwa waktu antara dua sinyal dari sensor sebagai perioda bandul. Perumusan matematis percobaan bandul menyatakan adanya hubungan antara besar perioda, panjang tali dan nilai gravitasi, oleh karena itu nilai gravitasi dapat dihitung kemudian. Pengolahan data mempergunakan ms excel yang mengolah data hasil akusisi dari hyperteminal. Percobaan ini diharapkan dapat menunjukkan bahwa pengamatan fenomena fisika bukanlah sesuatu hal yang sangat sulit. Oleh karena itu pembuatan alat-alat ini sangat cocok untuk lab fisika di sekolah-sekolah ataupun perguruan tinggi dan akan sangat membantu pembelajaran fisika. Katakunci : Mikrokontroler, AT89S52, Program, bandul, Gravitasi
I. PENDAHULUAN Sampai saat ini fisika masih dianggap suatu hal yang sulit baik secara teori maupun secara praktek, fisika dianggap sekumpulan rumus yang tidak dapat diaplikasikan dalam kehidupan sehari-hari, percobaan-percobaanya dianggap sesuatu hal yang sulit dilakukan dan dengan biaya yang mahal. fisika dengan peralatan yang kita dimiliki apa adanya, percobaan fisika dapat divariasikan agar terlihat lebih mudah. Contohnya pada penentuan nilai percepatan gravitasi bumi dengan percoban bandul. Osilasi bandul digantungkan pada ketinggian tertentu kemudian diamati periodanya. Dari osilasi kemudian didapatkan perioda, yang digunakan
dalam perhitungan untuk mendapatkan nilai percepatan gravitasi bumi. Dengan adanya mikrokontroler maka fenomena fisika dapat diotomatisasi termasuk percobaan penentuan nilai gravitasi bumi. Osilasi bandul di deteksi oleh sensor dan kemudian datanya dikirim ke mikrokontroler yang diprogram untuk menghitung periode dari osilasi bandul tersebut. Mikrokontroler yang dipergunakan merupakan keluarga MCS-51 yaitu mikrokontroler AT89S52 yang diproduksi oleh Atmel, mikrokontroler ini mempunyai beberapa kelebihan diantaranya harganya yang relatif murah.
96
II.
TEORI PENENTUAN NILAI GRAVITASI MENGGUNAKAN METODA PERCOBAN BANDUL
III.
PEMROGRAMAN MIKROKONTROLER
Dalam fisika (mekanika), besaran percepatan gravitasi g dapat ditentukan dengan berbagai metode, diantaranya osilasi bandul, pegas, dan osilasi zat cair dalam pipa. Pada bandul yang berosilasi, diperoleh periode osilasi T sebagai fungsi panjang tali l . Fungsi ini dapat dinyatakan dalam persamaan :1)
PADA
l
c
a b
Gbr.2.Perida Bandul
Perioda atau waktu getar (T) adalah selang waktu yang diperlukan untuk melakukan satu getaran lengkap(satuan detik)3), atau dengan kata lain waktu yang diperlukan oleh bandul (Gbr.2.) untuk menempuh perjalanan dari b ke c kemudian ke b lagi, atau dari b ke a kemudian ke b lagi. Pergerakan bandul ini dideteksi oleh sensor infrared-phodioda.
Pers.1.Perioda Bandul
Gbr.1. Ilustrasi Percobaan
Dari persamaan diatas apabila panjang tali, dan peridoe osilasi bandul diketahui maka dapat dihitung nilai percepatan gravitasi bumi sehingga persamaanya dapat diubah menjadi : g = 4π2l/T2 Pers.2. Percepatan Gravitasi Bumi
Gbr.3.Sensor Infrared-Photodioda
dimana : 2
g = percepatan gravitasi bumi (meter/detik ) l = panjang tali (meter) T = peroioda osilasi bandul Π = konstanta 3,14
Transmitter memancarkan gelombang inframerah yang selalu diterima oleh receiver photodioda yang diletakkan di antara pergerakan bandul, tetapi apabila bandul melintas diantara sensor ini maka sinyal dari infrared terpotong sehingga menyebabkan perubahan kondisi pada photodioda. Perubahan inilah yang dideteksi oleh mikrokontroler.
97
Sensor ditempatkan di antar lintasan b, satu periode bandul berarti sensor menangkap sinyal pada titik b sebanyak dua kali, dan pada mikrokontroler di definisikan satu kali sensor menangkap sinyal sebagai satu interupt yang berarti dua kali intrupt adalah satu periode bandul tersebut. Sehingga diagram alirnya digambarkan sebagai berikut :
dapat
dilakukan Adanya interupt ini di tandai oleh nyalanya LED yang di pasang pada board mikrokontroler. IV. AKUSISI DATA 4.1 Pengambilan data dengan Hyperterminal Data dari mikrokontroler yang bernilai perioda dari bandul, kemudian dikirimkan ke computer melalui komunikasi serial RS232, dan pada computer data ditampilkan pada aplikasi hyperterminal yang sebelumnya telah di setting agar dapat menerima data dari komunikasi serial sehingga penggambilan data dapat dilihat seperti gambar di bawah ini.
Gbr.5. Akusisi Data Dengan Hyperterminal
Data dari hyperterminal berupa perioda osilasi badul kemudian di pindahkan ke note pad atau langsung ke Ms Excel yang kemudian diolah sesuai tujuan yaitu menghitung nilai dari percepatan gravitasi.
Gbr.4. Diagram Alir Program
Dapat dilihat di atas bahwa perioda didefinisikan sebagai waktu antara terjadinya dua kali interupt. Pada percobaan yang
98
4.2 Pengolahan Data
V. DISKUSI
Data yang didapat adalah perioda osilasi bandul data tersebut bernilai milidetik sehingga diubah dahulu menjadi detik, dan berdasarkan persamaan . maka perhitungan nilai gravitasi dapat dicari. Seperti disajikan pada table 1.
Mikrokontroler diprogram agar dapat mengamati nilai dari periode osilasi bandul sebaik mungkin, dalam program telah di perkirakan bahwa eror yang terjadi hanyalan satu milidetik, tetapi pada kenyataanya nilai yang di dapat berbeda dengan referensi.
TABEL I PENGOLAHAN DATA DENGAN MS EXCEL
Hasil Perhitungan Nilai Gravitasi t(ms)
t(s)
t^2
Nilai Gravitasi
1935
1.935
3.74423
10.42779641
1935
1.935
3.74423
10.42779641
1937
1.937
3.75197
10.40627361
1935
1.935
3.74423
10.42779641
1934
1.934
3.74036
10.43858285
1937
1.937
3.75197
10.40627361
1935
1.935
3.74423
10.42779641
1941
1.941
3.76748
10.36342745
1935
1.935
3.74423
10.42779641
1935
1.935
3.74423
10.42779641
1936
1.936
3.7481
10.41702667
1936
1.936
3.7481
10.41702667
1936
1.936
3.7481
10.41702667
1927
1.927
3.71333
10.51455877
1934
1.934
3.74036
10.43858285
1936
1.936
3.7481
10.41702667
1934
1.934
3.74036
10.43858285
1930
1.93
3.7249
10.48189643
1936
1.936
3.7481
10.41702667
1936
1.936
3.7481
10.41702667
1840
1.84
3.3856
11.53237713
1952
1.952
3.8103
10.24695562
1911
1.911
3.65192
10.69136381
Hasil nilai rata-rata nilai percepatan gravitasi yang diperoleh adalah 10,47 m/s2 berbeda dengan referensi yaitu sebesar 9,8 m/s2. Banyak faktor yang mempengaruhi dari keakuratan data yang diperoleh, mulai dari faktor lingkungan sampai faktor pada alat itu sendiri. Faktor lingkungan yang mempengaruhi diantaranya kemiringan dari lantai, getaran-getaran yang terjadi ketika percobaan dan sebagainya. Keakuratan data juga dipengaruhi oleh alat dan cara percobaan, misalkan ayunan bandul yang tidak sempurna sehingga simpangan yang terjadi tidak selurus yang diinginkan, selain itu besarnya bandul yang digunakan, sensor mendeteksi bandul ketika bandul tersebut melewati sensor, apabila sisi bandul tersebut cukup besar maka sensor akan langsung mendeteksinya dan ketika badul tersebut kembali maka sisi sebaliknya sensor akan mendeteksi sehingga pendeteksian bandul tidak tepat di tengah-tengah pusat massa. Tetapi penggunaan mikrokontroler ini merupakan suatu bukti bahwa fenomena fisika dapat kita variasikan dengan kemampuan kita yang lain sehingga dapat dilakukan lebih mudah.
Perhitungan sederhana ini dilakukan pada aplikasi Ms Excel dengan formulasi sesuai persamaan di atas.
99
VI. KESIMPULAN Mikrokontroler AT89S52 yang merupakan mikrokontroler keluarga ATMEL dapat diaplikasikan dalam berbagai bidang, salah satunya dalam fenomena fisika penentuan nilai percepatan gravitasi dengan percobaan bandul. Mikrokontoler menerima sinyal dari sensor yang di program agar dapat mendeteksi setiap perioda bandul setiap dua kali pengiriman sinyal dari sensor. Data kemudian diolah dengan Ms Excel sehingga didapatkan nilai dari percepatan gravitasi, dan dari percobaan ini didapat nilai percepatan gravitasi sebesar +- 10,4 m/s2. tentu saja nilai yang di dapat memiliki perbedaan dengan nilai referensi yaitu sebesar 9,8 m/s2 dikarenakan berbagai faktor yaitu, delay dari pemrograman, pantulan sinar sendor dari bandul, keadaan lingkungan dan berbagai faktor lainnya. Tetapi pada intinya percobaan ini menjadi menarik karena ternyata fenomena fisika dapat di otomatisasi sehingga memudahkan kita dalam melakukan pengamatannya. VII.
REFERENSI
[1] Khairurrijal, M. Miftahul Munir, Asep Suhendi, Hendrayana Thaha, Suryadi ”DIKTAT MIKROKONTROLER MCS-51”, 2007. [2] Eko Afgianto, ”Belajar mikrokontroller AT89C51/52/55, Teori dan Aplikasi” Andi, Yoyakarta, 2005. [3] Data Sheet mikrokontroller AT89C51/52/55 [4]http://www.saburchill.com/physics/practicals/ 006.html
100
Aplikasi Protokol Layanan Pesan Singkat pada Sistem Telemetri Heri Permadi, Hendrayana Thaha*), Asep Suhendi dan Khairurrijal#) Program Studi Fisika, Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Teknologi Bandung Jl. Ganesha 10, Bandung 40132 *) Electrical and Electronics Engineering, Universiti Teknologi Petronas, Malaysia #) E-mail :
[email protected] Abstrak Sistem pengukuran jarak jauh di mana stasiun ukur berada pada lokasi yang tersebar dan memiliki ukuran data kurang dari 140 byte untuk pengiriman setiap paket data akan lebih efisien jika menggunakan fasilitas SMS yang tersedia pada jaringan GSM. Jika suatu stasiun ukur melakukan pengukuran di suatu tempat yang memiliki akses terhadap salah satu penyedia jaringan GSM maka data tersebut akan dapat disampaikan ke stasiun kontrol di seluruh dunia selama stasiun tersebut memiliki akses juga pada salah satu penyedia jaringan GSM Hal ini dimungkinkan karena adanya salah satu sifat dari jaringan GSM yaitu memiliki standar pengiriman yang sama di seluruh dunia dan juga memiliki fasilitas roaming internasional. Untuk mengirimkan data pengukuran dari stasiun ukur, maka data tersebut dienkapsulasi dengan protokol SMS oleh mikrokontroler di stasiun ukur. Proses enkapsulasi ini yaitu proses penggabungan data pengukuran dengan protokol SMS. Untuk memisahkan kembali data pengukuran dari protokol SMS maka dilakukan proses dekapsulasi. Proses dekapsulasi tersebut dilakukan oleh komputer yang terhubung dengan jaringan GSM melalui handphone. Untuk mengoptimalkan jumlah data yang dapat dikirim dalam 1 paket data SMS, maka dipergunakan mode pengiriman SMS 8 bit. Pada stasiun ukur disediakan 4 port masukan sensor dengan tegangan keluaran sensor dari 0 hingga 5 volt. Data pengukuran disimpan sementara dalam EEPROM hingga data tersebut dikirimkan ke stasiun ukur. Hal ini dilakukan untuk mencegah data pengukuran hilang akibat terputusnya sumber daya di stasiun ukur. Kata kunci : Stasiun ukur, stasiun kontrol, SMS, GSM.
I. Pendahuluan Proses pengukuran secara tidak langsung lazim disebut dengan sistem telemetri. Secara terminologi telemetri berasal dari kata tele yang berarti jauh dan metri yang berarti pengukuran, sehingga sistem telemetri dapat diartikan sebagai sistem pengukuran jarak jauh. Pemanfaatan sistem telemetri diantaranya digunakan pada sistem peringatan dini bencana alam, pemantauan keadaan dan kualitas air, kesehatan, pemantauan gas beracun pada suatu tempat dan sebagainya. Dengan memanfaatkan sistem telemetri ini, maka telah memungkinkan kita melakukan pengukuran terhadap data fisis yang letaknya jauh dan berada pada daerah yang berbahaya. Sistem telemetri terdiri dari dua bagian yaitu stasiun ukur dan stasiun kontrol. Stasiun ukur berfungsi untuk melakukan pengukuran terhadap besaran
fisis yang akan kita ukur dan mengirimkan data yang telah didapat tersebut ke stasiun kontrol. Stasiun kontol berfungsi untuk mengatur seluruh proses dalam sistem telemetri dan digunakan juga sebagai tempat penyimpanan data hasil pengukuran yang dilakukan stasiun ukur. Stasiun kontrol terdiri dari sebuah komputer dan tranceiver. Komputer berfungsi untuk melakukan penyimpanan data hasil pengukuran pada suatu sistem basis data. Komputer juga memberikan tampilan informasi kepada pengguna data tersebut. Tranceiver berfungsi untuk melakukan pengiriman dan menerima data yang dikirimkan dari stasiun ukur. Stasiun ukur pada sistem telemetri terdiri dari tiga bagian utama yaitu sistem sensor, mikrokontroler, dan tranceiver. Media pengiriman data yang digunakan dalam sistem telemetri ini adalah Short Message Service (SMS). 101
II. Teknologi GSM dan SMS Protokol II.1 Teknologi GSM Jaringan GSM merupakan standar internasional dan memiliki standar pengiriman yang sama di seluruh dunia. Dengan adanya standar
pengiriman tersebut maka telah memungkinkan kita untuk mengirimkan data dari stasiun ukur ke stasiun kontrol di seluruh dunia selama stasiun tersebut memiliki akses terhadap salah satu penyedia (provider) jaringan GSM.
Gambar 1 Blok diagram arsitektur sistem GSM[10]
Dengan adanya fasilitas SMS pada jaringan GSM ini, maka data hasil pengukuran dapat dienkapsulasi dengan protokol SMS sehingga dapat disampaikan ke tempat yang dituju. Proses enkapsulasi merupakan proses penggabungan data hasil pengukuran dengan standar protokol SMS. Untuk mendapatkan data yang hasil pengukuran yang sebenarnya setelah data hasil enkapsulasi diterima oleh stasiun kontrol, maka dilakukan proses dekapsulasi data. Proses dekapsulasi merupakan proses pemisahan data hasil pengukuran dari protokol SMS. II.2
Protokol SMS pada Jaringan GSM II.2.1 Prosedur Pengiriman SMS Layanan pesan singkat atau yang lebih dikenal dengan sebutan SMS merupakan layanan yang terdapat pada
jaringan GSM yang mengikuti standar European Telecommunication Standards Institute (ETSI). Standar yang digunakan pada layanan ini yaitu ETSI 03.40. Dilihat dari sumber pengirimannya, layanan pesan singkat atau SMS dibagi menjadi dua jenis yaitu mobile originated (SM MO) dan mobile terminated (SM MT). Mobile originated merupakan SMS yang dikirimkan ke service center (SC) sedangkan mobile terminated merupakan SMS yang berasal dari service center (SC). Short message delivery SC
MS
Report Gambar 2 Layanan mobile terminated Short message submission SC
MS Report Gambar 3 Layanan mobile originated
102
II.2.2 Protocol Data Unit (PDU) pada SMS Paket data yang dikirimkan pada layanan pesan singkat dapat dikirim dalam bentuk protocol description unit (PDU) dan text mode. PDU ini berada pada layer transfer dari arsitektur protokol SMS. Jenis PDU yang terdapat pada layer transfer ini diantaranya SMS deliver dan SMS submit. II.2.2.1 SMS Submitted PDU jenis ini digunakan ketika MS mengirimkan data menuju SC. PDU ini terdiri dari beberapa elemen yang berfungsi mengatur properti SMS. II.2.2.2 SMS Deliver Jenis PDU ini digunakan ketika SC mengirimkan data menuju MS atau dengan kata lain kita sedang menggunakan layanan mobile terminated. Sama halnya dengan SMS submit, jenis PDU yang digunakan
Sensor 1
Signal Conditioning
Sensor 2
Signal Conditioning Signal Conditioning
Sensor 4
Signal Conditioning
III. Perangkat keras dan Perangkat Lunak III.1 Perangkat keras Pada bagian ini, perangkat keras yang dibangun lebih ditekankan pada perancangan sistem instrumentasi untuk menangani berbagai macam masukan sehingga perancangan tidak melibatkan perancangan sensor secara spesifik. Hal ini dimaksudkan agar sistem ini dapat menampung berbagai macam sensor. Untuk itu pada sistem telemetri ini disediakan empat masukan analog. Namun demikian, untuk melakukan pengujian sistem maka digunakan sensor suhu LM 35 sebagai sumber data. Sinyal keluaran dari LM35 diteruskan menuju pengkondisi sinyal. Berikut ini merupakan gambaran secara lengkap dari sistem telemetri yang secara umum terdiri dari stasiun ukur dan stasiun kontrol.
EEPROM
MUX Sensor 3
memiliki beberapa elemen/frame yang mengatur setting dalam SMS.
ADC
RS232
Mikrokontroler
Transceiver
RTC
Gambar 4. Implementasi perangkat keras sistem telemetri pada stasiun ukur
Transceiver
RS232
CPU
Komputer Gambar 5. Implementasi perangkat keras sistem telemetri pada stasiun kontrol
103
Stasiun ukur terdiri dari sistem akusisi data, sistem kontrol sekunder, sistem penyimpanan data, dan sistem pewaktuan, sampai dengan protokol layanan pesan singkat (SMS). Sistem akusisi data terdiri dari sensor, multiplekser, dan Analog to digital Converter (ADC). Sistem kontrol sekunder merupakan perangkat yang dibutuhkan untuk melakukan pengontrolan terhadap stasiun ukur berdasarkan perintah dari stasiun kontrol. Pada sistem telemetri ini, sistem kontrol sekunder yang ada pada stasiun ukur menggunakan mikrokontroler AT89S52. Pada sistem telemetri yang dirancang digunakan sistem pewaktuan untuk menentukan interval pengukuran pada stasiun ukur dan sistem penyimpanan data yang menggunakan EEPROM.
Gambar 7. Diagram alir akusisi data
III.2 Perangkat Lunak Perancangan perangkat lunak di stasiun ukur secara garis besar dapat dibagi menjadi dua bagian: a) Perancangan perangkat lunak pada proses akusisi data hingga pengiriman data b) Perancangan perangkat lunak pengontrolan stasiun ukur oleh stasiun kontrol
Gambar 8. Pengiriman data pengukuran melalui SMS
III.3
Gambar 6. Diagram alir penerimaan data pengukuran pada stasiun kontrol
Protokol Layanan Pesan Singkat Data hasil pengukuran yang didapat, dikirimkan beserta protokol pengukuran menuju stasiun kontrol melalui data layanan pesan singkat. Untuk dapat mengirimkan data pengukuran dalam format SMS, maka data pengukuran harus dienkapsulasi dengan protokol SMS seperti terlihat pada Gambar 9 di bawah ini. Data pengukuran ditempatkan pada elemen user data pada protokol SMS tersebut. 104
TP-MTI
TP-RD
……………
TP-VP
TP-UDL
TP-UD
Gambar 9. Protokol Layanan Pesan Singkat
IV. Pengujian Pengukuran Temperatur Proses pengujian temperatur dilakukan dengan memberikan panas yang konstan kepada sensor temperatur. Suhu panas yang konstan ini dibandingkan dengan suhu yang terukur
oleh LM35 dan telah diolah oleh ADC. Pada Tabel 3 ditunjukkan pengukuran rata-rata suhu pada rentang 28 oC hingga 54,2 oC beserta error yang dihasilkan.
Tabel 1. Pengukuran Suhu No
Suhu yang diukur Suhu yang diukur Termometer (°C) Sensor (°C) 1 54.2 52.59 2 52.8 51.21
Error
Error %
0.029704797 0.030113636
2.97 3.01
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
49 45.9 44.9 42.9 41.9 40.1 39.3 38.7 37.4 36.8 35.3 34.3 33.3 32.4 31.4
49.75 45 46.25 43.89 39.63 38.13 40.33 38.03 36.82 35.93 35.06 33.99 32.9 32.52 31.61
0.015306122 0.019607843 0.030066815 0.023076923 0.054176611 0.049127182 0.026208651 0.017312661 0.015508021 0.023641304 0.006798867 0.009037901 0.012012012 0.003703704 0.006687898
1.53 1.96 3.01 2.31 5.42 4.91 2.62 1.73 1.55 2.36 0.68 0.9 1.2 0.37 0.67
18 19
30.3 28
30.28 27.62
0.000660066 0.013571429 0.019812092
0.07 1.36 1.981111111
Error rata-rata
Dari Tabel 1 di atas, error ratarata pengukuran suhu jika dibandingkan error rata-rata pada sistem akusisi data lebih besar. Salah satu hal yang menjadi penyebab hal ini adalah keluaran dari sensor LM 35 tidak begitu stabil sehingga data yang dihasilkan pun tidak stabil. V. Kesimpulan Telah dirancang suatu sistem telemetri yang memiliki 4 masukan sensor, EEPROM sebesar 512 kbit untuk menyimpan data dan ADC 8 bit yang
dipergunakan memiliki tingkat kesalahan yang relatif kecil 1,91%. Rata-rata pengiriman data SMS maksimal 15 detik. Media yang digunakan dalam sistem telemetri ini adalah layanan pesan singkat (SMS) pada jaringan GSM. Format SMS yang digunakan untuk pengiriman data dan pengukuran adalah format 8 bit. Dengan memanfaatkan format 8 bit, maka data 8 bit yang dikirimkan akan jauh lebih banyak dibandingkan dengan format 7 bit terutama jika data yang dikirim memiliki ukuran kurang 105
dari 140 byte dan lokasi pengukuran terletak secara tersebar di wilayah luas yang terjangkau jaringan GSM. Sistem telemetri ini juga cocok digunakan untuk pengontrolan sistem yang tidak memerlukan waktu respon yang cepat. VI. Daftar Pustaka [1] Al-Ali, A.R., Al-Rousan, M.,Ozkul T., “Implementation of Experimental Communication Protocol for Health Monitoring System”, Accepted Paper on Computer Standards & Interface, (2005) [2] Schiller, J., “Mobile Communication”, Addison Wesley, Great Britain (2006) [3] ETSI.,”GSMTechnical Specification GSM 03.40”, France (1996) [4] http://www.dreamfabric.com/sms/ [5] Olsson, A., “Understanding Telecommunication 1”, Ericsson Telecom, Sweden (1998) [6] Riyanto, E. “Sistem Telemetri Multi Sensor Nirkabel dengan Frequency
Shift Keying untuk aplikasi pengukuran Strain dan Temperatur Batuan” (Tugas Akhir), Departemen Fisika FMIPA ITB (2004) [7] Munir, M.M., “Perancangan dan Implementasi Telemetri Multi Stasiun Multi Sensor Menggunakan Dua Frekuensi Pembawa” (Tugas Akhir), Departemen Fisika FMIPA ITB (2003) [8] Ozkul, T. Dan Al Homound, A., “Communication Protocol for Monitoring a Large Number of Remotely Distributed Hazardous Material”. Computer Standard & Interface, 553-561, (2003) [9] http://www.gsmfavorites.com/sms/ Packetformat [10]http://www.networkdictionary.com /wireless/gsm.php
106
Dekapsulasi Data Telemetri dengan Protokol Layanan Pesan Singkat oleh Personal Digital Assistant Heri Permadi, Erik Sentosa, Asep Suhendi, dan Khairurrijal*) Kelompok Keahlian Fisika Material Elektronik Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Teknologi Bandung Jalan Ganesa 10, Bandung 40132 *) E-mail:
[email protected]
Abstrak Sistem pengukuran jarak jauh atau sistem telemetri, secara umum, terdiri dari stasiun ukur dan stasiun kontrol. Komunikasi antara stasiun ukur dengan stasiun kontrol dapat dilakukan dengan menggunakan berbagai media yang dapat dipilih sesuai dengan kebutuhan. Media yang digunakan sebagai jalur komunikasi pada sistem telemetri yang dikembangkan di sini adalah jaringan selular atau jaringan Global System for Mobile Communication (GSM). Jaringan GSM memiliki standar internasional dan standar pengiriman yang sama di seluruh dunia sehingga memungkinkan kita untuk mengirimkan data dari stasiun ukur ke stasiun kontrol di manapun selama stasiun tersebut memiliki akses terhadap salah satu penyedia (provider) jaringan GSM. Dengan adanya fasilitas Short Message Service (SMS) pada jaringan GSM, maka data hasil pengukuran dapat dienkapsulasi dengan protokol SMS sehingga dapat dikirimkan ke stasiun ukur yang dituju. Proses dekapsulasi antara data pengukuran dengan protokol SMS dilakukan oleh stasiun kontrol yang dapat berupa komputer atau Personal Digital Assistant (PDA). Jika stasiun kontrol yang digunakan adalah PDA, maka diperlukan salah satu platform Java untuk jenis perangkat mobile yaitu J2ME (Java2 Micro Edition).
Kata kunci: Stasiun ukur, stasiun kontrol, SMS, GSM, J2ME. I. Pendahuluan Proses pengukuran jarak jauh merupakan suatu proses pengukuran yang melibatkan dua buah terminal pengukuran dan letaknya berjauhan. Terminal pengukuran tersebut dapat terdiri dari satu atau lebih stasiun ukur dan stasiun kontrol. Secara terminologi telemetri berasal dari kata tele yang berarti jauh dan metri yang berarti pengukuran, sehingga sistem telemetri dapat diartikan sebagai sistem pengukuran jarak jauh. Komunikasi antara stasiun ukur dengan stasiun kontrol dapat dilakukan dengan menggunakan berbagai media yang dapat dipilih sesuai dengan kebutuhan. Beberapa contoh media yang sering digunakan pada sistem telemetri ini adalah gelombang frekuensi radio (RF), jaringan telepon rumah atau Public Switched Telephone Network (PSTN), dan internet. Pada makalah ini, media yang dipilih sebagai jalur komunikasi antara stasiun ukur dan stasiun kontrol adalah jaringan selular atau jaringan Global System for Mobile Communication (GSM). Pada jaringan GSM terdapat beberapa fasilitas diantaranya adalah
Short Messages Sevice (SMS) atau layanan pesan singkat, Multimedia Messages Sevice (MMS) atau layanan pesan multimedia dan layanan panggilan (calling). Media pengiriman data yang digunakan adalah layanan pesan singkat atau Short Message Service (SMS). Sistem telemetri terdiri dari dua bagian yaitu stasiun ukur dan stasiun kontrol. Stasiun ukur berfungsi untuk melakukan pengukuran terhadap besaran fisis yang akan kita ukur dan mengirimkan data yang telah diperoleh tersebut ke stasiun kontrol. Stasiun kontrol berfungsi untuk mengatur proses dalam sistem telemetri dan digunakan juga sebagai tempat penyimpanan data hasil pengukuran yang dilakukan stasiun ukur. Stasiun ukur pada sistem telemetri terdiri dari tiga bagian utama yaitu sistem sensor, mikrokontroler, dan tranceiver sedangkan stasiun kontrol terdiri dari sebuah Pesonal Digital Assistant (PDA). Dengan menggunakan PDA sebagai stasiun kontrol, proses pengukuran jarak jauh lebih fleksibel karena PDA merupakan perangkat mobile sehingga kita dapat melakukan pengukuran di mana saja.
107
II. Teknologi GSM dan SMS Protokol 2.1 Teknologi GSM Jaringan GSM memiliki standar pengiriman yang sama di seluruh dunia. Dengan
adanya standar pengiriman tersebut maka telah memungkinkan kita untuk mengirimkan data dari stasiun ukur ke stasiun kontrol di manapun selama stasiun tersebut memiliki akses terhadap salah satu penyedia (provider) jaringan GSM.
Gambar 1 Blok diagram arsitektur GSM1) Dengan adanya fasilitas SMS pada jaringan GSM ini, maka data hasil pengukuran dapat dienkapsulasi dengan protokol SMS sehingga dapat disampaikan ke tempat yang dituju. Proses enkapsulasi merupakan proses penggabungan data hasil pengukuran dengan standar protokol SMS. Untuk mendapatkan data hasil pengukuran yang sebenarnya setelah data hasil enkapsulasi diterima oleh stasiun kontrol, maka dilakukan proses dekapsulasi data. Proses dekapsulasi merupakan proses pemisahan data hasil pengukuran dari protokol SMS.
2.2
mengikuti standar European Telecommunication Standards Institute (ETSI). Standar yang digunakan pada layanan ini yaitu ETSI 03.40. Dilihat dari sumber pengirimannya, layanan pesan singkat atau SMS dibagi menjadi dua jenis yaitu mobile originated (SM MO) dan mobile terminated (SM MT). Mobile originated merupakan SMS yang dikirimkan ke service center (SC) sedangkan mobile terminated merupakan SMS yang berasal dari service center (SC).2)
Protokol SMS pada Jaringan GSM
2.2.1 Prosedur Pengiriman SMS
Gambar 2 Layanan mobile terminated
Layanan pesan singkat atau yang lebih dikenal dengan sebutan SMS merupakan layanan yang terdapat pada jaringan GSM yang
108
III. Java2 Micro Edition (J2ME)
Gambar 3 Layanan mobile originated
2.2.2 Protocol Data Unit (PDU) pada SMS Paket data yang dikirimkan pada layanan pesan singkat dapat dikirim dalam bentuk protocol description unit (PDU) dan text mode. PDU ini berada pada layer transfer dari arsitektur protokol SMS. Jenis PDU yang terdapat pada layer transfer ini diantaranya SMS deliver dan SMS submit. SMS deliver digunakan ketika MS mengirimkan data menuju SC. PDU ini terdiri dari beberapa elemen yang berfungsi mengatur properti SMS. SMS submit digunakan ketika MS mengirimkan data menuju SC atau dengan kata lain kita sedang menggunakan layanan mobile originated. Sama halnya dengan SMS submit, jenis PDU yang digunakan memiliki beberapa elemen/frame yang mengatur setting dalam SMS.
Platform Java memiliki tiga buah edisi yang berbeda3). Dalam hal ini, Sun Microsystems telah mendefinisikan tiga buah edisi tersebut yaitu: • Java 2 Standar Edition (J2SE), yang digunakan untuk mengembangkan aplikasiaplikasi dekstop dan applet (aplikasi Java yang dapat dijalankan di dalam browser web). • Java 2 Enterprise Edition (J2EE), merupakan superset dari J2SE yang memperbolehkan kita untuk mengembangkan aplikasi-aplikasi berskala besar (enterprise), yaitu dengan melakukan pembuatan aplikasi-aplikasi di sisi server dengan menggunakan EJBs (Enterprise JavaBeans), aplikasi web dengan menggunakan Servlet dan JSP (Java Server Pages) dan teknologi lainnya seperti COBRA (Common Object Request Broker Architecture) dan XML (Extensible Markup Language). • Java 2 Micro Edition (J2ME), merupakan subset dari J2SE yang digunakan untuk menangani pemrograman di dalam perangkat kecil, yang tidak memungkinkan mendukung implementasi J2SE secara penuh.
Gambar 4. Ruang lingkup keterhubungan optional packages dalam Java
109
Java 2 Micro Edition (J2ME) adalah lingkungan pengembangan yang dirancang untuk meletakkan perangkat lunak Java pada alat elektronik beserta perangkat pendukungnya4). J2ME terbentuk antara sekumpulan interface Java yang sering disebut dengan Java API (Application Programming Interface) dengan JVM (Java Virtual Machine). Kombinasi tersebut kemudian digunakan untuk melakukan pembuatan aplikasi-aplikasi yang dapat beroperasi pada alat (mobile devices) misalnya pada telepon selular, pager, Personal Digital Assistants (PDA) dan sejenisnya. J2ME adalah bagian dari J2SE sehingga tidak semua library yang ada pada J2SE dapat digunakan pada J2ME. Demikian juga J2ME mempunyai library khusus yang tidak dimiliki J2SE. Arsitektur J2ME dapat dilihat pada Gambar 5.
Profile Kumpulan Library Configuration JVM
Sistem Operasi
Gambar 5 Arsitektur J2ME4)
3.1 Konfigurasi Konfigurasi merupakan bagian yang berisi JVM dan beberapa library. Konfigurasi hanya mengatur hal-hal tentang kesamaan sehingga dapat dijadikan ukuran kesesuaian antar device.
Tabel 1 Perbandingan CDC dengan CLDC4) CLDC
CDC
Mengimplementasikan seluruh fitur J2SE JVM yang digunakan adalah CVM Digunakan pada perangkat genggam (internet TV, Nokia Communicator, car TV) dengan memori minimal 2 MB Prosesor: 32 bit
Terdapat dua buah konfigurasi pada J2ME yaitu CDC (Connected Device Configuration) dan CLDC (Connected Limited Device Configuration). CDC merupakan superset dari CLDC sehingga semua kelas yang didefinisikan di dalam CLDC akan terdapat pada CDC.
3.2 Profil Profil merupakan bagian perluasan dari konfigurasi.Dalam J2ME terdapat dua buah profil yaitu MIDP dan Foundation profile.
Mengimplementasikan sebagian fitur J2SE JVM yang digunakan adalah KVM Digunakan pada perangkat genggam (handphone, PDA, pager) dengan memori terbatas (160 - 512 KB) Prosesor : 16/32 bit
Foundation Profile merupakan profil yang digunakan untuk konfigurasi CDC. Profil ini menambahkan beberapa kelas dari J2SE ke dalam konfigurasi CDC, dan berperan juga sebagai pondasi untuk membentuk profil baru lainnya. MIDP (Mobile Information Device Profil) adalah spesifikasi untuk sebuah profil J2ME. MIDP memiliki lapisan di atas CLDC, API tambahan untuk daur hidup aplikasi, antarmuka, jaringan, dan penyimpanan persisten. Pada saat ini terdapat MIDP 1.0 dan MIDP 2.0. Fitur tambahan MIDP 2.0 dibanding MIDP 1.0 yaitu API untuk multimedia.
3.3 MIDlet M IDP Kum pulan Library CLDC KVM
Sistem Operasi
Gambar 6 MIDP dalam arsitektur J2ME4)
MIDlet adalah aplikasi yang ditulis untuk MIDP. Aplikasi MIDlet adalah bagian dari kelas javax.microedition.midlet.MIDlet yang didefinisikan pada MIDP. Dalam mengaplikasikan MIDlet terdapat beberapa metode yang harus ada, yaitu : constructor(), protected void startApp()throws MIDletStateChangeException,
110
protected void pauseApp(), protected void destroyApp (bolean unconditional) throws
MIDletStateChangeException. Alur hidup MIDlet dapat dilihat pada Gambar 7 di bawah ini.
Konstruktor MIDlet memanggil pauseApp()
Aktif
Jedah MIDlet memanggil startApp() MIDlet memanggil destroyApp() untuk terminasi
Terminasi
Gambar 7 Daur hidup MIDlet4)
IV. Perangkat Keras Telemetri GSM
Sistem
Sistem telemetri yang dirancang memiliki berbagai macam masukan dan keluaran sehingga perancangan tidak hanya melibatkan suatu sistem sensor secara spesifik. Hal ini dimaksudkan agar sistem ini dapat menangani berbagai macam masukan yang berupa masukan analog dan digital. Masukan analog pada sistem ini diwakili oleh delapan buah masukan yang terdiri dari satu masukan dari sensor suhu LM35,
dua masukan yang besar tegangannya dapat diubah-ubah dengan potensiometer dan sisanya dapat digunakan untuk berbagai macam sensor. Kedelapan masukan analog tersebut dihubungkan langsung ke perangkat sistem dengan masukan sinyal antara 0 sampai 5 volt. Sistem ini juga memiliki keluaran digital dan dilengkapi dengan tampilan LCD. Berikut ini merupakan gambaran secara lengkap dari sistem telemetri yang dibangun dengan berbagai macam perangkat pendukung.
Gambar 8. Implementasi perangkat keras sistem telemetri pada stasiun ukur
111
Gambar 9. Implementasi perangkat keras sistem telemetri pada stasiun kontrol Stasiun ukur terdiri dari sistem akusisi data, sistem kontrol sekunder, sistem pewaktuan, sampai dengan protokol layanan pesan singkat (SMS) sedangkan stasiun kontrol terdiri dari sebuah Personal Digital Assistant (PDA).
V. Perancangan Perangkat Lunak pada Stasiun Ukur dan Dekapsulasi Data Telemetri oleh PDA 5.1 Perangkat ukur
lunak
pada
stasiun
Perancangan perangkat lunak di stasiun ukur secara garis besar dapat dibagi menjadi dua bagian: a) Perancangan perangkat lunak pada proses akusisi data hingga pengiriman data b) Perancangan perangkat lunak pengiriman perintah dari stasiun kontrol
(a)
(c)
(a)
Gambar 10.(a) Diagram alir akusisi data, (b) Diagram alir penerimaan perintah pada stasiun ukur, (c) Pengiriman data pengukuran melalui SMS
112
5.2 Protokol Layanan Pesan Singkat dan Protokol Data Pengukuran Data hasil pengukuran yang diperoleh dikirimkan beserta protokol pengukuran menuju stasiun kontrol melalui data layanan pesan singkat. Untuk dapat mengirimkan data pengukuran dalam format SMS, maka data pengukuran harus dienkapsulasi dengan protokol SMS seperti terlihat pada Gambar 11 dan Gambar 12 di bawah ini. Susunan protokol data pengukuran ditempatkan pada elemen user data pada protokol SMS tersebut. TP-MTI
TP-RD
…….
TP-VP
TP-UDL
TP-UD
Gambar 11. Protokol layanan pesan singkat (SMS)2) Penanda Awal (1byte)
ID Sensor (1 byte)
dilakukan. Data telemetri yang dienkapsulasi dalam protokol SMS diterima secara default oleh PDA langsung masuk ke dalam inbox (kotak masuk pesan). Untuk dapat mengolah data tersebut, diperlukan sebuah metode untuk mengakses inbox PDA yang digunakan sebagai stasiun kontrol. Cara lain dapat dilakukan dengan mencari port khusus yang terdapat pada setiap mobile phone ketika menerima atau mengirimkan pesan. Mulai
Tidak
Tunggu SMS Ada
Cek panjang string
Time Data Penanda Stamp (6 byte) Pengukuran Akhir (1 byte)
Gambar 12. Susunan protokol data pengukuran pada paket SMS
Pemisahan data dari header
Data
Simpan dalam Texfield
Perancangan dekapsulasi data telemetri melibatkan salah satu paket opsional pada J2ME yaitu WMA (Wireless Messaging API). WMA terdiri dari paket-paket pengembangan aplikasi untuk melakukan pengiriman dan penerimaan pesan. WMA ini dikembangkan oleh Java Specification Request (JSR) 120. Kelas-kelas dalam paket ini tersimpan dalam paket javax. wireless.messaging.
Simpan data RecordStore
5.3 Perancangan Dekapsulasi Telemetri oleh PDA
Connector
MessageConnection
MessageListener
TextMessage
BinaryMessage
Message
Gambar 13. Interface pada paket WMA3)
Selesai
Gambar 13. Diagram alir sederhana proses dekapsulasi data telemetri oleh PDA Jika data pengukuran yang masih terenkapsulasi dalam protokol SMS kita peroleh, maka langkah selanjutnya adalah mengolah data tersebut. Teks SMS diinterprestasikan sebagai string kemudian dilakukan pemisahan data pengukuran dari header-nya. Header ini berupa penanda awal, ID sensor dan time stamp. Setelah data pengukuran dipisahkan dari header-nya, langkah selanjutnya adalah menyimpan data tersebut dalam sebuah recordstore. Dengan adanya sistem penyimpanan data ini maka sebuah MIDlet dapat menyimpan suatu informasi dan mengaksesnya.
Proses dekapsulasi data telemetri oleh PDA ini merupakan bagian yang menentukan akurat atau tidaknya proses pengukuran yang
113
VI. Kesimpulan Telah dirancang sistem telemetri dengan menggunakan layanan pesan singkat (SMS) pada jaringan GSM sebagai media pengiriman data. Data pengukuran dari stasiun kontrol dienkapsulasi dengan protokol SMS pada stasiun ukur. Proses dekapsulasi data telemetri dilakukan di stasiun kontrol yang berupa Personal Digital Assistant (PDA) dengan menggunakan salah satu platform Java untuk jenis perangkat mobile yaitu J2ME (Java2 Micro Edition). Konfigurasi dan Profil yang digunakan pada perangkat J2ME ini yaitu CLDC 1.0/1.1 dan MIDP 2.0.
VII. Daftar Pustaka [1] Mehrotra, Asha. GSM System Engineering. Norwood, MA: Artech House, Inc., 1997. [2] ETSI.,”GSMTechnical Specification GSM 03.40”, France (1996) [3] Raharjo, Budi dkk.2007. Tuntunan Pemrograman Java untuk Handphone. Bandung: Penerbit Informatika [4] Shalahuddin, M dan Rosa, A.S.2006. Pemrograman J2ME: Belajar Cepat Pemrograman Perangkat Telekomunikasi Mobile. Bandung: Penerbit Informatika. [5] Thaha, Hendrayana,”Aplikasi Protokol Layanan Pesan Singkat Pada Telemetri”. Tugas Akhir, Departemen Fisika FMIPA ITB (2005) [6] http://java.sun.com/javame/reference/apis/ jsr118/ [7] http://gsmfavorites.com/documents/ introduction/gsm
114
Riwayat Hidup Heri Permadi, lahir di Garut, Jawa Barat, pada tanggal 7 Maret 1984. Setelah menyelesaikan pendidikan dasar di SDN Cibatu IV, SLTPN 1 Cibatu, dan SMUN 1 Cibatu, pada tahun 2003, ia melanjutkan pendidikan ke Departemen Fisika, Institut Teknologi Bandung. Kelompok keahlian yang diambilnya ialah Fisika Material Elektronik (Physics of Electronics Material Research Division).
Saat menjadi mahasiswa, pernah menjadi Koordinator Asisten untuk Praktikum Sistem Instrumentasi di Laboratorium Elektronika dan Instrumentasi. Ia juga pernah terlibat dalam tim penyelenggara pelatihan dan kaderisasi untuk calon pengurus laboratorium tersebut. Selama kuliah, ia pernah terlibat dalam beberapa organisasi seperti Keluarga Mahasiswa Islam Fisika ITB (MAIFI ITB), Himpunan Mahasiswa Fisika ITB (HIMAFI ITB) dan Forum Mahasiswa Garut ITB (FORM@T ITB).
Pada tahun 2007, pernah menjadi trainer pada wokshop “Pelatihan Mikrokontroler MCS51 dalam Percobaan Sains” yang diselenggarakan oleh FMIPA ITB. Ia juga pernah terlibat dalam riset pengembangan fire fighting robot dengan dana dari PHK-B Fisika ITB.