22
BAB III PERANCANGAN SISTEM
3.1 Gambaran Umum Sistem
Pada tugas akhir ini akan dirancang sebuah sistem pengiriman data sensor altitude yang terpasang pada mikrokontroler Arduino menggunakan protokol
xbee. Alat yang terpasang pada objek mengirim data ketinggian objek secara jarak jauh ke laptop. Blok diagram sistem yang dirancang dapat dilihat pada
gambar 3.1.
Gambar 3.1 Blok Diagram Sistem
Spesifikasi Sistem :
-. Menggunakan baterai 9 Volt. -. Dalam keadaan standby, alat membutuhkan arus sebesar 102,6 mA.
-. Dalam keadaan standby, xbee membutuhkan arus sebesar 52,8 mA.
-. Dalam keadaan pengiriman dan penerimaan, alat membutuhkan arus sebesar 104 – 108 mA.
-. Dalam keadaan pengiriman dan penerimaan, xbee membutuhkan arus sebesar 54 – 59 mA.
-. Ketinggian mencapai 100 meter indoor dan 1500 meter outdoor. -. Jangkauan temperatur : -40 – 85
o
C.
Cara kerja :
Berdasarkan gambar 3.1, urutan kerja dari sistem dapat dijelaskan sebagai berikut. Pengguna mengirim perintah untuk meminta data melalui scilab.
Perintah akan dikirim melalui RS-232 ke xbee. Xbee yang terhubung ke laptop akan mengirim perintah ke xbee yang terhubung ke mikrokontroler Arduino
secara nirkabel. Melalui UART, perintah masuk dan diolah oleh Arduino. Arduino akan mengirim perintah sensor BMP085 melakukan pengukuran.
BMP085 mengukur nilai tekanan yang akan digunakan untuk menghitung ketinggian. Perhitungan ini dilakukan oleh BMP085 berdasarkan persamaan 2.2.
Setelah perhitungan, data dikirim ke Arduino melalui I
2
C dan Arduino mengirim data tersebut ke xbee melalui UART. Data akan dikirim dari xbee di
sisi Arduino secara nirkabel ke xbee di sisi laptop. Data masuk ke laptop dari xbee melalui RS-232. Data akan ditampilkan secara periodik pada grafik di
scilab.
3.2 Perancangan Perangkat Keras
Diagram rangkaian alat pengukur ketinggian pada sisi objek dapat dilihat pada gambar 3.2. Xbee terpasang pada Xbee USB Adapter Regulated Explorer
Xbee pada gambar. D
in
xbee terhubung pada pin digital 1 T
x
dan D
out
pada pin digital 0 R
x
pada Arduino. Arduino UNO berkomunikasi dengan BMP085 menggunakan bus I
2
C. Komunikasi I
2
C ini diatur oleh library wire.h. Pin SDA BMP085 terhubung pada pin A4 dan SCL pada pin A5 pada Arduino. Catu daya
untuk alat pengukur ketinggian menggunakan baterai 9 Volt dan dihubungkan ke Arduino UNO melalui colokan 2.1mm jack.
Gambar 3.2 Diagram Rangkaian
Gambar 3.3
Alat Pengukur Ketinggian Pada sisi penerima, terdapat xbee yang terpasang pada Xbee USB Adapter
dan dihubungkan pada laptop komputer dengan menggunakan kabel mini USB seperti gambar 3.4.
Gambar 3.4 Xbee dan Kabel Mini USB
3.2.1 Pengukuran Arus pada Xbee dan Alat Pengukur Ketinggian
Untuk mengetahui besarnya arus yang dibutuhkan oleh alat pengukur ketinggian pada saat standby dan pengirimanpenerimaan data, pengukuran
arus dilakukan secara manual dengan menggunakan multimeter digital Heles UX 880 TR. Function switch multimeter diputar ke mA DC. Probe merah
dihubungkan ke terminal mA dan probe hitam dihubungkan ke terminal COM. Jepit buaya digunakan untuk menghubungkan probe ke titik ukur.
Gambar 3.5 Multimeter Digital Heles UX 880 TR dan Jepit Buaya
Pengukuran dilakukan pada dua titik ukur yang berbeda yaitu : 1.
Titik ukur pada modul xbee Pengukuran pada titik ukur ini dilakukan untuk mengetahui besar
arus yang dibutuhkan oleh xbee. Probe 1 dihubungkan ke titik X dan probe 2 dihubungkan ke titik Y. Saklar X dimatikan dan saklar
catu daya dihidupkan. Perintah dikirim dari scilab pada laptop
untuk meminta data dari alat pengukur ketinggian. Arus diukur dan dicatat ketika data dikirim dari alat ke laptop.
Gambar 3.6 Titik Ukur pada Modul Xbee
2. Titik ukur pada alat
Pengukuran pada titik ukur ini dilakukan untuk mengetahui besar arus yang dibutuhkan oleh alat. Probe 1 dihubungkan ke kutub
positif baterai dan probe 2 dihubungkan ke kutub positif colokan Arduino seperti gambar. Saklar X dihidupkan dan saklar catu daya
dimatikan. Perintah dikirim dari scilab pada laptop untuk meminta data dari alat pengukur ketinggian. Arus diukur dan dicatat ketika
data dikirim dari alat ke laptop.
1 2
Gambar 3.7 Titik Ukur pada Alat
3.3 Perancangan Perangkat Lunak
Perangkat lunak dibuat dengan menggunakan bahasa pemrograman untuk Arduino. Diagram alir perangkat lunak yang dirancang untuk sistem pengukuran
ketinggian dapat dilihat pada gambar 3.8. Ketika alat ini diberi catu daya, Arduino UNO akan menginisialisasi variabel yang akan digunakan dalam
program dan menunggu perintah dari pengguna yang dikirim melalui xbee. Jika terdapat perintah yang diterima oleh Arduino UNO, maka Arduino
akan meminta data dari BMP085 dan mengirimnya ke sisi pengguna. Data akan berhenti dikirim jika terdapat perintah dari pengguna atau setelah 10 detik. Kode
program sistem pengukuran ketinggian dapat dilihat pada lampiran.
1
2
Gambar 3.8 Diagram Alir Sistem Pengukuran Ketinggian
Mulai
Menampilkan GUI
1 Selesai
Deteksi penekanan tombol
Menampilkan “PC telah terhubung ke Arduino”
Apakah tombol Connect?
Apakah tombol Disconnect?
tidak ya
ya Apakah
GUIstatus = 1? tidak
connect
ya Apakah
GUIstatus = 1? ya
disconnect
Apakah tombol Load?
Apakah tombol SaveExit?
Memuat data yang telah
disimpan
Menyimpan data
ya
1
tidak tidak
SAVEstatus = 0 Plot data
pada grafik
Apakah SAVEstatus = 1?
ya
ya tidak
tidak tidak
Apakah tombol Stop Plotting?
tidak ya
ya
2
Apakah PLOTstatus = 1?
stop
tidak Apakah tombol
Plot? tidak
2
ya Apakah
GUIstatus = 1? ya
plot
tidak
Arduino tidak terhubung
2
Gambar 3.9 Diagram Alir Rutin
a Rutin Connect b Rutin Disconnect
c Rutin Plot d Rutin Stop
Membuka serial port
Menampilkan string ‘Ready’
connect
Mengirim string ‘R’
Menerima string ‘Ready’
Return GUIstatus = 1
Memutuskan Koneksi antara PC
dengan Arduino
disconnect
Return GUIstatus = 0
stop
k = 1
Return
k = 0
Return plot
PLOTstatus = 1 z = 1
Mengirim string ‘P’
Menerima data Plot data pada
grafik GUI Increment z
k = 1?
z = panjang?
PLOTstatus = 0 SAVEstatus = 1
tidak ya
ya tidak
3.3.1 Konfigurasi Xbee
Konfigurasi kedua xbee dilakukan dengan menggunakan perangkat lunak XCTU yang dikembangkan oleh Digi International. Parameter yang
dikonfigurasi antara lain : • Personal Area Network Identity PAN ID yaitu identitas dimana xbee
harus terhubung. Hanya modul-modul dengan PAN ID yang sama yang dapat saling berkomunikasi.
• Scan Channels SC yaitu mengatur dan membaca daftar kanal. • Destination Address High DH yaitu mengatur dan membaca 32 bit
atas dari 64 bit alamat modul tujuan. • Destination Address Low DL yaitu mengatur dan membaca 32 bit
bawah dari 64 bit alamat modul tujuan. Parameter ini diisi dengan alamat modul tujuan. DH dan DL disatukan untuk mendefinisikan
alamat tujuan yang digunakan untuk transmisi.
3.3.2 Kit Mikrokontroler Arduino
Library yang digunakan untuk perangkat Arduino dalam sistem pengukuran ketinggian adalah Wire.h dan Adafruit_BMP085.h. Objek
sensor BMP085 berupa “tinggi” dan variabel “input” berupa char dideklarasikan pada inisialisasi program. Kode program dapat dilihat pada
lampiran 1. Pada fungsi setup, program akan menginisialisasi pengaturan serial
dimulai untuk output dengan baud rate 9600, Wire.begin untuk memulai komunikasi I
2
C, dan tinggi.begin untuk memulai objek sensor BMP085.
Pada fungsi loop, program akan menunggu masukan berupa input yang dikirim dari user scilab. Jika terdapat masukan berupa “R”, Arduino UNO
akan mengirim string “Ready” dan ditampilkan di scilab. Jika masukannya berupa “P”, Arduino UNO akan menyuruh sensor BMP085 untuk
melakukan pengukuran dan data tersebut akan dikirim dan ditampilkan di scilab secara real-time.
3.3.3 Scilab
Jendela aplikasi dibuat dengan menggunakan createWindow sebagai objek bernama gui. Ukuran, nama, warna latar, dan posisi diinisialisasi pada
awal program. Ukuran window gui tidak dapat diatur. Handles dideklarasikan di awal program sehingga penggunaan handles tidak akan
menimbulkan error. Kode program dapat dilihat pada lampiran 2. Tombol “Connect” akan memanggil fungsi connect dimana jika radio
xbee sisi pengguna ke xbee sisi Arduino belum terhubung GUIstatus = 0 maka objek radio berupa serial dengan COM port 6 dan baud rate 9600
akan dibentuk dan dihubungkan serta string ”Ready” akan ditampilkan pada kotak status. Jika radio telah terhubung GUIstatus = 1 dan tombol
“Connect” ditekan, maka akan muncul kotak dialog dengan pesan “Laptop telah terhubung ke Arduino”.
Tombol “Disconnect” akan memanggil fungsi disconnect dimana jika radio masih terhubung GUIstatus = 1 maka hubungannya akan diputus dan
objek radio ditutup. Jika radio tidak terhubung GUIstatus = 0 dan tombol
“Disconnect” ditekan, maka akan muncul kotak dialog dengan pesan “Silahkan mengecek koneksi”.
Tombol “Plot” akan memanggil fungsi dataPlot dimana data akan diterima dan digambarkan dalam 10 detik atau sampai diinterupsi.
PLOTstatus = 1 menunjukkan bahwa data sedang diterima dan penggambaran grafik sedang berlangsung. Fungsi ini akan membuat
SAVEstatus = 1 yang berarti bahwa sudah ada data yang dapat disimpan. Terdapat 40 data sampel yang diterima dan digambarkan dalam 10
detik, sehingga waktu yang diperlukan dalam penerimaan dan penggambaran sampel harus dihitung. Setiap pelaksanaan perintah dalam
scilab membutuhkan waktu 1 ms. Pelaksanaan perintah plot membutuhkan 41 ms. Perintah sleep digunakan untuk menunda waktu dalam satuan ms dan
untuk pelaksanaannya membutuhkan waktu 1 ms. Terdapat 5 perintah, 1 perintah plot, dan 1 perintah sleep yang dilaksanakan dalam perulangan.
Berikut perhitungan untuk perintah sleep : Tundaan waktu yang dibutuhkan =
250 ms
Pelaksanaan perintah sleep membutuhkan waktu 1 ms, sehingga :
Tombol “Stop Plotting” akan memanggil fungsi stop yang akan menginterupsi dan menghentikan plot k = 1 jika penerimaan data dan
penggambaran grafik sedang berjalan PLOTstatus = 1. Fungsi ini akan
membuat SAVEstatus = 1 yang berarti bahwa sudah ada data yang dapat disimpan meskipun nantinya ada beberapa data yang bernilai 0.
Tombol “Load” akan memanggil fungsi callDataLoad. Objek guiLoad berupa Window dibuat dan berisikan 2 kolom teks yang dapat diketik dan 1
tombol “Load” yang akan memanggil fungsi dataLoad. Nama berkas untuk H
1
dan H yang akan dimuat diketik di kedua kolom teks tersebut. Fungsi
dataLoad akan memuat data dengan data dari nama berkas yang telah diketik sebelumnya. Grafik akan digambar ulang dengan data yang telah dimuat.
Fungsi ini akan membuat SAVEstatus = 0 dimana data yang dimuat tidak dapat disimpan.
Tombol “Save” akan memanggil fungsi callSaveExit. Objek guiSave berupa Window dibuat dan berisikan 1 kolom teks yang dapat diketik dan 1
tombol “Save” yang akan memanggil fungsi saveExit. Nama berkas untuk penyimpanan data diketik di kolom teks tersebut. Fungsi saveExit akan
menyimpan data dengan nama berkas yang telah diketik sebelumnya jika SAVEstatus = 1 serta menutup GUI setelah 1 detik.
36
BAB IV ANALISIS DAN PENGUJIAN
4.1 Umum
Di dalam bab ini akan dilakukan pengujian terhadap rancangan sistem pengiriman data sensor altitude yang terpasang pada mikrokontroler Arduino
menggunakan protokol xbee. Pengujian-pengujian yang dilakukan pada rancangan sistem ini bertujuan untuk mengetahui proses kerja, kinerja, dan hasil
sistem apakah telah bekerja sesuai dengan yang diharapkan atau tidak. Pengujian diawali dengan mengukur ketinggian permukaan tanah dan
kemudian diukur ketinggian objek pada suatu tempat. Pengujian juga dibedakan untuk pengujian Line Of Sight LOS dan tidak LOS.
Adapun rumus yang digunakan dalam pengujian sistem, antara lain : ......................................................... 4.1
................................ 4.2 Keterangan :
ΔH = ketinggian tempat terhadap permukaan tanah meter
H
1
= ketinggian tempat terhadap permukaan laut meter
H =
ketinggian permukaan tanah meter H
ref
= ketinggian referensi meter
4.2 Hasil Pengujian Sistem