Gambar 4.3. Perangkat Keras Sistem Penerima, a. Bagian Luar Tampak Atas, b. Bagian Luar Tampak Bawah, c. Bagian Luar Tampak Samping Kiri, d. Bagian Luar Tampak
Samping Kanan, e. Bagian Dalam Tampak Samping Kiri, f. Bagian Dalam Tampak Samping Kanan
Subsistem elektronik perangkat sistem terdiri dari modul radio XBee-PRO S2B dan modul XBee USB Adapter. Perangkat sistem penerima akan bekerja jika terhubung pada
laptopPC dan data yang dikirimkan atau data yang diterima diproses melalui program aplikasi akuisisi data. Saat diaktifkan LED power modul XBee USB Adapter akan menyala,
selanjutnya jika terhubung dengan sistem pengirim maka LED RSSI akan menyala, jika menerima data maka LED Tx akan menyala sedangkan jika mengirim data maka LED Rx
akan menyala. a
b
c d
e f
4.2. Perangkat Lunak Sistem
Perangkat lunak dibagi menjadi dua bagian, yaitu perangkat lunak sistem pengirim pada papan Arduino Uno Rev3 dan perangkat lunak sistem penerima pada program aplikasi
akuisisi data menggunakan MATLAB guide. Dalam pengaplikasiannya terdapat beberapa perubahan diagram alir berdasarkan diagram alir yang telah dirancang. Penjelasan perangkat
lunak dilakukan berdasarkan pada diagram alir pada Bab sebelumnya, dan beberapa tambahan diagram alir perubahan yang terlampir.
4.2.1. Sistem Pengirim
4.2.1.1. Inisialisasi
Inisialisasi dimulai dengan memasukan berkas library yang digunakan dalam program papan Arduino Uno Rev3 diantaranya library interupsi avr yang berfungsi untuk
menjalankan interupsi pewaktuan internal, library SPI berfungsi untuk komunikasi dengan perangkat SD, library SD berfungsi untuk membaca dan menulis file pada kartu SD, dan
library SoftwareSerial berfungsi untuk menjalankan komunikasi serial pada beberpa pin digital papan Arduino. Selain itu program juga melakukan inisialisasi untuk mengatur pin
indikator LED sebagai keluaran yaitu pin digital 2 sebagai indikator terima data, dan pin digital 3 sebagai indikator kirim data.
Program akan menyimpan variabel-variabel global pada memori EEPROM yang digunakan untuk menyimpan pengaturan oleh pengguna dalam struktur data sehingga dapat
digunakan dalam mengendalikan subsistem-subsistem program. Tabel 4.1. menunjukkan variabel-variabel global yang digunakan pada program.
4.2.1.2. Program Utama
Program utama berisi alur perintah utama, yang berikutnya akan memanggil subrutin- subrutin lainnya. Perintah yang ada pada program utama akan menginisialisasi fitur-fitur
yang digunakan. Setelah inisialisasi, program akan memanggil satu per satu subrutin yang ada secara terus menerus.
Program terlebih dahulu membaca apakah kartu SD siap, jika tidak maka perintah tidak dapat dilanjutkan sampai kartu SD siap. Kartu SD tidak siap ditandai dengan indikator
terima data dan kirim data menyala seperti ditunjukkan pada gambar 4.4. Jika kartu SD siap, maka LED indikator terima data akan menyala tiga kali. Selanjutnya program memanggil
subrutin hapus file temporary. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Tabel 4.1. Variabel Global Pada Memori EEPROM
Gambar 4.4. Indikator Kartu SD Tidak Siap Program selanjutnya melakukan inisialisasi pewaktuan. Inisialisasi pewaktuan
dilakukan dengan menggunakan interupsi internal timer yaitu timer 1, 16 bit timer yang disediakan pada mikrokontroler ATmega328. Pengaturan timer 1 dilakukan dengan
menghitung nilai TCNT timer 1 menggunakan persamaan sebagai berikut [29]:
Frekuensi kristal yang digunakan pada papan Arduino Uno Rev3 adalah 16 Mhz, nilai prescaler yang digunakan 1024, dan waktu tunda yang dibutuhkan 1 detik, maka diperoleh:
No Subsistem
Parameter Tipe Data
Fungsi
1 Penerimaan
Paket Data dterima
String Berisi paket data yang diterima
jumlahd int
Berisi perhitungan jumlah paket data yang diterima
dkirim unsigned
int Berisi perhitungan jumlah setiap
karakter paket data yang diterima
2 Pengiriman
Paket Data jumlahs
int Berisi perhitungan jumlah data yang
salah dalam pengiriman data kirim
int Berfungsi sebagai flag yang
menandakan paket data sedang dikirim bacad
int Berisi perhitungan jumlah paket data
yang telah dikirim temp
char Berisi paket data yang tersimpan
3 Pewaktuan
count volatile int
Berisi perhitungan nilai pewaktuan rutin
int Berfungsi sebagai flag untuk
mengendalikan pewaktuan ping
int Berfungsi sebagai flag untuk
mengendalikan ping
� =
− �
� � . ∗ �
�
� =
− ∗
6
∗ =