i
DEPARTEMEN ILMU KOMPUTER
RANCANG BANGUN KOMUNIKASI DATA
WIRELESS
MIKROKONTROLER MENGGUNAKAN MODUL XBEE
ZIGBEE (IEEE 802.15.4)
KHAMDAN AMIN BISYRI
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
i
RANCANG BANGUN KOMUNIKASI DATA
WIRELESS
MIKROKONTROLER MENGGUNAKAN MODUL XBEE
ZIGBEE (IEEE 802.15.4)
KHAMDAN AMIN BISYRI
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2012
Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer pada
i
ABSTRACT
KHAMDAN AMIN BISYRI. Microcontroller Wireless Data Communication Using XBee ZigBee (IEEE 802.15.4) Module. Supervised by SRI WAHJUNI and SATYANTO K. SAPTOMO
This research implement microcontroller wireless data communication on automatic irrigation. Microcontroller unit (MCU) is used to read soil moisture level by using Soil Moisture sensor. Sensor values need to be sent to main controller (server computer) for monitoring. Past research (Nugroho 2011) has implemented serial cable for communication between field controller and main controller, but it will be inefficient for field application because serial cable implementation would be difficult if the field is far from the computer. Therefore, wireless data communication needed. XBee was choosen because compared to other wireless devices (Bluetooth, GSM, and WiFi), XBee has the lowest power consumption, lowest cost and the most suitable for monitoring and controlling. XBee performance is tested using the number of data packet loss. From the test result, the best distance to place the field controller is obtained, which is less than 20 meters from the main controller. For a better performance in decreasing the data packet loss incurred by the longer distance, it is advised to use the newer XBee series.
i
Judul Skripsi : Rancang Bangun Komunikasi Data Wireless Mikrokontroler Menggunakan Modul XBee ZigBee (IEEE 802.15.4)
Nama : Khamdan Amin Bisyri
NRP : G64070080
Menyetujui:
Pembimbing I Pembimbing II
Ir. Sri Wahjuni, M.T Dr. Satyanto K. Saptomo, S.TP, M.Si
NIP.19680501 200501 2 001 NIP. 19730411 200501 1 002
Mengetahui: Ketua Departemen
Dr. Ir. Agus Buono, M.Si, M.Kom NIP. 19660702 199302 1 001
i
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Allah subhanahu wa-ta'ala karena hanya dengan berkat, rahmat, dan karunia-Nya penelitian ini dapat diselesaikan dengan baik. Selawat serta salam penulis sampaikan kepada junjungan Nabi Muhammad shallallahu’alayhi wasallam, juga kepada keluarganya, sahabatnya, dan para pengikutnya. Penyelesaian penelitian ini juga tidak lepas dari bantuan berbagai pihak, untuk itu penulis mengucapkan terima kasih yang sebesar-besarnya kepada: 1 Kedua orang tua penulis, Bapak Abu Tamami dan Ibu Mei Ningsih, terima kasih atas doa, kasih
sayang, dukungan, motivasi, pengertian, pengorbanan, dan nasihat yang selalu mengiringi perjalanan penulis.
2 Ibu Ir. Sri Wahjuni, M.T selaku dosen pembimbing I, terima kasih akan kesabaran, ilmu, waktu, motivasi, dan nasihat yang diberikan selama penyelesaian penelitian ini.
3 Bapak Satyanto K. Saptomo, S.TP, M.Si selaku dosen pembimbing II, terima kasih atas segala ilmu, saran, dan bantuan yang diberikan selama penyelesaian penelitian ini.
4 Bapak Hendra Rahmawan, S.Kom, M.T selaku dosen penguji, terima kasih atas segala ilmu, kritik, dan saran yang diberikan.
5 Kakak penulis, Zulia Ahmad Burhani, terima kasih atas dukungan yang telah diberikan, juga kepada adik penulis, Isti Qomah dan Nur Hayati dengan mengingatnya turut memberikan motivasi dan semangat kepada penulis.
6 Segenap dosen dan staf pendukung Departemen Ilmu Komputer yang telah membantu penulis dalam berbagai kesempatan.
7 Teman-teman satu bimbingan, Rochiyat, Zola, Catur, Rendy dan Sulma, terima kasih atas bantuan, dukungan, ilmu, serta motivasi yang selalu diberikan.
8 Ayi Imaduddin, Inne Larasati, dan seluruh Ilkom 44 yang tak bisa disebutkan satu per satu, terima kasih atas semangat dan kebersamaannya.
9 Semua pihak yang telah memberikan doa, semangat, dan bantuan selama penyelesaian penelitian.
Penulis menyadari bahwa penelitian ini masih terdapat kekurangan. Penulis berharap semoga hasil penelitian ini dapat memberikan manfaat.
Bogor, September 2012
i
RIWAYAT HIDUP
v
v
DAFTAR ISI
Halaman
DAFTAR TABEL... vi
DAFTAR GAMBAR ... vi
DAFTAR LAMPIRAN ... vii
PENDAHULUAN ... 1
Latar Belakang ... 1
Tujuan ... 1
Ruang Lingkup ... 1
Manfaat Penelitian ... 1
TINJAUAN PUSTAKA ... 1
Arduino ... 1
Arduino UNO ATmega328 ... 1
Arduino-0023 ... 2
ZigBee ... 2
XBee ... 3
X-CTU ... 5
Sensor Soil Moisture (SKU:SEN0114) ... 5
Topologi Star... 6
METODE PENELITIAN ... 6
Analisis ... 6
Perancangan Arsitektur ... 7
Perancangan Komunikasi Data ... 8
Perancangan Antarmuka Main Controller ... 9
Pembangunan Model Irigasi ... 10
Implementasi ... 10
Pengujian dan Pengambilan Data ... 10
HASIL DAN PEMBAHASAN ... 10
Antarmuka Main Controller ... 10
Pengambilan Data... 11
Sistem Kontrol ... 12
Komunikasi XBee ... 12
KESIMPULAN DAN SARAN ... 14
Kesimpulan ... 14
Saran ... 14
DAFTAR PUSTAKA ... 14
vi
DAFTAR TABEL
Halaman
1 Perbandingan standard wireless ... 2
2 Tabel pengujian packet loss ... 10
3 Pengujian packet loss ... 13
DAFTAR GAMBAR
Halaman 1 Skema Arduino UNO ATmega328 ... 22 Antarmuka Arduino-0023... 2
3 ZigBee protocol stack ... 3
4 Modul XBee... 3
5 Diagram data flow internal. ... 4
6 Sistem data flowdiagram pada lingkungan UART. ... 4
7 API frame XBee. ... 4
8 Paket TX 16 bit address ... 4
9 Paket RX 16 bit address ... 5
10 Antarmuka X-CTU... 5
11 Sensor Soil Moisture. ... 6
12 Metode penelitian. ... 6
13 Rancangan arsitektur. ... 7
14 XBee Shield. ... 7
15 XBee USB adapter. ... 7
16 Blok diagram rancang bangun sistem menggunakan Soil Moisture.... 7
17 Flow chart rancang bangun sistem field controller.... 7
18 Flow chart rancang bangun control dengan sensor soil moisture. ... 8
19 Flow chart pembacaan paket XBee. ... 8
20 RF Data pada API frame TX field controller. ... 8
21 RF Data pada API frame TX main controller.... 9
22 Parameter Setting RF Data API frame TX main controller untuk bit penanda 1. ... 9
23 Parameter Setting RF Data API frame TX main controller untuk bit penanda 2. ... 9
24 Parameter Setting RF Data API frame TX main controller untuk bit penanda 3. ... 9
25 Layout antarmuka. ... 9
26 Pembangunan model. ... 10
27 Antarmuka main controller. ... 11
28 Bagian monitoring pada antarmuka. ... 11
29 Antarmuka manajemen XBee device. ... 11
30 Grafik hasil pembacaan sensor. ... 11
31 Konfigurasi sensor Soil Moisture pada Arduino. ... 12
32 Konfigurasi sistem kontrol. ... 12
33 Logfield controller. ... 12
34 Log main controller. ... 13
35 Lokasi pengambilan data. ... 13
vii
DAFTAR LAMPIRAN
Halaman
1
PENDAHULUAN
Latar Belakang
Irigasi merupakan penambahan
kekurangan kadar air tanah secara buatan yakni dengan memberikan air secara teratur pada tanah yang diolah. Irigasi mempunyai ruang lingkup dari pengembangan sumber air, penyediaannya, penyaluran air dari sumber ke daerah pertanian, pembagian dan penjatahan pada areal. Pemberian air irigasi dapat
dilakukan dalam lima cara: dengan
penggenangan, menggunakan jalur, di bawah permukaan tanah, penyiraman (sprinkle), dan sistem tetesan (trickle) (Hansen et al. 1986).
Pada penelitian Nugroho (2011) dilakukan akuisisi data pada sistem irigasi otomatis menggunakan Arduino Duemilanove. Proses akuisisi data menggunakan sensor Floatswitch
dan Thermocouple. Sensor ini membaca lingkungan sekitar kemudian mengubahnya ke dalam bentuk digital melalui Analog Digital Converter (ADC). Setelah pengkonversian ini
selesai, data ditulis ke dalam media
penyimpanan SD card melalui modul SD card. Dalam rancang bangun ini, komunikasi data
antara controller dan komputer masih
menggunakan kabel serial. Penggunaan kabel
serial dalam berkomunikasi memiliki
kekurangan seperti instalasi yang sulit dan kurang efisien apabila diterapkan pada sistem irigasi.
Penelitian kali ini menggunakan Micro Controller Unit (MCU) Arduino UNO dengan basis ATmega328. MCU Arduino UNO
merupakan penyempurna MCU Arduino
Duemilanove dengan koneksi USB yang lebih baru. Pada MCU Duemilanove, tipe interface
USB yang digunakan ialah Future Technology Devices International (FTDI) chip FT232RL yang menggunakan driver untuk mengubah RS-232 atau TTL transmisi serial menjadi sinyal USB (FTDI 2011). MCU Arduino UNO
menggunakan tipe interface USB chip
atmega8u2. Kelebihan tipe interface USB ini adalah tidak memerlukan driver untuk sistem operasi Mac dan Windows versi terbaru, seperti layaknya interface USB mouse dan keyboard. Data hasil pembacaan sensor di controller
lapangan dikirim ke komputer server melalui komunikasi wireless XBee Arduino yang mengimplementasikan protokol ZigBee.
Tujuan
Membangun komunikasi data secara
wireless menggunakan protokol ZigBee atau IEEE 802.15.4 dari controller di lapangan (field
controller) ke komputer server (main controller).
Ruang Lingkup
Penelitian ini difokuskan pada
pemrograman untuk komunikasi data antara
MCU Arduino UNO di lapangan (field
controller) dan komputer server menggunakan protokol ZigBee atau IEEE 802.15.4 yang diimplementasikan pada modul XBee Series 1.
Manfaat Penelitian
Manfaat dari penelitian ini adalah penggunaan protokol ZigBee atau IEEE 802.15.4 untuk komunikasi wireless dengan biaya yang murah sebagai alternatif dari Wireless Sensor Network (WSN). Protokol ini diimplementasikan pada modul XBee.
TINJAUAN PUSTAKA
Arduino
Arduino merupakan rangkaian elektronik yang bersifat open source platform prototyping
yang berbasis fleksibilitas serta memiliki perangkat keras dan perangkat lunak yang mudah untuk digunakan. Arduino dapat mengenali lingkungan dengan menerima input
dari sensor, dapat mengatur mengatur lampu, motor, dan aktuator lainnya (Arduino 2011).
Arduino UNO ATmega328
Arduino UNO dengan dasar
mikrokontroler ATmega328 adalah MCU yang memiliki 14 input/output digital (6 di antaranya dapat digunakan untuk output PWM), 6 input Gambar 1 dengan ciri sebagai berikut:
1 Operating voltage 5V.
2 Rekomendasi input voltage 7-12V 3 Batas input voltage 6-20V.
4 Memiliki 14 buah input/output digital. 5 Memiliki 6 buah input analog.
10 EEPROM sebesar 1 KB.
2
Gambar 1 Skema Arduino UNO ATmega328 (Arduino 2011).
Arduino-0023
Arduino-0023 merupakan open-source
Arduino environment yang digunakan untuk menuliskan kode program. Penulisan program dilakukan pada Arduino-0023 di komputer kemudian diunggah ke Arduino melalui kabel USB. Antarmuka Arduino-0023 dapat dilihat pada Gambar 2. Perangkat lunak Arduino-0023 memiliki dukungan untuk berberapa lingkungan sistem operasi seperti Windows, Mac OS X, dan Linux. Arduino environment ditulis dalam bahasa pemrograman Java dengan didasarkan pada processing, avr-gcc, dan program open source lainnya. Bahasa pemrograman untuk Arduino didasarkan pada bahasa pemrograman C/C++ serta terhubung dengan AVR Libc sehingga dapat menggunakan fungsi-fungsi yang terdapat pada AVR Libc. AVR Libc berisi fungsi yang digunakan untuk memanfaatkan AVR, seperti pengaturan register.
Gambar 2 Antarmuka Arduino-0023 (Arduino 2011).
Pada Arduino-0023, penggunaan AVR Libc dipermudah karena secara default library
pada Arduino-0023 sudah mencakup AVR Libc tanpa harus tahu Libc mana yang yang digunakan. Ketika dalam penulisan kode
membutuhkan AVR Libc, dilakukan
penambahan AVR Libc pada header kode program.
ZigBee
ZigBee adalah protokol jaringan nirkabel yang ditargetkan untuk otomasi dan aplikasi remote control dengan teknologi data rate
rendah, konsumsi daya rendah, dan murah. ZigBee diharapkan dapat memperkecil biaya dan menjadi konektivitas berdaya rendah untuk peralatan yang memerlukan baterai untuk hidup selama beberapa bulan sampai beberapa tahun, tetapi tidak memerlukan kecepatan transfer data tinggi seperti Bluetooth. Selain itu, ZigBee dapat diimplementasikan dalam jaringan mesh
yang lebih luas daripada yang mungkin dijangkau dengan Bluetooth. Perangkat nirkabel ZigBee diharapkan dapat digunakan untuk
mengirimkan data sejauh 10-75 meter,
tergantung pada lingkungan RF dan output
konsumsi daya yang diperlukan untuk diberikan aplikasi. Perbandingan standar wireless dapat dilihat pada Tabel 1 (Safaric & Malaric 2006). Tabel 1 Perbandingan standard wireless
Standard ZigBee 802.15.4
Resource 4kb-32kb 250kb+ 1Mb+ 16Mb+ Daya tahan
Kelebihan handal, hemat
sama untuk menentukan protocol stack
keseluruhan. IEEE 802.15.4 berfokus pada spesifikasi dari dua lapisan bawah protokol (lapisan fisik dan lapisan MAC). Di sisi lain, ZigBee Alliance bertujuan memberikan lapisan atas dari stack protokol (dari lapisan jaringan ke lapisan aplikasi) untuk jaringan data yang
3
Gambar 3 ZigBee protocol stack (Taehong et al. 2007).
Dari Gambar 3, dapat dilihat setiap lapisan pada protocol stack ZigBee memiliki fungsi yang berbeda. Fungsi setiap lapisan antara lain:
a Lapisan fisik (PHY)
Pada lapisan ini didefinisikan karakteristik radio channel dan dukungan band 2.45GHz
Lapisan MAC bertanggung jawab untuk
single hop komunikasi data antar perangkat yang bertetangga. Hal ini mensinkronisasi jaringan, mendukung association/disassociation
dan MAC-level security, serta memberikan link
yang dapat diandalkan antara dua perangkat.
Lapisan MAC menggunakan mekanisme
Carrier Sense Multiple Access with Collision Avoidance (CSMA/CA) untuk mengakses
channel, seperti wireless networks lainnya seperti IEEE 802.11dan IEEE 802.15.3 c Lapisan Security
Pada lapisan MAC, network dan
application dapat diamankan dan berbagi kunci keamanan untuk mengurangi storage yang
dibutuhkan. Pada lapisan ini,
diimplementasikan Advanced Encryption
Standard (AES).
d Lapisan ApplicationFramework
Lapisan Application framework
memberikan fungsi perintah sesuai vendor dan penggunaan API.
e Lapisan Application/Profiles
Lapisan Application merupakan lapisan yang berhubungan dengan end user, seperti
Smart Home dan Building Automation. Pada penelitian ini, application berupa XBee Control.
Fitur protokol ZigBee antara lain:
1 Dukungan untuk beberapa topologi
jaringan seperti point-to-point, point-to-multipoint dan jaringan mesh.
2 Siklus rendah - menyediakan baterai yang tahan lama.
3 Latency rendah.
4 Direct Sequence Spread Spectrum (DSSS).
5 Dapat menangani 65000 node per
jaringan.
6 Enkripsi 128-bit AES untuk koneksi data yang aman.
7 Menghindari collision, retries dan
acknowledgement (Digi 2011).
XBee
XBee merupakan modul yang
memungkinkan Arduino untuk berkomunikasi secara wireless menggunakan protokol ZigBee. ZigBee beroperasi pada spesifikasi IEEE 802.15.4 radio fisik dan beroperasi pada band
berlisensi termasuk 2.4 GHz, 900 MHz dan 868
MHz. Basis XBee berasal dari modul
MaxStream. Modul ini memungkinkan
komunikasi wireless dalam jangkauan hingga 30 meter (dalam ruangan) atau 100 meter (luar ruangan). XBee dapat digunakan sebagai pengganti kabel serial, dapat juga digunakan sebagai mode perintah untuk suatu broadcast, dan pilihan menghubungkan suatu jaringan. Gambar modul XBee dapat dilihat pada Gambar 4 (Arduino 2011).
Gambar 4 Modul XBee.
Pada dasarnya, XBee merupakan
komunikasi serial. Akan tetapi, apabila mode API digunakan, dibutuhkan pemaketan data RF. Untuk itu, data akan di-buffer terlebih dahulu sebelum dikirim atau diterima. Flow data serial menjadi paket RF. Pada XBee apabila ada data
input (DI), data akan masuk ke DI buffer.
Setelah itu, input data akan diteruskan ke RF TX buffer, kemudian untuk mentransmisikan
input data, posisi RF switch menjadi
4
receiver lalu data akan masuk RF RX buffer, kemudian data diteruskan ke DO buffer lalu menjadi data output (DO), kemudian DO diteruskan dari XBee ke host. Diagram data flow internal XBee dapat dilihat pada Gambar 5 (Digi 2008).
Gambar 5 Diagram data flow internal.
Modul RF interface XBee/XBee-PRO
OEM berhubungan dengan melalui logic-level asynchronousserialport. Melalui serial port ini, modul dapat berkomunikasi dengan logic dan
voltage kompatibel Universal Asynchronous Receiver-Transmitter (UART) atau melalui level translator ke semua serial device
contohnya pada RS-232 atau USB interface board. UART atau Universal Asynchronous Receiver-Transmitter adalah bagian perangkat keras komputer yang menerjemahkan bit-bit paralel data dan bit-bit serial. UART biasanya berupa sirkuit terintegrasi yang digunakan untuk komunikasi serial pada komputer atau
port serial perangkat peripheral. Device yang memiliki interface UART dapat terhubung langsung pada pin modul RF. Sistem dataflow diagram padaUART dapat dilihat pada Gambar 6 (Digi 2008).
Gambar 6 Sistem data flowdiagram pada lingkungan UART.
Pada mode operasi XBee Application Programming Interface (API), data yang masuk diurutkan pada frame sesuai dengan urutan yang telah ditentukan. Data frame yang berurutan ini akan membantu dalam proses membedakan
command, command response, dan status
2 Length: menyatakan bit informasi panjang
frame API. Framelength terdiri atas Most Significant Bit (MSB) yang menyatakan bit signifikan pada representasi biner
panjang frame, sedangkan Least
Significant Bit (LSB) menyatakan bit kurang signifikan pada representasi biner panjang frame.
Option RF Data
MSB LSB menandakan paket merupakan paket TX.
b cmdData
Pengidentifikasi struktur data spesifik yang berisi:
Frame ID
Mengidentifikasi UART data frame
kepada host untuk mengorelasikan
dengan subsekuen ACK. Setting
frame ID ke 0 akan meniadakan respon frame.
Destinationaddress
Destination address berisi alamat tujuan paket. Destination address
terdiri atas Most Significant Bit
(MSB) menyatakan bit signifikan pada representasi biner alamat 16 bit
perangkat tujuan dan Least
Significant Bit (LSB) menyatakan bit kurang signifikan pada representasi biner alamat16 bit perangkat tujuan .
Options (Byte 8)
Berisi pilihan untuk menyesuaikan paket dengan kebutuhan. Pilihan tersebut antara lain:
0x01: disable ack
0x04: mengirim paket dengan
broadcast PAN ID semua bit lain harus set ke 0.
RF data
Merupakan data utama yang
5 a API identifier
Berisi informasi jenis paket, 0x81 menandakan paket merupakan paket RX.
b cmdData’
Pengidentifikasi struktur data spesifik yang berisi:
Source address
Source address berisi alamat sumber paket. Source address terdiri atas
Most Significant Bit (MSB) menyatakan bit signifikan pada representasi biner alamat 16 bit
perangkat sumber dan Least
Significant Bit (LSB) menyatakan bit kurang signifikan pada representasi
biner alamat 16 bit perangkat
sumber .
RSSI
Received Signal Strength Indicator (-dBm) menyatakan kekuatan sinyal. Options (Byte 8)
Berisi pilihan untuk menyesuaikan paket dengan kebutuhan, pilihan tersebut antara lain:
Bit 0 reserved
Bit 1: addressbroadcast
Bit 2: PAN Broadcast
Bit 3-7: reserved
RF Data
Merupakan data utama yang diterima (pada kali ini nilai sensor) dengan ukuran data kurang dari 100 Bytes.
4 Checksum: Untuk menguji integritas API
frame.
X-CTU
X-CTU merupakan perangkat lunak yang digunakan untuk mengonfigurasi dan menguji radio modem MaxStream. Pemberian alamat pada XBee dilakukan melalui X-CTU. X-CTU juga dapat mengkonfigurasi XBee menjadi
coordinator ataupun menjadi end device. Selain itu, pengaturan retries pada XBee juga dapat dilakukan. X-CTU mendukung XBee Series 1 maupun XBee Pro. Antarmuka X-CTU dapat dilihat pada Gambar 10.
Gambar 10 Antarmuka X-CTU.
Fitur dari X-CTU (Digi 2012) antara lain:
1 Dukungan untuk semua produk
MaxStream.
2 Terintegrasi dengan jendela terminal.
3 Mudah menggunakan tes kisaran
loopback.
4 Menampilkan Received Signal Strength
Indictator (RSSI).
5 Upgradefirmware modul RF di lapangan pada semua modul XCite dan XStream modul versi 4.29 dan yang lebih tinggi. 6 Menampilkan kedua karakter ASCII dan
heksadesimal pada jendela terminal. 7 Tulis paket tes baik dalam ASCII atau
heksadesimal untuk transmisi pada
antarmuka terminal.
8 Menyimpan dan mengambil konfigurasi
modul yang umum digunakan (profil). 9 Secara otomatis mendeteksi jenis modul. 10 Pengaturan parameter ke default pabrik.
11 Tampilan membantu tentang parameter
radio.
12 Program radio profil dalam lingkungan produksi dengan menggunakan antarmuka baris perintah.
13 Mengintegrasikan dengan Labview dan
produksi perangkat lunak uji lain melalui antarmuka baris perintah.
Sensor Soil Moisture (SKU:SEN0114)
6
Sensor ini memiliki dua probes untuk mengalirkan arus listrik melalui tanah, kemudian membaca nilai arus listrik sebagai nilai kelembaban tanah. Semakin banyak kandungan air, arus listrik akan lebih mudah dihantarkan (resistansi kecil) sehingga nilai kelembaban tanah semakin besar. Sebaliknya jika tanah mengandung sedikit air (kering) maka arus listrik akan susah dihantarkan
sehingga resistansi besar maka nilai
kelembaban tanah menjadi kecil. Sensor Soil Moisture dapat dilihat pada Gambar 11 (DFRobot 2012).
Gambar 11 Sensor Soil Moisture.
Topologi Star
Topologi star merupakan topologi jaringan yang sederhana dengan konfigurasi jaringan berbentuk seperti bintang. Dalam topologi star, komunikasi terjadi antara end device dan satu pusat kontrol yang disebut Personal Area Network (PAN) coordinator. PAN coordinator
pada penelitian ini berupa XBee coordinator. Contoh penerapan topologi ini pada beberapa aplikasi di antaranya Home Automation dan
Personal Computer (PC) Peripherals. Setelah XBee coordinator diaktifkan, XBee ini dapat membangun jaringannya sendiri dan menjadi PAN coordinator. Setiap jaringan memiliki PAN identifier yang berbeda-beda agar setiap jaringan beroperasi secara independen (Ergen 2004).
METODE PENELITIAN
Penelitian ini dibagi ke dalam beberapa tahapan, yaitu analisis, perancangan arsitektur, perancangan komunikasi data, pembangunan model, implementasi sistem, dan pengujian. Alur metode penelitian dapat dilihat pada Gambar 12.
Analisis
Pada tahap ini, dilakukan analisis terhadap sistem irigasi yang sudah ada. Pada penelitian sebelumnya dilakukan rancang bangun modul akuisisi data untuk sistem irigasi otomatis
berbasis mikrokontroler unit Arduino
Duemilanove. Sistem ini hanya mencakup lingkup controller di lapangan dan data yang disimpan dalam modul SD card. Komunikasi data ke controller utama (komputer server) masih menggunakan kabel serial. Penggunaan kabel serial dalam sistem irigasi instalasinya sulit dan tidak efisien karena antara main controller dan field controller memiliki jarak dengan penghalang seperti dinding. Oleh sebab
itu, komunikasi wireless dibangun
memanfaatkan protokol ZigBee yang
diimplementasikan pada modul XBee dengan MCU Arduino UNO.
Sistem komunikasi Wireless Sensor
Network (WSN) dari National Instrument, telah tersedia di pasaran dengan setup yang cukup mudah, akan tetapi membutuhkan biaya
yang besar apabila dibanding dengan
membangun sendiri menggunakan XBee. Oleh karena itu, XBee dipilih karena dapat digunakan
sebagai alternatif dari WSN National
Instrument.
Analisis
Perancangan Arsitektur
Perancangan Komunikasi Data
Pembangunan Model Irigasi
Implementasi Sistem
Pengujian dan Pengambilan Data
7
Perancangan Arsitektur
Sistem irigasi otomatis akan memiliki dua bagian yaitu: main controller dan field controller. Pada fieldcontroller terdapat sensor
yang berfungsi mengambil nilai analog dari lingkungan. Jika input analog, controller akan mengubahnya dahulu ke dalam bentuk digital.
Kemudian input ditransmisikan ke
mikrokontroler. Penyimpan data berupa modul SD card yang dipasang pada MCU. Data dari
sensor akan ditulis ke dalam memori
penyimpanan SD card sebagai logger.
Aktuator merupakan alat yang merupakan wujud aksi dari mikrokontroler, seperti motor, katup buka tutup, atau switch on off relay. Modul XBee digunakan untuk menghubungkan
field controller dengan main controller. Perancangan arsitektur dapat dilihat pada Gambar 13.
Gambar 13 Rancangan arsitektur. Pada field controller, modul XBee dapat dipasang pada MCU akan tetapi tidak dapat langsung dipasang, melainkan dengan bantuan XBee shield agar dapat terhubung dengan pin pada board MCU. XBee shield dapat dilihat pada Gambar 14.
Gambar 14 XBee Shield.
Pada main controller, modul XBee dapat terhubung dengan komputer dengan bantuan XBee adapter yang berfungsi sebagai adapter
USB-TTL. XBee USB adapter dapat dilihat pada Gambar 15.
Gambar 15 XBee USB adapter.
Pada penelitian ini, sensor yang digunakan adalah Soil Moisture. Sensor ini mengambil nilai dari kelembaban tanah. Blok diagram field controller dapat dilihat pada Gambar 16. Blok diagram pada field controller ini memiliki flow chart yang menjelaskan alur kerja dari field controller dari pembacaan nilai sensor, kontrol, penulisan log dan pengiriman paket. Alur kerja dapat dilihat pada Gambar 17.
Field controller memiliki sistem kontrol otomatis untuk menghidupkan atau mematikan aktuator. Pada saat dihidupkan (diberi daya), mikrokontroler akan membaca nilai sensor pada pin analog 0 (A0). Setelah pembacaan nilai
XBee Mikrokontroler Sensor
Aktuator Penyimpanan Data
Gambar 16 Blok diagram rancang bangun sistem menggunakan Soil Moisture.
Gambar 17 Flow chart rancang bangun sistem
8
sensor dilakukan, nilai hasil pembacaan sensor akan dibandingkan dengan nilai threshold
bawah dan threshold atas. Apabila nilai hasil pembacaan sensor lebih besar dari threshold
bawah dan lebih kecil dari threshold atas, pin digital aktuator akan menyala (high). Apabila nilai hasil pembacaan sensor lebih kecil dari
threshold bawah atau lebih besar dari threshold
atas, pin digital aktuator akan mati (low). Flow chart kontrol dapat dilihat pada Gambar 18.
Pada field controller setelah proses kontrol selesai proses selanjutnya adalah proses pembacaan paket XBee. Proses pembacaan paket XBee berfungsi untuk mengetahui jika ada paket dari main controller yang berisi pengaturan-pengaturan field controller. Apabila paket XBee diterima, field controller akan mengklasifikasi jenis perintah sesuai dengan bit penanda yang telah ditentukan, yaitu:
1 bit penanda 1 untuk pengaturan threshold. 2 bit penanda 2 untuk pengaturan interval.
3 bit penanda 3 untuk sinkronisasi jam. Proses pembacaan paket XBee dapat dilihat pada Gambar 19.
Gambar 19 Flow chart pembacaan paket XBee.
Perancangan Komunikasi Data
XBee memiliki berbagai spesifikasi. Untuk XBee Series 1 salah satunya yaitu komunikasi point to multipoint (topologi star). Komunikasi ini merupakan komunikasi yang hanya menghubungkan XBee field controller
dengan XBee main controller. Hasil pembacaan sensor pada pin analog Arduino field controller
akan dikirimkan ke main controller dalam bentuk paket data. Paket data yang digunakan menggunakan tipe API frame TX (transmit) dan RX (receive) address 16 bit. Pada frame API (Gambar 7) terdapat frame data. Frame data dapat dibedakan melalui API identifier. Pada saat field controller melakukan pengiriman paket, API frame RF Data berisi data lapangan. Ilustrasi dapat dilihat pada Gambar 20.
RF Data Nilai
Sensor
Jam dan Tanggal
Status Aktuator
Status SD
Card
Nilai
Threshold
Byte 9,10 Byte 11-16 Byte 17 Byte 18 Byte 19-22
Gambar 20 RF Data pada API frame TX field controller.
1 Nilai Sensor
Nilai sensor merupakan nilai hasil pembacaan sensor pada pin analog 0.
2 Jam dan Tanggal
Pada Byte ini terdapat informasi jam dan tanggal pada saat pengambilan nilai sensor. Jam dengan format HH:MM:SS dan tanggal dengan format YY-MM-DD.
3 Status Aktuator
Status Aktuator merupakan Byte berisi informasi nyala tidaknya aktuator pada
field controller.
4 Status SD card
Gambar 18 Flow chart rancang bangun control
9
Status SD card merupakan Byte yang berisi informasi ketersediaan SD card logger pada fieldcontroller.
5 Nilai Threshold
Nilai threshold merupakan nilai batas yang menjadi acuan apakah kontrol sistem akan menyalakan atau mematikan aktuator.
Saat menerima paket ini main controller
membaca paket data yang masuk (RX), kemudian main controller akan membaca RF data. Setelah itu, RF data di-parsing untuk ditampilkan pada antarmuka main controller
Pada saat main controller melakukan pengiriman paket, API frame RF Data berisi data pengaturan. Ilustrasi dapat dilihat pada Gambar 21.
Bit penanda berfungsi membedakan jenis perintah yang dikirimkan ke field controller. Terdapat tiga jenis pengaturan yaitu bit penanda “1” untuk nilai threshold, “2” untuk pengatur interval, dan “3” untuk sinkronisasi waktu.
2 Parameter Setting
Parameter setting berisi
parameter-parameter setting yang digunakan untuk mengatur interval, nilai threshold atau sinkronisasi waktu.
a Apabila bit penanda “1” (pengaturan
threshold), parameter berisi nilai threshold. Ilustrasi dapat diihat pada Gambar 22.
Parameter Setting
Threshold Minimum Threshold Maksimum
Byte 10,11 Byte 12,13
Gambar 22 Parameter Setting RF Data pada API frame TX main controller
untuk bit penanda 1.
b Apabila bit penanda “2” (pengaturan interval), parameter berisi nilai interval. Ilustrasi dapat dilihat pada Gambar 23.
Parameter Setting
Satuan interval Nilai interval
Byte 10 Byte 11
Gambar 23 Parameter Setting RF Data pada API frame TX main controller
untuk bit penanda 2.
c Apabila bit penanda “3” (sinkronisasi waktu), parameter berisi detil waktu dan tanggal. Ilustrasi dapat dilihat pada Gambar 24.
untuk bit penanda 3.
Perancangan Antarmuka Main Controller
Pada perancangan antarmuka main
controller, dibuat suatu layout yang akan diimplementasikan pada pemrograman Java pada main controller agar monitoring dan kontrol terhadap field controller lebih mudah dan intuitif. Layout mencakup kebutuhan antarmuka untuk fungsi-fungsi Perancangan
layout dapat dilihat pada Gambar 25.
Gambar 25 Layout antarmuka.
Perancangan antarmuka main controller
secara umum dibagi menjadi dua bagian, yaitu bagian kiri dan bagian kanan. Bagian kiri antarmuka merupakan bagian untuk monitoring, terdapat combo box berisi daftar COM port dan tombol connect dan disconnect. Di bawah
combo box terdapat tabel view dari data yang diterima dari field controller. Bagian kanan merupakan bagian untuk kontrol, terdapat tombol connect dan disconnect untuk kontrol terhadap field controller. Terdapat pula combo box nama XBee end device yang akan dikontrol. Selain itu pada bagian kanan juga terdapat tombol untuk menyesuaikan (sinkronisasi) tanggal dan jam pada field controller agar sama dengan jam pada komputer main controller. Di bawah tombol sinkronisasi jam terdapat input
untuk mengatur nilai treshlod minimum dan
threshold maksimum pada sistem kontrol field controller. Pada bagian kanan bawah terdapat
10
pengiriman data dari field controler ke main controller.
Pembangunan Model Irigasi
Pada tahap ini dilakukan pemodelan dari sistem irigasi otomatis yang akan dibuat. Pemodelan mencakup lingkungan dan alat-alat yang akan digunakan dan menggambarkan ilustrasi komunikasi dari main controller dan
field controller. Untuk field controller, alat yang digunakan:
1 MCU Arduino UNO;
2 Sensor Soil Moisture;
3 Aktuator LED;
4 Modul SD card stackable;
5 XBee Shield; dan 6 XBee Series 1 end device.
Untuk main controller alat yang digunakan:
1 Komputer;
2 USB Adapter; dan
3 XBee Series 1 coordinator.
Ilustrasi pembangunan model dari sistem dapat dilihat pada Gambar 26.
Gambar 26 Pembangunan model.
Pada main controller terdapat XBee Series 1 yang difungsikan sebagai coordinator, XBee ini terhubung dengan komputer melalui XBee USB adapter. Main controller terletak dalam
ruangan sehingga memudahkan dalam
pengontrolan maupun monitoring. Pada field controller, XBee difungsikan sebagai end device. XBee terhubung dengan Arduino melalui XBee shield. Field controller terletak di luar ruangan, namun harus masih dalam
jangkauan XBee coordinator agar dapat
berkomunikasi dengan baik.
Implementasi
Pada tahap ini hasil perancangan arsitektur akan diterapkan pada perancangan model. Langkah awal yaitu XBee dipasangkan dengan XBee USB adapter kemudian dihubungkan
dengan komputer yang telah terpasang
perangkat lunak X-CTU. Melalui X-CTU, XBee dikonfigurasi alamat, PAN ID, dan fungsinya sebagai end device/Reduced Function Device (RFD) atau sebagai coordinator/Full Function Device (FFD). Setelah dikonfigurasi, XBee end device akan dipasangkan pada field controller, sedang XBee coordinator akan dipasangkan pada komputer main controller. Untuk MCU Arduino, program ditulis dengan
environment Arduino-0023 menggunakan
bahasa pemrograman C/C++, kemudian
diunggah ke mikrokontroler melalui USB Serial.
Pengujian dan Pengambilan Data
Pada tahapan pengujian akan dilakukan
beberapa pengujian packet loss dengan
beberapa faktor jarak dan faktor penghalang. Dalam pengujian dengan faktor jarak akan dilakukan percobaan pengiriman paket data dari beberapa jarak tertentu dan interval waktu tertentu. Dalam pengujian dengan faktor penghalang akan dilakukan pengiriman paket data dengan kondisi terhalang suatu benda seperti dinding atau pohon. Paket yang dikirim oleh field controller dicatat, kemudian dibandingkan dengan paket yang sampai pada
main controller. Hasil pengujian akan dicatat pada tabel seperti pada Tabel 2.
Tabel 2 Tabel pengujian packet loss Lokasi Jarak
HASIL DAN PEMBAHASAN
Antarmuka Main Controller
11
Gambar 27 Antarmuka main controller.
Pada bagian kiri terdapat bagian
monitoring seperti pada Gambar 28. Bagian ini berfungsi menampilkan data yang diterima oleh
main controller. Data ditampilkan dalam bentuk tabel agar lebih memudahkan dalam pembacaan. Data yang baru masuk maka akan menjadi baris (record) baru pada tabel.
Gambar 28 Bagian monitoring pada antarmuka.
Pada bagian monitoring terdapat tombol XBee Device untuk memanajemen daftar nama
XBee beserta alamatnya. Antarmuka
manajemen XBee Device dapat dilihat pada Gambar 29. Pada bagian ini selain dapat menambahkan device baru, pengguna dapat pula mengedit device ataupun menghapus dari daftar device.
Gambar 29 Antarmuka manajemen XBee
device.
Fungsi plot juga terdapat pada bagian
monitoring. Grafik ini merupakan visualisasi
plot (Gambar 30) dari nilai hasil pembacaan sensor terhadap satuan waktu.
Gambar 30 Grafik hasil pembacaan sensor.
Pengambilan Data
Sensor merupakan alat yang digunakan untuk mengenali lingkungan. Sensor dapat
terhubung secara langsung dengan
mikrokontroler melalui port analog. Data yang diberikan sensor berupa data analog. Contoh program untuk membaca sensor pada pin analog: 1 void setup () {
2 3 4 5
6 7 8
...
void loop () { ...
//kode program untuk membaca sensor pada pin analog 0 dan kemudian disimpan pada variabel sensorValue ...
int sensorValue = analogRead(A0); }
Pada penelitian ini digunaan sensor Soil Moisture (SKU:SEN0114), sensor ini dapat mengetahui kandungan air pada lingkungan. Menurut produsen sensor ini (dfrobot) sensor ini mengkategorikan kandungan air pada lingkungan menjadi 3 antara lain:
1 Tanah kering (0~300) 2 Tanah lembab (300~700) 3 Tanah basah (700~950)
Sensor ini beroperasi pada tegangan 3.3 volt atau 5 volt, dengan konfigurasi penggunaan pin seperti pada Gambar 31:
12
Gambar 31 Konfigurasi sensor Soil Moisture pada Arduino.
Sistem Kontrol
Sistem kontrol merupakan sistem yang berfungsi mengatur penyalaan aktuator dengan referensi nilai hasil pembacaan sensor dari pengambilan data. Dalam sistem kontrol ini terdapat aturan yang membandingkan nilai hasil pembacaan sensor dengan nilai dua
threshold, threshold maksimum (atas) dan
threshold minimum (bawah).
Dengan adanya sistem kontrol ini,
otomatisasi irigasi akan dapat
diimplementasikan dengan MCU Arduino. Implementasi kontrol dengan MCU Arduino dilakukan melalui pemrograman board MCU Arduino dengan IDE Arduino-0023 melalui
kabel USB serial menggunakan bahasa
pemrograman C/C++. Contoh program untuk kontrol:
//kode program untuk membaca sensor pada pin analog 0 dan kemudian disimpan pada variabel sensorValue ...
int sensorValue = analogRead(A0);
if ((sensorValue> tresBawah) && (sensorValue < tresAtas)){
digitalWrite(pinAktuator, HIGH); }
else if ((sensorValue < tresBawah)&& (sensorValue > tresAtas)){
digitalWrite(pinAktuator, LOW); }
}
Untuk konfigurasi kontrol mirip seperti pembacaan sensor, tetapi dengan penambahan aktuator pada pin 8 output digital. Pin output
digital apabila menyala atau HIGH akan mengalirkan daya sehingga pada pin tersebut dapat menyalakan aktuator. Apabila pin digital dalam keadaan mati atau LOW, pin digital tidak mengalirkan daya. Konfigurasi kontrol dapat dilihat pada Gambar 32.
Gambar 32 Konfigurasi sistem kontrol.
Komunikasi XBee
Seperti halnya komunikasi wireless lain, XBee juga memiliki keterbatasan dalam pengiriman data, seperti faktor jarak dan faktor penghalang. Untuk mengatasi kemungkinan hilangnya data, dibuat file log pada field controller (Gambar 33) memanfaatkan modul SD cardstackable Arduino. Dengan adanya file log yang tersimpan pada field controller, data akan tercatat. Data yang dicatat pada file log field controller yaitu: nilai hasil pembacaan
sensor, threshold minimum, threshold
maksimum, informasi tanggal dan jam, serta status aktuator.
Gambar 33 Logfield controller.
Pada main controller, data yang diterima selain ditampilkan pada antarmuka seperti Gambar 28 juga ditulis ke dalam filelog harian
(Gambar 34) sehingga memudahkan
13
jam, threshold minimum, threshold maksimum status aktuator, dan status SD card pada field controller.
Gambar 34 Log main controller.
Jangkauan XBee pada spesifikasinya mencapai 30 meter untuk indoor dan 100 meter
outdoor. Agar dapat mengetahui jangkauan yang sebenarnya dilakukan pengukuran dengan melakukan pengambilan sampel data pada titik-titik tertentu dengan jarak yang berbeda-beda dan penghalang berupa dinding. Lokasi titik pengambilan data dapat dilihat pada Gambar 35.
Gambar 35 Lokasi pengambilan data. Apabila dari field controller paket data tidak sampai ke main controller, paket akan hilang (packet loss). Penghitungan packet loss
dilakukan dengan cara membandingkan data yang diterima oleh main controller dengan data yang dicatat pada field controller, kemudian dihitung persentase data yang hilang. Hasil pengujian packet loss dapat dilihat pada Tabel 3. Tabel 3 Pengujian packet loss
Berdasarkan hasil pengujian packet loss
(Tabel 3) grafik persentase packet loss pada beberapa jarak dapat divisualisasikan. Grafik persentase packet loss dapat dilihat pada Gambar 36.
Gambar 36 Persentase packet loss pada beberapa jarak.
Berdasarkan Gambar 36, dapat dilihat
bahwa komunikasi wireless XBee masih
berjalan dengan baik pada jarak kurang dari 20 meter, dengan packet loss 0%. Angka ini menunjukkan bahwa data yang dikirim dari
field controller sepenuhnya masih dapat diterima oleh main controller. Akan tetapi pada jarak 30 meter pengiriman paket data dari field controller oleh main controller mengalami beberapa kegagalan sehingga paket yang diterima memiliki packet loss sebesar 18.64%. Pada jarak 40 meter, data yang diterima oleh
field controllerpacketloss akan semakin besar. Pada pengukuran packet loss terdapat beberapa faktor yang mempengaruhi packetloss,
antara lain penghalang dinding dan jarak. Dinding merupakan penghalang sinyal XBee yang cukup mengganggu sehingga memperkecil jarak jangkau XBee coordinator dengan end device. Selain itu juga terdapat bangunan di samping titik pengambilan (titik 4). Hal ini mempengaruhi sinyal XBee fieldcontroller.
Untuk mengatasi jangkauan yang sempit perlu penambahan perangkat tambahan seperti antena Yagi atau beberapa antena untuk menambahkan gain sinyal XBee agar dalam berkomunikasi dapat lebih baik lagi dan
jangkauan lebih luas sehingga apabila
diterapkan pada lahan pertanian lebih dapat memberikan kinerja yang lebih baik.
14
KESIMPULAN DAN SARAN
Kesimpulan
Penelitian ini telah dapat melakukan
komunikasi data wireless XBee dengan
protokol ZigBee (IEEE 802.15.4) pada mikrokontroler unit Arduino UNO. API (Application Programming Interface) XBee digunakan agar komunikasi menjadi lebih fleksibel daripada komunikasi transparan.
Pada main controller terdapat antarmuka menggunakan Java yang membantu pengguna dalam pengontrolan field controller seperti pengaturan jam, pengaturan threshold minimum dan threshold maksimum, pengaturan interval pengiriman data, manajemen device XBee, memonitor kondisi kelembaban tanah, status SD
card, status aktuator, dan visualisasi data dalam bentuk tabel maupun grafik. Agar data yang diterima oleh main controller terklasifikasi dan tercatat dengan baik, main controller juga mencatat file log harian. File log ditulis dalam format CSV sehingga dapat dibuka dengan perangkat lunak seperti Microsoft Excel apabila akan dilakukan pengolahan data. Pada field controller, terdapat modul SD card untuk mencatat log agar data hasil pembacaan sensor tercatat. Pencatatan log bertujuan sebagai
backup apabila data hasil pembacaan sensor tidak terkirim ke main controller. Pengujian
packet loss dilakukan untuk mengetahui jarak yang optimal untuk mengirimkan paket. Pada penelitian ini didapat jarak yang masih dapat dijangkau dengan baik yaitu pada jarak 0 hingga 20 meter dengan kondisi terhalang dinding.
Saran
Pada penelitian ini masih terdapat kekurangan, seperti pendeteksian perangkat XBee end device yang tersedia dalam jangkauan XBee coordinator. Pendeteksian XBee end device di sekitar akan memudahkan dalam kontrol dari main controller melalui antarmuka. Pada grafik juga masih terdapat kekurangan, yaitu hasil pembacaan sensor belum dibedakan antar-device. Monitoring dua atau lebih field controller masih memiliki kekurangan, seperti tidak sinkronnya penyajian pada antarmuka berdasarkan interval pengiriman fieldcontroller. Penelitian ini belum mempertimbangkan faktor keamanan.
Pada penelitian selanjutnya sensor yang digunakan diharapkan lebih dari satu sehingga nilai dari pembacaan sensor lebih akurat dan lebih mewakili lahan pertanian. Selain itu perlu digunakan algoritme yang lebih baik lagi
seperti logika fuzzy sehingga sistem kontrol lebih baik. Untuk mengatasi packet loss perlu digunakan fungsi retries sebanyak 3 kali yang dapat diaktifkan pada pengaturan XBee dengan X-CTU. Selain itu, perlu XBee yang lebih baru daripada XBee Series 1 seperti XBee Pro yang memiliki jangkauan yang lebih luas daripada XBee 1. Dengan demikian diharapkan beberapa kekurangan pada penelitian ini dapat diatasi agar sistem ini dapat menjadi lebih baik lagi.
DAFTAR PUSTAKA
Arduino. Arduino. 2011. http://www.arduino. cc/ [22 Des 2011].
DFRobot. 2012. Moisture Sensor
(SKU:SEN0114). http://www.dfrobot.com /wiki/index.php?title=Moisture_Sensor_(S KU:SEN0114)[30 Apr 2012].
Digi. 2008. XBee®/XBee-PRO® OEM RF Modules. http://www.digi.com/support/ kbase/kbaseresultdetl.jsp?kb=135 [ 3 Jan 2012].
Digi. 2011. ZigBee® Wireless Standard. http://www.digi.com/technology/rf-articles/wireless-zigbee [26 Des 2011].
Digi. 2012. X-CTU (XCTU) Software.
http://www.digi.com/support/kbase/kbaser esultdetl.jsp?kb=125 [ 3 Jan 2012].
Ergen SC. 2004. ZigBee/IEEE 802.15.4
Summary. Berkeley: UC Berkeley.
[FTDI] Future Technology Devices
International Ltd. 2012. USB -
RS232/422/485 Modules. http://www. ftdichip.com/Products/Modules/USBRSxxx .htm [3 Jan 2012].
Hansen VE, Israelsen OW, Stringham GE. 1986. Dasar-dasar dan Praktek Irigasi.
Tachyan EP, penerjemah; Jakarta:
Erlangga. Terjemahan dari: Irrigation Principles and Practices.
Nugroho AR. 2011. Ran can g ban gun modul akuisisi data untuk sistem irigasi
otomatis ber basis mikr okontr oler
Ar duin o Duemilan ove [skripsi].
Bogor: Departemen Ilmu Komputer,
FMIPA, Institut Pertanian Bogor.
15
Taehong K, Daeyoung K, Noseong P. 2007. Shortcut tree routing in ZigBee networks.
16
17
Lampiran 1 Blok diagram arsitektur AVR
18
Lampiran 3 Kode program MCU Arduino fieldcontroller.
1
/*Pendeklarasian header library yang digunakan*/
#include <WProgram.h>
unsigned long start = millis();
/*banyak variabel untuk menangani pengiriman paket*/ uint8_t payload[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
// dengan Series 1 bisa menggunakan alamat 16-bit atau 64-bit
// Alamat 16-bit: alamat remote XBee, biasanya Coordinator Tx16Request tx = Tx16Request(0x1234, payload, sizeof(payload));
XBeeResponse response = XBeeResponse();
// membuat response objects untuk menangani respon Rx16Response rx16 = Rx16Response();
TxStatusResponse txStatus = TxStatusResponse();
const int chipSelect = 10;//pin chipset untuk sd card stackable
SdFat sd; SdFile myFile;
//int statusLed = 13;
int pinAktuator = 8; //pin aktuator (dapat diganti sesuai kebutuhan) int statAktuator=0; //status aktuator 0 mati 1 nyala
int statSD=0; //status SD card menulis int rate;
//data yang akan dikirim int sensorValue=0;
int addrSetPoint1 = 0;//alamat penyimpanan batas bawah int addrSetPoint2= 1;
int addrSetPoint3 = 7;//alamat penyimpanan batas atas int addrSetPoint4= 8;
int setPoint;//setpoint bawah int setPoint2;//set point atas
int addrInterval1 = 10; //alamat penyimpanan interval int addrInterval2 = 11;
19
//pinMode(statusLed, OUTPUT); pinMode(pinAktuator, OUTPUT); //pinMode(pinAktuator, INPUT);
xbee.begin(9600);
sd.init(SPI_QUARTER_SPEED, chipSelect); delay(1000);
}
void readXBee(){ xbee.readPacket();
if (xbee.getResponse().isAvailable()) { // got something
if (xbee.getResponse().getApiId() == RX_16_RESPONSE) { // menerima packet rx
xbee.getResponse().getRx16Response(rx16); // data = rx16.getData(0);
if(rx16.getData(0)==1){
//menulis setpoint pada alamat penyimpanan arduino EEPROM.write(addrSetPoint1, rx16.getData(1)); EEPROM.write(addrSetPoint2, rx16.getData(2)); EEPROM.write(addrSetPoint3, rx16.getData(3)); EEPROM.write(addrSetPoint4, rx16.getData(4)); //digitalWrite(statusLed, HIGH);
}
else if(rx16.getData(0)==2){//mode 2 set interval
// menulis interval pada alamat penyimpanan arduino
EEPROM.write(addrInterval1, rx16.getData(1));//nulis satuan EEPROM.write(addrInterval2, rx16.getData(2));//nulis interval }
void sendXBee(int sensorValuex,int stat){ //xbee ambil
//pembacaan nilai pin analog sensor statAktuator=digitalRead(pinAktuator); sensorValue=sensorValuex;//
setPoint=parse10Bit(EEPROM.read(addrSetPoint1), EEPROM.read(addrSetPoint2)); setPoint2=parse10Bit(EEPROM.read(addrSetPoint3),
EEPROM.read(addrSetPoint4));
20
// mulai trasmit setelah startup delay. if (millis() - start > 15000) {
//pengenkapsulasi paket data untuk dikirim payload[0] = sensorValue >> 8 & 0xff;
//fungsi mengubah 8 bit menjadi 10bit int parse10Bit(int msb, int lsb) {
msb = msb & 0xff;
void writeData(int sensorValue,int stat){ //tulis dalam file SD
21
int sensorValue = analogRead(A0); // Baca analog pin0
setPoint = parse10Bit(EEPROM.read(addrSetPoint1),
EEPROM.read(addrSetPoint2));//mengambil nilai setpoint setPoint2 = parse10Bit(EEPROM.read(addrSetPoint3),
EEPROM.read(addrSetPoint4));//mengambil nilai setpoint
//rule membandingkan hasil pembacaan dengan setpoint if ((sensorValue>setPoint) && (sensorValue <setPoint2)){ stat=1;
}
else if ((sensorValue<setPoint) && (sensorValue >setPoint2)){ stat=0;
}
if(stat==1){
digitalWrite(pinAktuator, HIGH);//menyalakan aktuator }
else if(stat==0){
digitalWrite(pinAktuator, LOW);//mematikan aktuator }
RTC.get(rtc,true); jam=rtc[2];
tahun=rtc[6]%2000;//agar 2 digit saja tahuunya
//pembuatan file atau mengeditya jika telah ada
if (myFile.open("log.csv", O_RDWR | O_CREAT | O_AT_END)){ statSD=1;
}
readXBee();
//menghitung waktu pengiriman disesuaikan dengan setting
int intervalSat=EEPROM.read(addrInterval1);//baca satuan menit/detik
if (intervalSat==0){
else if (intervalSat==1 && detik==0){
rate= menit % EEPROM.read(addrInterval2);
if (rate==0){
sendXBee(sensorValue,stat);//pengiriman data writeData(sensorValue,stat);