BAB IV RANCANG BANGUN PERANGKAT KERAS DAN PERANGKAT LUNAK SISTEM TELEMETRI BERBASIS GSM
4.1 Sistem Perangkat Keras
Sistem telemetri yang dirancang dan dibangun pada tugas akhir ini memiliki delapan kanal masukan analog yang dirancang untuk menangani suatu sistem sensor. Sensor yang digunakan pada tugas akhir ini 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. Gambar 4.1 merupakan deskripsi secara lengkap dari sistem telemetri yang dikembangkan pada tugas akhir ini dengan berbagai macam perangkat pendukung.
Gambar 4.1 Implementasi perangkat keras stasiun ukur dan stasiun kontrol
25
Stasiun kontrol yang digunakan pada tugas akhir 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). Di bawah ini akan dijelaskan berbagai sistem yang membangun sebuah stasiun ukur pada sistem telemetri yang dikembangkan.
4.1.1
Sistem Akusisi Data
Sistem akusisi data yang dirancang seperti pada Gambar 4.2 terdiri sistem sensor, pengkondisi sinyal, multiplekser, dan ADC. Masukan disediakan dengan rentang 0 hingga 3,3 volt. Masukan tersebut berupa tegangan analog yang kemudian akan diubah menjadi tegangan digital oleh ADC sehingga data pengukuran dapat diolah oleh mikrokontroler dan dikirimkan ke stasiun kontrol.
Gambar 4.2 Sistem akusisi data
26
4.1.1.1 Sistem Sensor
Sistem sensor dalam Gambar 4.3, yang diimplementasikan pada sistem akusisi data, terdiri dari sensor suhu LM35 dan sebuah LM324 yang merupakan quad operational amplifier. Sensor LM35 memiliki karakteristik perubahan
tegangan terhadap suhu sebesar 10 mv/oC. Sinyal keluaran dari sensor ini kemudian dikuatkan oleh salah satu op-amp pada LM324 sebesar empat kali penguatan sehingga perubahan tegangan terhadap suhu sensor LM35 menjadi 40 mv/oC. Untuk menjaga agar sinyal keluaran tidak mengalami jatuh tegangan maka sinyal tersebut dilewatkan pada buffer (penyangga) yang berupa sebuah op-amp dengan konfigurasi penguatan sebesar satu kali.
Gambar 4.3 Sistem sensor
Keluaran dari sensor diperkuat empat kali oleh op-am sesuai dengan persamaan di bawah ini: Av =
Vo ⎛ R1 ⎞ = ⎜1 + ⎟ ....................................(4.1) Vi ⎝ R 2 ⎠
dengan Av adalah penguatan, R1 = 30 k Ω dan R2 = 10 k Ω .
27
4.1.1.2 Multiplekser
Untuk menentukan kanal pengukuran mana yang aktif, maka digunakan digunakan multiplekser analog 8 kanal. Multiplekser yang digunakan dalam perancangan sistem telemetri ini adalah multiplekser CD4051 seperti tampak pada Gambar 4.4. Input Input Input Input Input Input Input Input
1 2 3 4 5 6 7 8
X0 X1 X2 X3 X4 X5 X6 X7
X
Output
Multiplekser CD4051
A B C
INTR Inhibit
Gambar 4.4 Skematik multiplekser CD4051 Tabel 4.1 Logika kebenaran multiplekser analog CD4051 Kontrol Masukan Inhibit
C
B
A
Kanal Aktif
L
L
L
L
X0
L
L
L
H
X1
L
L
H
L
X2
L
L
H
H
X3
L
H
L
L
X4
L
H
L
H
X5
L
H
H
L
X6
L
H
H
H
X7
H
X
X
X
Tidak Ada
28
Delapan kanal masukan pada multiplekser CD4051 dihubungkan dengan delapan masukan analog dengan pemilihan kanal yang aktif dilakukan oleh kaki A, B, dan C, yang masing-masing terhubung ke kaki P1.0, P1.1, dan P1.2 pada mikrokontroler AT89S52. Aktif tidaknya multiplekser ini ditentukan oleh kaki inhibit. Konfigurasi untuk kaki inhibit pada perancangan sistem telemetri ini diletakkan pada tegangan 0 volt (ground) sehingga pada keadaan awal multiplekser ini selalu aktif.
4.1.1.3 Analog to Digital Converter (ADC)
Untuk menangani berbagai macam masukan analog termasuk masukan dari sensor temperatur, maka digunakan divais untuk mengkonversi data analog menjadi data digital. Hal ini dilakukan karena mikrokontroler yang berfungsi sebagai pengontrol sekunder merupakan divais digital yang hanya menangani masukan digital. Pada sistem telemetri yang dikembangkan, ADC yang digunakan merupakan ADC serial 12-bit yang menggunakan komunikasi Serial Peripheral Interface (SPI) yaitu ADS7822 (Gambar 4.5).
C11 0.1uF
C13 10uF
U7 1 2 3 4
VREF
V+
IN+ INGND
DCLK OUT CS/SD
8 7 6 5
DCLK OUT CSD
ADS7822P Gambar 4.5 Skematik ADS7822
29
Data hasil konversi ADC tersebut dikirimkan secara serial ke mikrokontroler melalui kaki P1.4. Data tersebut kemudian akan diproses sesuai dengan kebutuhan pengguna. Aktif tidaknya ADC ini ditentukan oleh pin Chip Select Device (CSD) yang terhubung pada kaki P3.5 mikrokontroler.
4.1.2
Sistem Kontrol Sekunder
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.
Gambar 4.6 Gambar mikrokontroler AT89S52
Mikrokontroler AT89S52 memiliki 32 pin yang multifungsi antara lain sebagai I/O, Jalur kontrol atau bagian dari sistem pengalamatan atau bus data. Beberapa keistimewaan dari mikrokontroler ini di antaranya:
30
•
Kompatibel dengan mikrokontroler keluarga MCS-51
•
8K Byte of In-System Reprogrammable Downloadable Flash Memory
•
Antar muka serial SPI untuk mendownload program
•
Ketahanan: 1000 kali Baca / Tulis
•
Tegangan operasi 4,0V s.d. 5,5 V
•
Beroperasi pada 0 Hz s.d. 33 MHz
•
Tiga level penguncian memori program
•
256 x 8-bit RAM Internal
•
32 bit I/O yang dapat diprogram
•
Tiga buah Timer/Counter 16-bit
•
Delapan sumber interupsi
•
UART full dupleks
•
Mode hemat daya Idle and Power Down
•
Watchdog Timeryang dapat diprogram
•
Dua Data Pointer
•
Flag Power Off
Mikrokontroler ini terhubung dengan sistem akusisi yang terdiri dari masukan analog, pengkondisi sinyal, ADC, dan multiplekser. Selain terhubung dengan sistem akusisi data, mikrokontroler ini juga terhubung dengan sistem komunikasi serial yang digunakan untuk mengirimkan data ke transceiver yang berupa handphone atau Mobile Station (MS). Data yang ada pada transceiver tersebut selanjutnya akan transmisikan melalui protokol SMS pada jaringan GSM
31
ke stasiun kontrol. Sebelum dikirimkan, data pengukuran ditampilkan terlebih dahulu pada LCD. Gambar 4.7 di bawah ini menunjukkan sistem kontrol sekunder.
Gambar 4.7 Antar muka sistem kontrol sekunder
Pada gambar di atas, mikrokontroler diantarmukakan dengan sistem akusisi data melalui komunikasi paralel. Pada sistem akusisi data ini mikrokontroler berfungsi untuk mengatur pemilihan masukan analog melalui kaki A, B, dan C pada multiplekser yang dihubungkan dengan kaki P1.0, P1.1, dan P1.2 pada mikrokontroler. Selain mengatur pemilihan masukan analog pada multiplekser, mikrokontroler ini juga berfungsi untuk mengatur proses konversi data analog menjadi data digital pada ADS7822. Pada sistem telemetri yang dikembangkan pada tugas akhir ini digunakan sistem pewaktuan internal dengan menggunakan Timer yang terdapat pada register TCON (Timer Control Register, memori data internal alamat 88h, bisa dialamati perbit) dan register TMOD (Timer Mode Register, memori data internal
32
alamat 89 h, tidak bisa dialamati perbit). Timer ini digunakan untuk menentukan interval pengukuran pada stasiun ukur.
4.1.3
Tampilan LCD
Untuk menampilkan data hasil pengukuran di stasiun ukur digunakan tampilan LCD seperti tampak pada Gambar 4.8. Tampilan LCD juga memberikan informasi kepada pengguna mengenai proses pengukuran yang sedang berlangsung. Setelah stasiun kontrol mengirimkan perintah ke stasiun ukur, maka pada LCD akan ditampilkan sensor mana yang sedang melakukan pengukuran dan besarnya suhu yang terukur. LCD yang digunakan pada tugas akhir ini merupakan LCD 16x2 yang dapat menampilkan 32 karakter dalam 2 baris.
Gambar 4.8 Tampilan LCD 16x2
LCD tersebut memiliki 16 buah pin untuk mengatur konfigurasi yang terdiri dari 2 buah pin power supply, 8 buah pin I/O sebagai jalur data antara mikrokontroler dengan LCD, 3 buah pin sebagai pengatur konfigurasi yang dihubungkan ke mikrokontroler, 1 buah pin untuk mengatur kekontrasan layar LCD, dan dua buah pin untuk mengatur blinking. Tabel 4.2 menunjukkan namanama pin pada LCD beserta fungsinya.
33
Tabel 4.2 Nama dan fungsi pin pada LCD 16x2
Dalam melakukan penulisan dan pembacaan karakter pada LCD perlu diperhatikan diagram waktu (timing diagram) operasi pembacaan dan penulisan LCD.
Diagram
waktu
tersebut
berfungsi
sebagai
sinkronisasi
antara
mikrokontroler dengan LCD. Diagram waktu operasi pembacaan dan penulisan LCD ditunjukkan pada Gambar 4.9 di bawah ini.
Gambar 4.9 Digram waktu operasi penulisan dan pembacaan LCD
34
Tabel 4.3 Diagram waktu aplikasi LCD
Untuk menjalankan fungsi LCD, maka terlebih dahulu harus dilakukan Inisialisasi. Inisialisasi dilakukan untuk mengatur konfigurasi dan aplikasi LCD yang digunakan. Tabel 4.4 di bawah ini menunjukkan inisialisasi dan penulisan aplikasi pada LCD. Tabel 4.4 Inisialisasi dan penulisan aplikasi pada LCD
35
Gambar 4.10 adalah rangkaian LCD yang diaplikasikan pada tugas akhir ini.
Gambar 4.10 Implementasi LCD 16x2 pada sistem telemetri GSM
4.1.4
Komunikasi Serial
Mikrokontroler AT89S52 mempunyai 4 macam mode operasi (mode 0 – mode 3) untuk serial komunikasi. Untuk memilih mode disediakan register bit SM0 dan SM1. Mode 0 adalah tipe register geser. Mode 1 merupakan 8 bit data UART dengan baudrate yang dapat diatur dengan register timer. Mode 2 yaitu 9 bit data UART dengan baudrate yang sudah pasti besarnya. Mode 3 adalah 9 bit data UART
yang baudratenya dapat diatur dengan timer. Untuk melakukan
pengaturan pada komunikasi serial digunakan register SCON (Serial Control Register).
36
Tabel 4.5 Register SCON pada mikrokontroler AT89S52 BIT SCON.7 SCON.6 SCON.5 SCON.4 SCON.3 SCON.2 SCON.1 SCON.0
Simbol SM0 SM1 SM2 REN TB8 RB8 TI RI
Deskripsi Pilihan Mode Pilihan Mode Untuk komunikasi multiprosessor dalam mode 2 dan 3 mengaktifkan mikrokontroler untuk menerima data jika 1 maka bit ke 9 dari mode 2 dan 3 telah dikirim jika 1 maka bit ke 9 dari mode 2 dan 3 telah diterima jika 1 berarti mikrokontroler telah selesai mengirim satu data jika 1 berarti ada satu data telah diterima
Mode komunikasi serial yang digunakan pada tugas akhir ini adalah mode 1 yang merupakan mode 8 bit data UART dengan baudrate yang dapat diatur dengan register timer. Pengaturan baudrate menggunakan register timer sehingga bergantung dari frekuensi kristal yang dipakai. Frekuensi kristal 12 MHz dalam hal ini lebih buruk dari kristal 11,059 MHz. Mode operasi timer untuk baudrate digunakan mode 2 karena secara otomatis mengulang terus pencacahan waktu. Register bendera timer, TF (Timer Flag), adalah penentu sebenarnya dari baudrate tersebut.
Baudrate = waktu register bendera Timer 1 berubah : 32 (atau 16 bergantung SMOD)
Tabel 4.6 Pengaturan baudrate pada mikrokontroler AT89S52 BAUD RATE 9600 2400 1200 19200 9600 2400 1200
FREKUENSI XTAL (MHz) 12 12 12 11.059 11.059 11.059 11.059
SMOD 1 0 0 1 0 0 0
TH1 F9H F3H E6H FDH FDH F4H E8H
ERROR 7% 0.16% 0.16% 0 0 0 0
37
Mikrokontroler sebagai sistem kontrol sekunder terhubung dengan sistem komunikasi serial yang digunakan untuk mengirimkan data ke transceiver yang berupa handphone atau Mobile Station (MS). Gambar 4.11 di bawah ini menunjukkan rangkaian dari komunikasi serial yang menggunakan RS232. Rangkaian ini menggunakan IC MAX232 yang berfungsi untuk menyamakan level tegangan antara mikrokontroler dengan transceiver atau komputer.
Gambar 4.11 Komunikasi serial RS232
4.1.5
Transceiver
Transceiver pada stasiun ukur berfungsi sebagai transmitter (pemancar)
dan receiver (penerima). Pemancar mengirimkan data pengukuran yang terenkapsulasi oleh protokol SMS ke stasiun kontrol. Pada saat stasiun kontrol mengirimkan perintah untuk melakukan pengukuran, maka transceiver pada stasiun ukur berfungsi sebagai penerima. Transceiver yang diimplementasikan pada tugas akhir ini adalah sebuah telepon seluler Siemens seri C55. Beberapa jenis telepon selular dapat berkomunikasi dengan peralatan lainnya melalui port yang tersedia pada telepon selular tersebut. Telepon selular
38
yang digunakan sebagai transceiver pada tugas akhir ini memiliki port serial sebagai jalur komunikasi stasiun ukur. Media penghubung antara stasiun ukur dengan transceiver tersebut adalah RS-232. Melalui komunikasi RS-232 ini, stasiun ukur dapat mengirimkan data dan perintah pada telepon selular. Fasilitas ini memungkinkan kita untuk mengirimkan data pengukuran melalui telepon selular.
4.1.6
Stasiun Kontrol
Stasiun kontrol berfungsi untuk memberi perintah kepada stasiun ukur untuk melakukan pengukuran sekaligus menampilkan data hasil pengukuran. Stasiun kontrol yang digunakan pada tugas akhir 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).
39
(a)
(b)
40
(c)
Gambar 4.12 GSM Telemetry System versi 2.0: (a) Tampak Depan, (b) Tampak Belakang, (c) Tampak Dalam
41
4.2 Perangkat Lunak pada Stasiun Ukur dan Stasiun Kontrol
4.2.1 Perangkat Lunak Stasiun Ukur
Perangkat lunak di stasiun ukur yang dirancang dan diimplementasikan 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.
42
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)
43
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 4.13 Implementasi perangkat lunak pada stasiun ukur: (a) Program Utama,
(b) Program interupsi Timer 0 (kiri) dan Timer 1 (kanan)
4.2.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
44
harus dienkapsulasi dengan protokol SMS seperti terlihat pada Gambar 4.14 dan Gambar 4.15 di bawah ini. Susunan protokol data pengukuran ditempatkan pada elemen User Data (UD) pada protokol SMS tersebut. TP-MTI
TP-RD
…… .
TP-VP
TP-UDL
TP-UD
Gambar 4.14 Protokol layanan pesan singkat (SMS)[2]
Penanda Awal (1byte)
ID Sensor (1 byte)
Data Pengukuran
Penanda Akhir (1 byte)
Gambar 4.15 Susunan protokol data pengukuran pada paket SMS
4.2.3
Perangkat Lunak pada Stasiun Kontrol
Implementasi perangkat lunak pada stasiun kontrol terbagi menjadi dua bagian, yaitu pengiriman perintah ke stasiun ukur untuk mengaktifkan salah satu sensor dan dekapsulasi data telemetri dari protokol SMS untuk mendapatkan data pengukuran.
4.2.3.1 Pengiriman Perintah ke Stasiun Ukur
Untuk mengirimkan perintah ke stasiun ukur, terlebih dahulu harus didefiniskan yang MIDlet sebagai perluasan dari implementasi CommandListener dan harus diset runable. Pada StarApp() dibuat suatu list yang terdiri 8 kanal sensor. List tersebut berjenis Exclusive List agar kita hanya dapat memilih satu buah sensor yang aktif.
45
Pada fungsi runable dilakukan inisialisasi Message Connection dan dimasukkan nomor tujuan pengiriman SMS.
46
Pada akhirnya dilakukan terminasi dengan metode:
4.2.3.2 Penerimaan Data Pengukuran oleh Stasiun Kontrol
Implementasi penerimaan data pengukuran 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.
Connector
MessageConnection
MessageListener
TextMessage
BinaryMessage
Message
Gambar 4.16 Interface pada paket WMA[3]
Untuk menerima data pengukuran dari stasiun ukur, terlebih dahulu harus didefiniskan yang MIDlet sebagai perluasan dari implementasi CommandListener, Runable, MessageListenere. Pada StarApp() dilakukan pengaturan alamat koneksi
47
untuk penerimaan data. Alamat koneksi ini berkaitan dengan port SMS yang diset pada transceiver stasiun ukur. Dengan kata lain, port SMS yang ada pada transceiver stasiun ukur harus sama dengan port SMS yang diset pada MIDlet.
Pada perangkat lunak yang dirancang dan diimplementasikan dalam stasiun kontrol, nilai port SMS yang diset adalah 16001. Nilai port tersebut merupakan port SMS yang diimplementasikan pada transceiver stasiun ukur.
48