TA : Rancang Bangun Protokol Komunikasi Data Pada Wireless Sensor Network Dengan Topologi Tree Untuk Memantau Gas Karbon Monoksida.
UNTUK MEMANTAU GAS KARBON MONOKSIDA
TUGAS AKHIR
Disusun Oleh:
Nama : Achmad Fajar Shodiq NIM : 08.41020.0052
Program : S1 (Strata Satu) Jurusan : Sistem Komputer
SEKOLAH TINGGI
MANAJEMEN INFORMATIKA & TEKNIK KOMPUTER SURABAYA
(2)
x DAFTAR ISI
ABSTRAKSI ... vi
KATA PENGANTAR ... viii
DAFTAR ISI ... x
DAFTAR TABEL ... xiv
DAFTAR GAMBAR ... xvi
BAB I PENDAHULUAN ... 1
1.1. Latar Belakang ... 1
1.2. Perumusan Masalah ... 3
1.3. Pembatasan Masalah ... 3
1.4. Tujuan ... 4
1.5. Kontribusi ... 4
1.6. Sistematika Penulisan ... 5
BAB II LANDASAN TEORI ... 7
2.1. Wireless Sensor Network (WSN) ... 7
2.1.1. Pengertian dan Perkembangan WSN ... 7
2.1.2. Penerapan dan Penggunaan WSN ... 8
2.1.3. Arsitektur WSN ... 9
2.1.4. Bagian-Bagian WSN ... 10
2.1.5. Komunikasi Dalam WSN ... 11
2.2. Mikrokontroler AVR ... 12
2.2.1. Pemograman Bahasa C untuk AVR ... 15
(3)
2.4. Komunikasi Serial ... 20
2.4.1. Komunikasi Serial Synchronous ... 21
2.4.2. Komunikasi Serial Asynchronous ... 21
2.4.3. Data Transfer Rate ... 22
2.5. Modul Komunikasi Wireless 802.15.4 Xbee-Pro ... 22
2.6. Sensor Gas Karbon Monoksida (MQ-7) ... 24
BAB III METODE PENELITIAN ... 26
3.1. Alat dan Bahan Penelitian ... 28
3.2. Jalan Penelitian ... 29
3.2.1. Studi Literatur ... 30
3.2.2. Perancangan Perangkat Keras ... 30
3.2.3. Perancangan Perangkat Lunak ... 32
A. Protokol Data ... 32
B. Program Modul WSN ... 34
C.1. Program Mikrokontroler Node 1 ... 35
C.2. Program Mikrokontroler Node 2 ... 40
C.3. Program Mikrokontroler Node 3 ... 45
C.4. Program Mikrokontroler Node Coordinator ... 52
3.3. Langkah Pengujian ... 55
3.3.1. Pengujian Modul Pendukung ... 56
A. Modul Minimum Sistem ... 56
B. Rangkaian Pemantau catu daya ... 56
C. Modul Wireless Xbee-Pro ... 57
(4)
3.3.2. Pengujian Aplikasi Pendukung ... 59
A. Program Mikrokontroler Tiap Node ... 59
3.3.3. Pengujian Jarak Akses XBee-Pro ... 60
3.3.4. Pengujian Keseluruhan Sistem ... 61
BAB IV HASIL DAN PEMBAHASAN ... 62
4.1. Pengujian Minimum Sistem ... 62
4.1.1. Hasil Pengujian ... 62
4.1.2. Pembahasan ... 63
4.2. Pengujian Rangkaian Pemantau catu daya ... 63
4.2.1. Hasil Pengujian ... 63
4.2.2. Pembahasan ... 64
4.3. Modul Wireless Xbee-Pro ... 64
4.3.1. Hasil Pengujian ... 64
4.3.2. Pembahasan ... 66
4.4. Modul Sensor Gas Karbon Monoksida ... 67
4.4.1. Hasil Pengujian ... 67
4.4.2. Pembahasan ... 68
4.5. Program Mikrokontroler Tiap Node ... 69
4.6.1. Hasil Pengujian ... 69
4.6.2. Pembahasan ... 71
4.6. Pengujian Jarak Akses XBee-Pro ... 72
4.6.1. Hasil Pengujian ... 72
4.6.2. Pembahasan ... 72
(5)
4.7.1. Hasil Pengujian ... 73
4.7.2. Pembahasan ... 73
BAB V KESIMPULAN DAN SARAN ... 74
5.1. Kesimpulan ... 74
5.2. Saran ... 74
DAFTAR PUSTAKA ... 76
(6)
1 BAB I PENDAHULUAN
1.1. Latar Belakang Masalah
Pencemaran udara adalah rusaknya kualitas udara yang tercemar oleh zat-zat polutan sehingga mengubah susunan udara yang bisa membahayakan manusia, hewan, dan tumbuhan. Semakin berkembang pesatnya pembangunan khususnya industri dan teknologi, serta meningkatnya jumlah kendaraan bermotor menyebabkan udara disekitar kita menjadi tercemar oleh gas-gas buang hasil pembakaran.
Kondisi udara yang buruk mempunyai dampak yang signifikan terhadap kesehatan. Udara yang telah tercemar oleh partikel dapat menimbulkan berbagai penyakit saluran pernapasan atau pneumokoniosis yang merupakan penyakit saluran pernapasan yang disebabkan oleh adanya partikel yang masuk atau mengendap di dalam paru-paru. (Wardhana, Arya, 1999).
Jenis polutan yang paling dominan menyebabkan pencemaran udara, antara lain: karbon monoksida, nitrogen dioksida, sulfur dioksida, partikulat, hidrokarbon, CFC, timbal dan karbondioksida. Karbon monoksida adalah polutan yang paling banyak dihasilkan pada kota-kota besar, hal ini disebabkan karena banyaknya gas buang yang dihasilkan oleh kendaraan bermotor dan proses industri.
Wireless Sensor Network (WSN) dapat digunakan untuk memantau pencemaran udara sehingga dapat dijadikan informasi peringatan dini adanya pencemaran udara pada titik tertentu. Dengan mengetahui informasi tersebut
(7)
diharapkan mampu mengurangi tingkat pencemaran udara khususnya gas karbon monoksida dengan salah satu cara melakukan penanaman tumbuhan secara masal. WSN dapat melakukan pemantuan lingkungan terbuka secara langsung dengan memanfaatkan beberapa macam sensor. (Mittal, 2010).
Dari sejumlah masalah utama dalam implementasi WSN antara lain: proses komunikasi dan konsumsi energi. Sering kali komunikasi pada WSN hanya mengandalkan protokol komunikasi dari device WSN yang digunakan. Apabila terdapat salah satu node yang mengalamai kegagalan sistem maka node yang berada dibawahnya tidak bisa melakukan proses komunikasi, sehingga data sensor yang berasal dari node tersebut tidak bisa tersampaikan ke pusat. Untuk mengatasi masalah tersebut diusulkan sebuah penelitian mengenai sebuah perancangan protokol komunikasi data pada penerapan WSN, yang bertujuan apabila terdapat kegagalan sistem pada salah satu node terdapat jalur backup komunikasi data sehingga node yang berada dibawahnya masih bisa mengirimkan data sensor menuju node pusat.
Permasalahan lain pada WSN adalah konsumsi energi. Hal ini disebabkan oleh catu daya pada node hanya disuplai oleh sebuah baterai. Maka dari itu dalam penelitian ini ditambahkan rangkaian pemantau catu daya yang bertujuan untuk mengetahui informasi penggunaan catu daya pada suatu node, sehingga bisa dijadikan acuan untuk menentukan batas minimum penggunaan catu daya.
Dari uraian diatas, maka diusahakan penelitian mengarah pada teknologi WSN dengan topologi tree. Dalam topologi tree terdapat beberapa tingkatan simpul atau node. Node yang lebih tinggi tingkatannya dapat mengatur node lain yang lebih rendah tingkatannya. Selain itu data yang akan dikirim perlu melalui
(8)
node yang berada diatasnya Perancangan protokol komunikasi data diusahakan mengarah pada topologi tree sehingga proses komunikasi data bisa sesuai dengan penerapan topologi tree. Pemilihan topologi tree diharapkan mampu mengatasi permasalahan komunikasi yang terbatas pada jarak akses yang dimiliki oleh
device, sehingga node yang jarak aksesnya lebih jauh masih bisa terjangkau.
1.2. Perumusan Masalah
Dari beberapa hal yang telah disebutkan, maka dalam penelitian ini dapat dirumuskan masalah sebagai berikut.
1. Bagaimana menerapkan protokol komunikasi data dalam pengiriman data sensor gas karbon monoksida serta pemantau catu daya menggunakan WSN dengan topologi tree?
2. Bagaimana menerapkan topologi tree dalam WSN?
3. Bagaimana mendapatkan nilai yang dihasilkan oleh sensor gas karbon monoksida serta pemantau catu daya?
1.3. Pembatasan Masalah
Dari permasalahan yang dirumuskan di atas, maka batasan permasalahan yang kami gunakan untuk rancang bangun protokol komunikasi data pada
wireless sensor network dengan topologi tree untuk memantau gas karbon monoksida adalah sebagai berikut.
1. Wireless XBee-Pro telah dikonfigurasi sesuai dengan aturan, hal ini dilakukan agar proses komunikasi berjalan sesuai dengan topologi tree.
(9)
2. Jangkauan radius wireless antara masing-masing device sesuai dengan spesifikasi yang ada pada wireless XBee-Pro series 1.
3. Node 2 menjadi prioritas utama dalam penentuan komunikasi antar node baik komunikasi dari node coordinator atau node 1.
4. Routing komunikasi adalah statis.
5. Jenis pencemaran udara yang akan dipantau adalah karbon monoksida.
6. Output yang dihasilkan dari sensor gas MQ-7 adalah nilai respon sensor terhadap kandungan karbon monoksida dalam udara.
1.4. Tujuan
Tujuan dari rancang bangun protokol komunikasi data pada wireless sensor network dengan topologi tree untuk memantau gas karbon monoksida adalah sebagai berikut.
1. Menerapkan protokol komunikasi data dalam pengiriman data sensor gas karbon monoksida serta pemantau catu daya menggunakan WSN dengan topologi tree.
2. Menerapkan topologi tree dalam WSN.
3. Mendapatkan nilai yang dihasilkan oleh sensor gas karbon monoksida serta pemantau catu daya.
1.5. Kontribusi
Penelitian ini memberikan wacana pada penerapan protokol komunikasi data dalam pemantuan gas karbon monoksida sebenarnya. Dengan pengumpulan data dari pemantau catu daya sehingga dapat dijadikan acuan dalam penentuan
(10)
route komunikasi secara dinamis, serta pengumpulan data dari sensor gas karbon monoksida dapat dijadikan acuan keputusan kemungkinan terjadinya pencemaran udara secara berlebih.
1.6. Sistematika Penulisan
Laporan Tugas Akhir ini ditulis dengan sistematika penulisan sebagai berikut.
BAB I : PENDAHULUAN
Bab ini membahas tentang latar belakang, rumusan masalah, batasan masalah, tujuan, kontribusi serta sistematika penulisan buku tugas akhir.
BAB II : LANDASAN TEORI
Bab ini membahas tentang berbagai teori yang mendukung penelitian ini. Teori tersebut meliputi Wireless Sensor Network (WSN), topologi tree, komunikasi serial, modul komunikasi wireless
802.15.4 Xbee-Pro, mikrokontroler AVR, dan sensor gas karbon monoksida (MQ-7).
BAB III : METODE PENELITIAN
Bab ini berisi tentang penjelasan penulis dalam merancang dan membuat perangkat keras secara garis besar, Serta perancangan perangkat lunak pada minimum sistem yang digunakan sebagai dasar
(11)
pembuatan protokol komunikasi data. Bab ini juga berisi penjelasan alat dan bahan penunjang penelitian, alur penelitian, dan langkah pengujian.
BAB IV : HASIL DAN PEMBAHASAN
Bab ini berisi tentang penjelasan hasil pengujian sistem beserta pembahasannya. Pengujian meliputi pengujian modul pendukung seperti sensor MQ-7 untuk mendeteksi gas karbon monoksida, modul minimum sistem sebagai pemroses, rangkaian catu daya sebagai indikator penggunaan catu daya, modul wireless Xbee-Pro sebagai media komunikasi nirkabel, serta pengujian keseluruhan sistem dengan menggunakan protokol komunikasi yang telah dibuat.
BAB V : PENUTUP
Bab ini berisi tentang kesimpulan dari seluruh sistem yang dibuat serta diberikan saran untuk pengembangan lebih lanjut dari penelitian ini.
(12)
7
2.1. Wireless Sensor Network (WSN)
2.1.1. Pengertian dan Perkembangan WSN
Wireless sensor network atau jaringan sensor nirkabel adalah suatu jaringan nirkabel yang terdiri dari kumpulan node sensor yang tersebar di suatu area tertentu (sensor field). Tiap node sensor memiliki kemampuan untuk mengumpulkan data dan berkomunikasi dengan node sensor lainnya. Dengan adanya teknologi WSN, kita dapat memonitor dan mengontrol temperatur, kelembaban, kondisi cahaya, level derau, pergerakan suatu objek dan sebagainya.
Wireless Sensor Network atau disingkat dengan WSN adalah suatu peralatan sistem embedded yang didalamnya terdapat satu atau lebih sensor dan dilengkapi dengan peralatan sistem komunikasi. Sensor disini digunakan untuk menangkap informasi sesuai dengan karakteristik. (Agus, 2010). Wireless Sensor Network atau jaringan sensor nirkabel adalah kumpulan sejumlah node yang diatur dalam sebuah jaringan kerjasama. (Hill, dkk., 2000).). Masing-masing
node dalam jaringan sensor nirkabel biasanya dilengkapi dengan radio tranciever
atau alat komunikasi wireless lainnya, mikrokontroler kecil, dan sumber energi seperti baterai. Banyak aplikasi yang bisa dilakukan menggunakan jaringan sensor nirkabel, misalnya pengumpulan data kondisi lingkungan, security monitoring, dan node tracking scenarios. (Jason, 2003)
Kemampuan sensor pada WSN secara luas membuat penggunaan WSN untuk melakukan monitoring banyak digunakan. WSN dapat digunakan dengan
(13)
sensor sederhana yang memonitoring suatu fenomena sedangkan untuk yang komplek maka setiap WSN akan mempunya lebih dari satu sensor sehingga WSN ini akan dapat melakukan banyak monitoring suatu fenomena.
2.1.2. Penerapan dan Penggunaan WSN
Teknologi WSN banyak memberikan inspirasi dalam penerapan dan penggunaan untuk segala bidang. Beberapa penerapannya contohnya:
1) Monitoring lingkungan 2) Target tracking
3) Pipeline (Air, minyak, gas) tracking 4) Monitoring pertanian
5) Supply chain management 6) Traffic management
Setiap node WSN akan mengirim data sensor ke suatu base station dan hasil kumpulan data semuanya akan diolah sehingga ini akan memberikan suatu informasi.
Sumber: Agus, 2010
(14)
2.1.3. Arsitektur WSN
Pada WSN, node sensor disebar dengan tujuan untuk menangkap adanya gejala atau fenomena yang hendak diteliti. Jumlah node yang disebar dapat ditentukan sesuai kebutuhan dan tergantung beberapa faktor misalnya luas area, kemampuan sensing node, dan sebagainya. Tiap node dalam WSN dapat melakukan pemantuan lingkungan terbuka secara langsung dengan memanfaatkan beberapa macam sensor. (Mittal, 2010). Arsitektur WSN secara umum dapat ditunjukkan pada gambar 2.2.
Sumber : http://telekom.ee.uii.ac.id/index.php/berita/15-wsn1
Gambar 2.2. Arsitektur WSN Secara Umum
Pada Gambar 2.2 dapat dilihat, node sensor yang berukuran kecil disebar dalam di suatu area sensor. Node sensor tersebut memiliki kemampuan untuk meneruskan data yang dikumpulkan ke node lain yang berdekatan. Data dikirimkan melalui transmisi radio akan diteruskan menuju base station yang merupakan penghubung antara node sensor dan user.
(15)
2.1.4. Bagian-Bagian WSN
WSN terbagi atas 5 bagian, yaitu comunication, mikrokontroler, power
supply, memori eksternal, dan sensor seperti pada gambar 2.3. Bagaimana menggabungkan ini adalah hal yang harus diperhatikan ketika kita melakukan perancangan. Sistem processor merupakan bagian sistem yang terpenting pada WSN yang dapat mempengaruhi performance ataupun konsumsi energi.
Sumber : (E, Sugiarto, & Sakti, 2009)
Gambar 2.3. Komponen Penyusun Node Dalam WSN
1) Comunication berfungsi untuk menerima/mengirim data dengan menggunakan protokol IEEE 802.15.4 atau IEEE 802.11b/g kepada device lain seperti
concentrator, modem Wifi, dan modem RF.
2) Mikrokontroler berfungsi untuk melakukan fungsi perhitungan, mengontrol dan memproses device–device yang terhubung dengan mikrokontroler.
3) Power Supply berfungsi sebagai sumber energi bagi sistem Wireless Sensor
secara keseluruhan.
4) External Memory berfungsi sebagai tambahan memory bagi sistem Wireless Sensor, pada dasarnya sebuah unit mikrokontroler memiliki unit memory sendiri.
Memory
Sensor/ actuators Controller
Communication device
(16)
5) Sensor berfungsi untuk men–sensing besaran–besaran fisis yang hendak diukur. Sensor adalah suatu alat yang mampu untuk mengubah suatu bentuk energi ke bentuk energi lain, dalam hal ini adalah mengubah dari energi besaran yang diukur menjadi energi listrik yang kemudian diubah oleh ADC menjadi deretan pulsa terkuantisasi yang kemudian bisa dibaca oleh
mikrokontroler.
2.1.5. Komunikasi dalam WSN
Wireless sensor menggunakan 2 standar komunikasi wireless, yaitu: IEEE 802.15.4. Protokol IEEE 802.15.4 ini merupakan salah satu macam dari protokol– protokol pada WPAN (Wireless Personal Area Networks), salah satu contoh dari WPAN yang lainnya adalah bluetooth. Protokol IEEE 802.15.4 ini merupakan standar untuk gelombang radio (RF). Protokol ini bekerja pada data rate yang rendah agar batere bisa tahan lama, dan sederhana. Suatu device yang menggunakan protokol ini, dapat terkoneksi dengan baik pada radius maksimal 10m dan dengan data rate maksimal 250 Kbps dengan alat lainnya. Protokol ini menggunakan 3 pita frekuensi untuk keperluan operasionalnya, seperti: 868–868.8 MHz untuk daerah Eropa, 902–928 MHz untuk daerah Amerika Utara, dan 2400– 2483.5 MHz untuk daerah lainnya diseluruh dunia. ZigBee merupakan salah satu
vendor yang mengembangkan layer–layer diatas layer untuk IEEE 802.15.4 ini. Pada perkembangannya saat ini, protokol ini sudah mendukung penggunaan IPv6, dengan ditandai lahirnya RFC 4919 (Request For Comments 4919) dan RFC 4944 (Request For Comments 4844).
(17)
IEEE 802.11 Protokol ini terdiri atas beberapa jenis standar lain untuk WLAN (Wireless Local Area Networks), saat ini yang paling populer adalah IEEE 802.11g dan 802.11b. Pada Wireless Sensor Network digunakan protokol IEEE 802.11b/g. ProtokolIEEE 802.11 ini memiliki beberapa channel yang frekuensinya berbeda, agar tidak terjadi interferensi antar device IEEE 802.11 ini, pembagian frekuensi untuk tiap–tiap channel diatur oleh kebijakan masing– masing negara. Protokol IEEE 802.11b yang digunakan pada Wireless Sensor, mempunyai data rate maksimum 11 Mbps. Pada kenyataannya, protokol ini hanya mampu mempunyai data rate maksimum 5,9 Mbps dengan TCP, dan 7,1 Mbps untuk UDP (User Datagram Protocol). Hal ini karena adanya overhead
pada CSMA. Protokol IEEE 802.11bini mampu beroperasi pada radius jarak 38 m dari device lain, dan memiliki frekuensi operasi pada 2,4 GHz.
2.2. Mikrokontroler AVR
Microcontroller dan microprocessor mempunyai beberapa perbedaan.
Microprocessor yang terdapat pada komputer seperti Intel Pentium, hanya dapat bekerja apabila terdapat komponen pendukung seperti RAM (Random Access Memory), hard disk, motherboard, perangkat I/O, dll. Komponen-komponen tersebut diperlukan karena microprocessor hanya dapat melakukan pengolahan data, namun tidak dapat menyimpan data, menyimpan program, menerima masukan dari user secara langsung, ataupun menyampaikan data hasil pemrosesan ke keluaran. Berbeda dengan microprocessor, microcontroller sudah dilengkapi dengan komponen-komponen yang dikemas dalam satu chip seperti memori, perangkat I/O, timer, ADC (Analog to Digital Converter), dll. Hal ini membuat
(18)
Microcontroller lebih tepat untuk digunakan pada aplikasi embedded system. (Husanto, 2008).
Berbagai seri mikrokontroler AVR telah diproduksi oleh Atmel dan digunakan di dunia sebagai mikrokontroler yang bersifat low cost dan high performance. Mikrokontroler AVR banyak dipakai karena fiturnya yang cukup lengkap, mudah untuk didapatkan, dan harganya yang relatif terjangkau. Mikrokontroller AVR memiliki arsitektur RISC 8 bit, dimana semua instruksi dikemas dalam kode 16-bit (16-bits word) dan sebagian besar instruksi dieksekusi dalam satu siklus clock, berbeda dengan instruksi MCS51 yang membutuhkan 12 siklus clock. Hal ini terjadi karena perbedaan arsitektur yang dipakai. AVR menggunakan arsitektur RISC (Reduced Instruction Set Computing) sedangkan MCS51 menggunakan arsitektur CISC (Complex Instruction Set Computing).
AVR secara umum dapat dibagi menjadi empat kategori antara lain; ATtiny, AT90Sxx, ATmega, dan AT86RFxx. Yang membedakan keempat kategori diatas secara mendasar ialah ukuran memori, peripheral, dan fungsinya. Antar seri mikrokontroler AVR memiliki beragam tipe dan fasilitas, namun kesemuanya memiliki arsitektur yang sama, dan juga set instruksi yang relatif tidak berbeda. Gambar 2.4 menunjukkan arsitektur mikrokontoler AVR secara umum.
(19)
Sumber : Atmel, 2011
Gambar 2.4. Blog Diagram Mikrokontroler AVR Keterangan:
a. Flash adalah suatu jenis read only memory yang biasanya diisi dengan program hasil buatan manusia yang harus dijalankan oleh mikrokontroler b. Random Acces Memory (RAM) merupakan memori yang membantu CPU
untuk penyimpanan data sementara dan pengolahan data ketika program dalam keadaan running
c. Electrically Erasable Programmable Read Only Memory (EEPROM) adalah memori untuk penyimpanan data secara permanen oleh program yang sedang
(20)
d. Port I/O adalah kaki untuk jalur keluar atau masuk sinyal sebagai hasil keluaran ataupun masukan bagi program
e. Timer adalah modul dalam hardware yang bekerja untuk menghitung waktu/pulsa
f. Universal Asynchronous Receive Transmit (UART) adalah jalur komunikasi data khusus secara serial asynchronous
g. Pulse Width Modulation (PWM) adalah fasilitas untuk membuat modulasi pulsa
h. Analog to Digital Converter (ADC) adalah fasilitas untuk dapat menerima sinyal analog dalam range tertentu untuk kemudian dikonversi menjadi suatu nilai digital dalam range tertentu
i. Serial Peripheral Interface (SPI) adalah jalur komunikasi data khusus secara serial secara serial synchronous
j. In System Programming (ISP) adalah kemampuan khusus mikrokontroler untuk dapat diprogram langsung dalam sistem rangkaiannya dengan membutuhkan jumlah pin yang minimal
2.2.1. Pemograman Bahasa C untuk AVR
Bahasa C luas digunakan untuk pemrograman berbagai jenis perangkat, termasuk mikrokontroler. Bahasa ini sudah merupakan high level language, dimana memudahkan programmer menuangkan algoritmanya.
Struktur dalam bahasa c cukup sederhana, karena hanya mencakup 3 poin penting.
(21)
A. Pre-Proccesor
Merupakan bagian dari program dalam bahasa c yang selalu dijalankan pertama kali. Bagian ini juga melakukan proses tertentu. Banyak sekali syntax dalam pre-processor. Namun setidaknya ada dua syntax yang akan sering kita gunakan dalam latihan programming dasar, yaitu syntax #include dan #define.
Sumber : http://digilib.ittelkom.ac.id
Gambar 2.5. Stuktur Penulisan Program Bahasa C Pada AVR
1) #include adalah proses yang pertama kali dijalankan untuk memanggil
library/prototype fungsi yang ada di dalam header file.
2) #define adalah proses yang pertama kali dijalankan untuk mendefinisikan konstanta dan macro. Nilai dari konstanta tidak akan berubah selama program berlangsung.
3) Mainfunction adalah fungsi utama dalam suatu program. Tentu saja fungsi ini yang akan dijalankan pertama kali. Tidak menutup kemungkinan di dalam fungsi ini terdapat statement yang memanggil fungsi lain.
4) Function adalah fungsi yang dapat dibuat sendiri dan dapat dipanggil baik fungsi utama ataupun fungsi lain dan bahkan fungsi itu sendiri. Fungsi dapat
(22)
diletaktan diatas fungsi utama, ataupun dapat juga dibawah fungsi utama (dengan menambahkan deklarasi fungsi diatas fungsi utama).
B. Tipe Data
Tipe data merupakan bagian program yang paling penting karena tipe data mempengaruhi setiap instruksi yang akan dilaksanakan oleh komputer. Berikut merupakan tipe data dalam bahasa C
1) char : 1 byte ( -128 s/d 127 ) 2) unsigned char : 1 byte ( 0 s/d 255 ) 3) int : 2 byte ( -32768 s/d 32767 ) 4) unsigned int : 2 byte ( 0 s/d 65535 )
5) long : 4 byte ( -2147483648 s/d 2147483647 ) 6) unsigned long : 4 byte ( 0 s/d 4294967295 ) 7) float : bilangan desimal
8) array : kumpulan data-data yang sama tipenya.
C. Deklarasi Variabel & Konstanta
1) Variabel adalah memori penyimpanan data yang nilainya dapat diubah-ubah. Penulisan : [tipe data] [nama] = [nilai] ;
2) Konstanta adalah memori penyimpanan data yang nilainya tidak dapat diubah. Penulisan : const [nama] = [nilai] ;
3) Tambahan
(23)
Local variabel/konstanta yang hanya dapat diakses oleh fungsi tempat dideklarasikannya.
Statement adalah setiap operasi dalam pemrograman, harus diakhiri dengan [ ; ] atau [ } ]. Statement tidak akan dieksekusi bila diawali dengan tanda [ // ] untuk satu baris. Lebih dari 1 baris gunakan pasangan [ /* ] dan [ */ ]. Statement yang tidak dieksekusi disebut juga comments / komentar.
C.1. Conditional Statement Dan Looping
1) if else : digunakan untuk penyeleksian kondisi
2) for : digunakan untuk looping dengan jumlah yang sudah diketahui 3) while : digunakan untuk looping jika dan salama memenuhi syarat
tertentu
4) do while : digunakan untuk looping jika dan salama memenuhi syarat tertentu, namun min 1 kali
5) switch case : digunakan untuk seleksi dengan banyak kondisi
C.2. Operasi Logika Dan Biner
1) && (logika and) digunakan bila ingin mendapatkan nilai yang true hanya jika kedua input bernilai HIGH.
2) | | (logika or) digunakan bila ingin mendapatkan nilai yang true
3) ! (logika not) digunakan bila ingin mendapatkan nilai yang true hanya jika nilai tidak sama
(24)
C.3. Operasi Relasional (Perbandingan)
1) == (sama dengan) Membuat sesuatu menjadi sama dengan nilai yang lain 2) != (tidak sama dengan) Tidak sama dengan (misalnya: 12 != 10 adalah TRUE
(benar) atau 12 != 12 adalah FALSE (salah)).
3) > (lebih besar) Lebih besar dari (misalnya: 12 > 10 adalah TRUE (benar) atau 12 > 12 adalah FALSE (salah) atau 12 > 14 adalah FALSE (salah)).
4) < (lebih kecil) Lebih kecil dari (misalnya: 12 < 10 adalah FALSE (salah) atau 12 < 12 adalah FALSE (salah) atau 12 < 14 adalah TRUE (benar)).
C.4. Operasi Aritmatika
1) + , - , * , / (tambah,kurang,kali,bagi)
2) += , -= , *= , /= (nilai di sebelah kiri operator di tambah/kurang/kali/bagi dengan nilai di sebelah kanan operator)
3) % (sisa bagi)
4) ++ , -- (tambah satu (increment) , kurang satu (decrement))
2.3. Topologi Tree
Topologi tree adalah kombinasi karakteristik antara topologi star dan topologi bus. Topologi ini terdiri atas kumpulan topologi star yang dihubungkan dalam satu topologi bus sebagai jalur tulang punggung atau backbone. Topologi jaringan tree disebut juga sebagai topologi jaringan bertingkat yang biasa digunakan untuk interkoneksi antar sentral dengan hirarki yang berbeda. Topologi ini memungkinkan pengembangan jaringan yang telah ada, dan memungkinkan
(25)
sebuah perusahaan mengkonfigurasi jaringan sesuai dengan kebutuhannya. (Rahayu, 2004)
Pada topologi tree terdapat beberapa tingkatan simpul atau node. Pusat atau simpul yang lebih tinggi tingkatannya, dapat mengatur simpul lain yang lebih rendah tingkatannya. Data yang dikirim perlu melalui simpul pusat terlebih dahulu. Misalnya untuk bergerak dari node 2 menuju node 5 seperti ditunjukkan pada gambar 2.2 data yang ada harus melewati node 2, node 3 dan node 4 sebelum berakhir pada node 5. Keungguluan topologi tree seperti ini adalah dapat terbentuknya suatu kelompok yang dibutuhkan pada setiap saat. Adapun kelemahannya adalah apabila simpul yang lebih tinggi kemudian tidak berfungsi, maka kelompok lainnya yang berada dibawahnya akhirnya juga menjadi tidak efektif.
Sumber : http://id.wikipedia.org/wiki/Topologi_pohon
Gambar 2.6. Topologi Tree
2.4. Komunikasi Serial
Komunikasi serial adalah komunikasi dimana transmisi data dilakukan per-bit. Tiap bit data tersebut dikirim melalui satu jalur, sehingga pada antarmuka serial hanya membutuhkan sedikit pin. Kabel yang digunakan dalam komunikasi serial umumnya lebih panjang dibandingkan dengan komunikasi parallel. Hal ini dikarenakan komunikasi serial mengirimkan logika “1” dengan kisaran tegangan
(26)
antara -3V hingga -25V danlogika “0” antara +3V hingga +25V sehingga kehilangan daya karena panjangnya kabel tidak menjadi masalah.
Komunikasi serial adalah pengiriman data yang dilakukan secara serial (data dikirim satu persatu secara berurutan), sehingga komunikasi serial lebih lambat daripada komunikasi paralel. Komunikasi serial biasanya digunakan untuk sambungan dengan jarak yang relatif lebih jauh. (Santosa, 1996)
2.4.1. Komunikasi Serial Synchronous
Komunikasi sychronous adalah mengirimkan data beberapa byte atau karakter (atau disebut blok data atau frame) sebelum meminta konfirmasi apakah data sudah diterima dengan baik atau tidak. Menurut (Nalwan, 2003) Transmisi secara synchcronous yaitu pengiriman data serial yang disertai dengan sinyal
clock. Synchcronous berarti transmitter dan receiver mempunyai sumber clock
yang berbeda.
Sumber : Tanutama, 1989
Gambar 2.7. Transmisi Synchronous
2.4.2. Komunikasi Serial Asynchronous
Komunikasi asynchronous adalah mengirimkan data setiap satu byte
pengiriman dan tidak dibutuhkan konfirmasi penerimaan data. Menurut (Maziadi, 2000) Transmisi data secara serial adalah transmisi data dimana data tersebut akan dikirimkan sebanyak satu bit dalam satu satuan waktu. Terdapat dua cara dalam
(27)
mentransmisikan data secara serial, yaitu secara synchronous dan asynchronous. Perbedaan dari kedua cara tersebut adalah sinyal clock yang dipakai sebagai sinkronisasi pengiriman data. asynchronous yaitu pengiriman data serial yang tidak disertai sinyal clock sehingga receiver harus membangkitkan sinyal clock
sendiri (tidak memerlukan sinkronisasi).
Sumber : Tanutama, 1989
Gambar 2.8. Transmisi Asynchronous
2.4.3. Data Transfer Rate
Kecepatan tranfer data pada komunikasi data serial diukur dalam satuan BPS (bits per second). Sebutan terkenal lainnya adalah baud rate. Namun baud rate dan bps tidak serta merta adalah sama. Hal ini mengacu kepada fakta bahwa baud rate adalah terminology modem dan diartikan sebagai perubahan signal dalam satuan bit signal setiap detik. Sedang data tranfer rate penamaannya mengacu pada jumlah bit dari byte data yang ditransfer setiap detik. Sementara itu kecepatan transfer data (data transfer rate) pada komputer ter-gantung pada jenis komunikasi yang diberlakukan atasnya.
2.5. Modul Komunikasi Wireless 802.15.4 Xbee-Pro
Modul komunikasi wireless yang digunakan adalah XBee-Pro. Modul ini berguna untuk menjalin komunikasi antara microntroller dan komputer secara
(28)
pada frekuensi 24GHz, dan daya jangkau komunikasi sekitar 1-1.5km. Kecepatan kirim XBee-Pro lebih cepat karena XBee-Pro menggunakan fullduplex.
Modul XBee-Pro dibuat sesuai dengan standar ZigBee / IEEE 802.15.4. Modul ini membutuhkan daya yang rendah dan beroperasi dalam frekuensi 2,4 GHz ISM.
Modul komunikasi wireless ini mempunyai beberapa fitur, yaitu :
1. Jarak pengendalian dalam ruangan bisa mencapai 100 meter, dan diluar ruangan dapat mencapai 300 meter.
2. Transmisi daya yang hingga: 100 mW (20 dBm) 3. Sensitivitas penerimaan data mencapai: -100 dBm 4. Mempunyai kecepatan transfer data: 250,000 bps
5. Paket dapat dikirimkan dan diterima menggunakan data 16-bit atau sebuah alamat 64-bit (protokol 802.15.4).
6. Setiap modul akan menerima paket ketika dikonfigurasi untuk beroperasi di
Broadcast Mode. Dalam mode ini modul penerima tidak mengirim ACK (Acknowledgement) dan Transmitting.
XBee-PRO ini mempunyai 20 kaki, diantaranya 4 pin sebagai input adalah port 3, port 5, port 9, dan port 14, serta ada 4 pin sebagai output adalah port 2, port 4, port 6, dan port 13. Dan 4 pin yang digunakan, yaitu VCC dan GND untuk catu daya, DOUT merupakan pin transmit (TX), DIN merupakan pin receive (RX).
(29)
Sumber : Evolution.2010. XBee-PRO Basic
Gambar 2.9. Modul XBee-Pro
Tabel 2.1. Spesifikasi Xbee-Pro (Digi Internatonal, Inc., 2009)
Performance
Indoor Urban-Range up to 300‟ (100 m)
Outdoor RF line-of-sight Range up to 1 mile (1500 m)
Transmit Power Output 60 mW (18 dBm) conducted,
(software selectable) 100 mW (20 dBm) EIRP
RF Data Rate 250,000 bps
Serial Interface Data Rate 1200 – 115200 bps
(software selectable) (non-standard baud rates also supported)
Receiver Sensitivity - 100 dBm (1% packet error rate)
Power Requirements
Supply Voltage 2.8 – 3.4 V
Idle / Receive Ourrent (typical) 55 mA (@3.3 V)
Power-down Current < 10 μA
General
Operating Frequency ISM 2.4 GHz
Frequency Band 2.4 - 2.4835 GHz
Modulation OQPSK
Dimensions 0.960" x 1.297" (2.438cm x 3.294cm)
Operating Temperature -40 to 85° C (industrial)
Antenna Options Integrated Whip, Chip or U.FL Connector
Networking & Security
Supported Network Topologies Point-to-point, Point-to multipoint & Peer-to-peer
Number of Channels 12 Direct Sequence Channels
Addressing Options PAN ID, Channel and Addresses
2.6. Sensor Gas Karbon Monoksida (MQ-7)
MQ-7 adalah sebuah sensor gas CO2 (karbon dioksida) yang cukup mudah penggunaannya, Sensor ini memiliki fitur sensitivitas yang baik dan selektivitas terhadap gas CO2 , Kelembaban yang rendah dan ketergantungan pada temperatur dan stabilitas yang panjang. Struktur sensor seperti pada Gambar 2.4, komposisi dari sensor ini adalah :
(30)
1. Solid electrolyte layer
2. Gold electrode
3. Platinum Lead
4. Heater
5. Porcelain Tub
6. 100 m double-layer stainless net
7. Nickel dan copper plated ring
8. Bakelite
9. dan copper plated pin ( Hanwei, 2012).
Sumber : Hanwei, 2012.
Gambar 2.10. Struktur Sensor Gas Karbon Monoksida Tabel 2.2. Spesifikasi Sensor Gas Karbon Monoksida
(Hanwei Electronics Co. Ltd.)
Symbol Parameter name Technical Condition Remark
Vc Circuit voltage 5V±0.1 Ac or Dc
VH (H) Heating voltage (high) 5V±0.1 Ac or Dc
VH (L) Heating voltage (low) 1.4V±0.1 Ac or Dc
RL Load resistance Can adjust
RH Heating resistance 33Ω±5% Room temperature
TH (H) Heating time (high) 60±1 seconds
TH (L) Heating time (low) 90±1 seconds
(31)
26
Penelitian dilakukan melalui beberapa tahap penelitian. Tahap pertama adalah merancang desain topologi, menyiapkan dan menentukan jumlah hardware yang dibutuhkan, membuat program software dan yang terakhir adalah pengujian. Perancangan komunikasi data terdiri dari beberapa node. Node dipasang sesuai dengan topologi tree seperti yang ditunjukkan pada gambar 3.1.
Gambar 3.1. Pemasangan Node dengan Topologi Tree
Dari gambar 3.1 dapat dilihat bahwa penelitian ini menggunakan 4 buah
node dan 1 personal computer yang berfungsi sebagai monitoring pencemaran Personal
Computer
COORDINATOR
XBee-Pro Mikrokontroler
NODE 3
XBee-Pro Mikrokontroler C
a t u D a y a
MQ-7
NODE 2
XBee-Pro Mikrokontrol
er MQ-7
NODE 1
XBee-Pro Mikrokontrol
er MQ-7 Backup
Jalur Komunikasi
(32)
udara. Node coordinator berfungsi untuk menerima data dari node 1, 2, dan 3 sedangkan node 1, 2 dan 3 berfungsi untuk mengirimkan nilai respon sensor kandungan karbon monoksida pada udara atau data pemantau catu daya. Node coordinator terdiri dari modul wireless, dan modul mikrokontroler, sedangkan 3 buah node lainnya terdiri dari modul wireless, modul mikrokontroler, dan modul sensor gas karbon monoksida. Pada tugas akhir ini, penulis hanya membahas tentang protokol komunikasi data sebagai proses komunikasi pada node 1, node 2,
node 3 dan node coordinator. Sedangkan untuk aplikasi monitoring pada personal computer, serta perangcangan dan konfigurasi perangkat keras dikerjakan dalam
tugas akhir berjudul “Rancang Bangun Aplikasi Monitoring Sebagai Informasi Gas Karbon Monoksida Pada Jaringan Sensor Network” oleh Ahmad Alfian Ilmi.
Pada salah satu node penulis memberikan rangkaian pemantau catu daya yang berfungsi memberikan informasi pemakaian daya. Nilai yang dihasilkan oleh sensor gas karbon monoksida akan dikirim ke mikrokontroler menggunakan Inter Integrated Circuit (I2C). Data tersebut selanjutnya akan diproses oleh mikrokontroler, data yang telah diproses mikrokontroler kemudian dikirim melalui komunikasi serial ke Xbee-Pro transmintter (Tx). Xbee-Pro Tx akan mengirimkan data menuju node coordinator dengan media wireless melewati beberapa node yang telah diatur sebelumnya. Dari gambar 3.1. proses aliran pengiriman data saat kondisi node 1, 2 dan 3 dalam keadaan aktif ditandai dengan garis panah yang tegas. Data yang berasal dari node 1 akan dikirimkan menuju
node coordinator melalui node 2. Apabila node 2 dalam keadaan tidak aktif terdapat backup jalur komunikasi data yang ditandai dengan garis panah putus-putus. Data yang berasal dari node 1 akan dikirim menuju node coordinator
(33)
melalui node 3. Pada masing-masing node data tersebut akan diterima oleh Xbee-Pro receiver (Rx) yang kemudian akan dikirim ke mikrokontroler melalui komunikasi serial yang bertujuan untuk meneruskan data tersebut agar sampai pada node coordinator. Data pada node coordinator kemudian dikirim menuju
personal computer melalui komunikasi serial. Selanjutnya personal computer
akan menampilkan nilai pencemaran udara yang dihasilkan oleh sensor gas karbon monoksida yang terpasang pada setiap node beserta informasi catu daya yang berasal dari node 3.
3.1. Alat dan Bahan Penelitian
Alat dan bahan yang digunakan dalam penelitian ini adalah sebagai berikut.
1. Power supply digunakan untuk memberi daya pada masing-masing device. 2. Gas karbon monoksida digunakan sebagai bahan penelitian yang akan
dipantau oleh sensor.
3. Bagian elektronik pada setiap node terdapat modul-modul elektronika diantaranya modul sensor gas karbon monoksida, modul komunikasi wireless
802.15.4 Xbee-Pro, serta modul rangkaian pemantau catu daya yang terdapat pada node 3.
4. Peralatan pendukung yang diperlukan adalah multimeter, kabel serial RS232, tang potong, solder, timah, penyedot timah, dan beberapa mur-baut sesuai keperluan.
5. Personal computer digunakan untuk merancang dan membuat program pada masing-masing node
(34)
3.2. Jalan Penelitian
Penelitian ini dikerjakan dalam beberapa langkah sistematis yang saling berurutan. Langkah-langkah yang dilakukan dalam menyelesaikan penelitian ditunjukkan pada gambar 3.2 berikut.
Gambar 3.2. Blok Diagram Langkah-langkah Penelitian
Penelitian dimulai dengan mengumpulkan literatur pendukung dalam merancang dan membuat perangkat keras atau perangkat lunak. Literatur diperoleh dari buku bahan-bahan kuliah dan referensi dari situs-situs internet. Langkah selanjutnya adalah mempersiapkan perangkat keras yang akan digunakan dalam penelitian. Tahap berikutnya adalah konfigurasi dan perancangan perangkat keras yang akan dijelaskan pada sub bab 3.2.2 perancangan perangkat keras. Langkah berikutnya adalah merancang dan membuat perangkat lunak yang akan dijelaskan pada sub bab 3.2.3 perancangan perangkat lunak, kemudian perangkat lunak akan diprogram kedalam modul elektronik dan personal computer. Pengujian pada tiap modul elektronik dan pengujian sistem secara keseluruhan akan dilakukan hingga pada akhirnya penelitian diakhiri dengan pembuatan laporan.
(35)
3.2.1. Studi Literatur
Studi literatur dalam penelitian ini meliputi studi kepustakaan dan penelitian laboratorium. Dengan cara ini penulis berusaha untuk mendapatkan dan mengumpulkan data-data, informasi, konsep-konsep yang bersifat teoritis dari buku bahan-bahan kuliah dan referensi dari internet yang berkaitan dengan permasalahan. Antara lain Wireless Sensor Network (WSN), komunikasi serial
asynchronous (UART), komunikasi serial synchronous (I2C), modul komunikasi
wireless 802.15.4 Xbee-Pro, mikrokontroler AVR, sensor gas karbon monoksida (MQ-7), dan rangkaian pemantau catu daya. Teori dan informasi yang sudah diperoleh merupakan pendukung untuk melakukan langkah selanjutnya yang berhubungan dengan perancangan perangkat keras dan perangkat lunak.
3.2.2. Perancangan Perangkat Keras
Langkah-langkah yang dilakukan dalam perancangan perangkat keras ditunjukkan pada gambar 3.3 berikut.
Gambar 3.3. Blok Diagram Langkah-langkah Perancangan Perangkat Keras Perancangan perangkat keras dimulai dengan membuat rangkaian pemantau catu daya pada node 3. Rangkaian pemantau catu daya dibuat berdasarkan teori yang diperoleh dari beberapa sumber seperti jurnal dan referensi dari internet. Rangkaian pemantau catu daya berfungsi untuk memberikan
(36)
informasi penggunaan daya pada salah satu node. Informasi ini akan dikirim menuju node coordinator yang selanjutnya akan ditampilkan pada personal computer. Langkah selanjutnya adalah konfigurasi modul yaitu menghubungkan beberapa modul antara lain, rangkaian pemantau catu daya, modul sensor gas MQ7 dan modul wireless Xbee-Pro dengan modul minimum sistem. Modul minimum sistem sendiri dibuat untuk mendukung kerja dari microchip ATmega dimana microchip tidak bisa berdiri sendiri melainkan harus ada rangkaian dan komponen pendukung seperti halnya rangakaian catu daya, kristal dan lain sebagainya yang biasanya disebut minimumsistem.
Microchip berfungsi sebagai otak dalam mengolah semua instruksi baik
input maupun output seperti halnya pemproses data input dari sensor atau catu daya yang kemudian menghasilkan output dan mengirimkan data serial ke XBee – Pro Tx atau memproses data yang diterima dari Xbee-Pro Rx seperti yang ditunjukkan pada gambar 3.5.
Gambar 3.4. Blok Diagram Konfigurasi Modul
Pada Tugas Akhir ini penulis membagi rangkaian minimum sistem menjadi 4 (empat) bagian yang terdapat pada masing-masing node. Pada node 1 menggunakan minimum sistem ATmega 8535, node 2 dan node 3 menggunakan minimum sistem ATmega 8, sedangkan pada node coordinator menggunakan minimum sistem ATmega 128.
Modul Gas MQ7
Modul Minimum
Sistem
Modul Wireless Xbee-Pro
(37)
3.2.3. Perancangan Perangkat Lunak
Perancangan perangkat lunak dilakukan untuk merancang sistem pada mikrokontroler agar mendapatkan hasil sesuai dengan yang dibutuhkan. Langkah-langkah yang dilakukan dalam perancangan perangkat lunak ditunjukkan pada gambar 3.10 berikut.
Gambar 3.5. Blok Diagram Langkah-langkah Perancangan Perangkat Lunak Perancangan perangkat lunak dimulai dengan membuat protokol data yang berfungsi untuk membedakan data dari setiap node, kemudian membuat program modul WSN yang berisi program pembacaan sensor gas karbon monoksida serta program komunikasi data agar sistem dapat berjalan sesuai dengan protokol komunikasi data.
A. Protokol Data
Satu paket data yang dikirimkan oleh setiap node menuju station pusat atau node coordinator yang berisi data sensor MQ7 atau data pemantau catu daya yang sebelumnya sudah ditambahkan header dan trailler. Gambar dibawah ini menunjukkan bentuk paket data pada masing-masing node sebelum digabung dengan paket data yang berasal dari node lain.
Gambar 3.6. Bentuk Paket Data Node 1
Gambar 3.7. Bentuk Paket Data Node 2
Header
‘q’
(1-Byte)
Data Sensor Mq7
(3-Byte)
Trailler
‘w’
(1-Byte)
Header
‘z’ atau ‘k’
(1-Byte)
Data Sensor Mq7
(3-Byte)
Trailler
‘x’ atau ‘e’
(1-Byte) Protokol Data Modul WSN Program
(38)
Pada node 3 terdapat data pemantau catu daya dan data sensor MQ7 maka dalam paket data ditambahkan karakter pemisah. Gambar 3.8 menunjukkan bentuk paket data pada node 3.
Gambar 3.8. Bentuk Paket Data Node 3
Pada saat node 2 atau node 3 menerima data sensor yang berasal dari node
1 data tersebut akan dibentuk menjadi satu paket data sebelum data tersebut dikirim. Gambar 3.9 dan gambar 3.10 menunjukkan bentuk paket data pada node
2 dan node 3 setelah digabung dengan data sensor node 1.
Gambar 3.9. Pembentukan Paket Data Node 2Dan Node 1
Gambar 3.10. Pembentukan Paket Data Node 3Dan Node 1
Header dan tralier yang digunakan untuk paket data pada setiap node
tidak sama, hal ini bertujuan untuk membedakan data yang dikirimkan oleh masing-masing node. Tabel 3.1 menunjukkan header dan trailler yang digunakan untuk paket data.
Tabel 3.1. Penggunaan Header Dan Trailler Pada Masing-Masing Node
Header Trailler Fungsi
z x Paket data sensor MQ7 node 1
(apabila node 2 dalam keadaan hidup) k e Paket data sensor MQ7 node 1
(apabila node 2 dalam keadaan mati) q w Paket data sensor MQ7 node 2 h r Paket data sensor MQ7 node 3
Header
‘h’
(1-Byte)
Data Sensor Mq7
(3-Byte)
Pemisah
‘o’
(1-Byte)
Trailler
‘l’ dan ‘r’
(2-Byte) Data
Catu Daya (3-Byte)
Header ‘q’ (1-Byte) Data Sensor Mq7 (3-Byte) Pemisah ‘m’ (1-Byte) Trailler
‘n’ dan ‘w’
(2-Byte) Data
Sensor Node 1
(3-Byte) Header ‘h’ (1-Byte) Data Sensor Mq7 (3-Byte) Pemisah ‘o’ (1-Byte) Pemisah ‘l’ (1-Byte) Data Catu Daya (3-Byte) Trailler
‘n’ dan ‘r’
(2-Byte) Data
Sensor Node 1
(39)
Sebelum pengiriman paket data antar node, bagian pengiriman data akan menunggu request data atau ACK dari node yang ada diatasnya, serta saat aktifasi setiap node akan mengirimkan sebuah karakter ASCII ke node lain yang terhubung yang bertujuan sebagai penanda bahwa node tersebut dalam kondisi aktif dan siap berkomunikasi. Untuk mengetahui hal tersebut dikirimkan beberapa karakter ASCII seperti yang ditunjukkan pada tabel 3.2.
Tabel 3.2. Penggunaan Karakter ASCII Karakter
ASCII Fungsi
! Data ack dari node coordinator menuju node 2 @ Data ack dari node coordinator menuju node 3
# Data ack dari node 2menuju node 1 $ Data ack dari node 3menuju node 1 % Kode aktifasi dari node 3
^ Kode aktifasi dari node 2 & Kode aktifasi dari node 1
Tipe data hasil pembacaan setiap sensor dan pemantau catu daya adalah masing-masing integer (3 Byte). Dalam satu kali pengiriman data serial hanya dapat dilakukan 1 byte, sehingga data pembacaan sensor harus dipisah per 1 byte. Program pemisahan data akan ditunjukkan pada program mikrokontoler masing-masing node.
B. Program Modul WSN
Program mikrokontroler dibuat agar peralatan dapat berjalan sesuai dengan sistem yang diinginkan. Langkah ini dimulai dengan membuat diagram alir yang mewakili sistem kerja peralatan secara global. Pada penelitian ini program mikrokontroler dibagi menjadi 4 (empat) bagian yang terdapat pada masing-masing node.
(40)
B.1. Program Mikrokontroler Node 1
Pada program mikrokontroler node 1 hal pertama yang dilakukan adalah mengambil data sensor gas karbon monoksida kemudian dilakukan pembentukan paket data. Setelah data terbentuk node 1 akan mengunggu data ack yang berasal dari node 2 atau node 3. Jika terdapat data ack mikrokontroler akan mengirimkan paket data menuju node yang memberikan data ack. Gambar 3.11 menunjukkan digram alir program mikrokontoler node 1. Diagram alirini mewakili sistem kerja peralatan node 1 secara global yang masih dapat dipecah dan diperjelas dengan dibuatkan diagram alir tiap-tiap bagian.
START
Inisialisasi Data Sensor
MQ7
Pengambilan Data Sensor
Pembentukan Paket Data
Terima Data
Data ACK
Kirim Paket Data Y
Y T
T
Gambar 3.11. Diagram Alir Program Mikrokontroler Node 1
Dari diagram alir diatas program yang pertama kali dijalankan adalah inisialisasi data sensor gas karbon monoksida. Selama proses inisialisasi mikrokontroler akan mengirimkan sebuah karakter ASCII ‘&’. Mikrokontroler akan mengirimkan sebuah karakter ASCII ke node 2 dan node 3 sebagai penanda bahwa node 1 dalam keadaan aktif dan siap untuk berkomunikasi.
(41)
Selanjutnya mikrokontroler akan membaca serta menyimpan data sensor gas karbon monoksida agar dapat digunakan saat diperlukan.
i2c_start(); // Start Condition
i2c_write(0xE0); // Write to module (alamat I2c ke 1)
i2c_write(0x41); // “Read Sensor” Command address sensor co i2c_stop(); // Stop Condition
delay_us(10); // 10 us delay i2c_start(); // Start Condition
i2c_write(0xE1); // Read from module (alamat baca ke 1) temp1 = i2c_read(1); // Data Sensor
temp2 = i2c_read(0); // Data Sensor i2c_stop(); // Stop Condition sensor = (temp1 * 256) + temp2 ;
I2C start digunakan untuk mengirimkan sinyal start sebagai penanda bahwa mikrokontroler siap berkomunikasi dengan sensor, I2C write (0xE0) digunakan untuk mengakses atau menuliskan alamat pada modul sensor CO yang dituju, I2C write (0x41) digunakan untuk membaca perintah data dari sensor CO dan I2C stop digunakan mengirimkan sinyal stop. Delay_us (10) merupakan jeda yang diberikan sebelum mikrokontroler memulai lagi perintah I2C start. I2C write
(0xE1) digunakan untuk membaca modul sensor CO. Data sensor dimasukkan ke dalam variabel temp1 dan temp2 yang mempunyai tipe data integer. Untuk menghasilkan data sensor diperlukan penjumlahan dari temp1 yang dikalikan 256 kemudian ditambah temp2. Nilai data tersebut dimasukkan kedalam variabel sensor yang mempunyai tipe data integer.
Setiap satu kali pengiriman serial hanya bisa dilakukan dengan 8 bit sedangkan data sensor yang dihasilkan adalah maksimal 10 bit. Agar data sensor dapat dikirim melalui komunikasi serial maka diperlukan proses pembentukan paket data dengan merubah nilai data sensor menjadi data string serta memberikan
header dan trailler sebagai penanda data sensor tersebut berasal dari node 1. Diagram alir proses pembentukan data ditunjukkan pada gambar 3.12.
(42)
Gambar 3.12. Diagram Alir Proses Pembentukan Data
Pada node 1 terdapat 2 pemberian header, yaitu karakter ‘z’ dan karakter
‘k’. Header ini mempunyai fungsi masing-masing seperti yang terdapat pada tabel 3.2. Header‘z’ sebagai penanda data sensor node 1 yang akan dikirimkan ke node
2 dengan trailler ‘x’, sedangkan header ‘k’ sebagai penanda data sensor node 1 yang akan dikirimkan ke node 3 apabila node 2 terdeteksi dalam keadaan tidak aktif dengan trailler ‘e’. Program fungsi proses pembentukan data ditunjukkan halaman lampiran pada listing 1.1.
Setelah selesai pembentukan paket data mikrokontroler akan menunggu data input yang masuk melalui Xbee-Pro Rx, apabila tidak ada data input maka mikrokontroler akan kembali memproses data sensor. Jika terdapat data input dari Xbee-Pro Rx mikrokontroler akan mendeteksi apakah data tersebut merupakan ack yang berasal dari node 2 atau node 3, dengan prioritas utama ack dari node 2 seperti yang ditunjukkan pada gambar 3.13 berikut.
Header ‘z’ Atau ‘k’
Trailler ‘x’ Atau ‘e’
(43)
START
Inisialisasi Data Sensor MQ7
Pengambilan Data Sensor
Pembentukan Paket Data
Terima Data
Temp = ‘#’
Swit = 0 T Temp = getchar
Ack1 ≥ 2
Kirim Paket Data
Ack2 = 0 Swit = 0
Ack1 ++
Temp = ‘$’
Ack2 ≥ 2
Kirim Paket Data
Ack2 ++ T
Y
Y T
T
Y
Y
T
Y
Gambar 3.13. Diagram Alir Proses Menunggu Request Data
Node 1 akan mengirimkan paket data dengan header ‘z’ dan trailler ’x’ apabila menerima ack berupa ‘#’ yang berasal dari node 2 sebanyak lebih dari 2 kali. Jika node 2 terdeteksi dalam keadaan tidak aktif node 1 akan melakukan
switching dengan mengirimkan paket data ke node 3 dengan header ‘k’ dan trailler ‘e’. Program fungsi proses menunggu request data ditunjukkan halaman lampiran pada listing 1.2.
Selain mendeteksi data ack, mikrokontroler node 1 juga mendeteksi
header dan trailler dari node 2 atau node 3. Header dan trailler tersebut mempunyai fungsi tersendiri seperti yang ditunjukkan pada gambar 3.14 berikut.
(44)
START Inisialisasi Data Sensor MQ7 Pengambilan Data Sensor Pembentukan Paket Data Terima Data
Temp = ‘^’ Temp = getchar
T
Y
Temp = ‘m’ Temp = ‘n’ Temp = ‘h’ Temp = ‘r’ Temp = ‘q’ Temp = ‘w’
Swit = 0
Ack2 = 0 Swit = 0 Swit = 0
Swit ≥ 15 Swit ≥ 15 Swit ≥ 15 Swit ≥ 15 Swit ++ Swit ++ Swit ++ Swit ++
Kirim Char ‘&’ Kirim Char ‘&’ Kirim Char ‘&’ Kirim Char ‘&’ Y T T Y T Y T Y Y T T T T Y T Y Y Y Y T Y T
Gambar 3.14. Diagram Alir Proses switching dan Fungsi Beberapa Karakter
Saat dalam kondisi tidak aktif node 2 tidak akan mengirim data ack pada
node 1. Apabila menerima input data selain karaker ‘m’ atau ‘n’ berupa header ‘h’,‘q’ atau trailler ‘r’,‘w’ sebanyak lebih dari 15 kali maka node 1 akan mengirimkan karakter ‘&’ ke node 3. Karakter ‘&’ berfungsi sebagai indikator
switching agar node 3 mengirimkan data ack pada node 1. Apabila node 3 menerima data input‘&’, node 3 akan mengirimkan data ack dengan karakter ‘$’. Apabila mikrokontroler node 1 menerima data input ack berupa ‘$’ yang berasal dari node 3 sebanyak lebih dari 2 kali maka node 1 akan mengirimkan paket data ke node 3 dengan header‘k’ dan trailer ‘e’. Input data header ‘m’ atau trailler‘n’
(45)
berfungsi sebagai penanda bahwa data paket yang dikirimkan sudah diterima oleh
node 2 atau node 3 serta berfungsi sebagai indikator agar node 1 tidak melakukan
switching dan tidak mengirimkan karakter ‘&’ lagi. Sedangkan input data karakter
‘^’ berfungsi sebagai kode aktifasi yang berasal dari node 2 yang menandakan
node 2 dalam keadaan aktif kembali. Program fungsi proses switching ditunjukkan halaman lampiran pada listing 1.3.
B.2. Program Mikrokontroler Node 2
Pada program mikrokontroler node 2 hal pertama yang dilakukan adalah mengambil data sensor gas MQ7 kemudian dilakukan pembentukan paket data. Setelah data terbentuk node 2 akan mengunggu data ack yang berasal dari node coordinator. Jika terdapat data input ack mikrokontroler juga akan mengirimkan data ack ke node 1, apabila menerima paket data dari node 1 mikrokontroler akan mengirimkan paket data node 2 dan paket data dari node 1 menuju node coordinator secara bergantian. Apabila node 1 terdeteksi dalam keadaan tidak aktif, maka node 2 hanya mengirimkan paket datanya sendiri menuju node coordinator. Gambar 3.24 menunjukkan digram alir program mikrokontoler node
2. Diagram alir ini mewakili sistem kerja peralatan node 2 secara global yang masih bisa dipecah dan diperjelas dengan dibuatkan diagram alir tiap-tiap bagian.
(46)
START Inisialisasi Data Sensor MQ7 Pengambilan Data Sensor Pembentukan Paket Data
Terima Data T
Y
Data ACK
Kirim ACK
Node 1
Aktif Kirim Paket Data
Data Node 1
Pembentukan Paket Data
Kirim Paket Data
Delay (1000) T Y Y Y T T
Gambar 3.15. Diagram Alir Program Mikrokontroler node 2
Dari diagram alir diatas program yang pertama kali dijalankan adalah inisialisasi data sensor gas karbon monoksida. Selama proses inisialisasi mikrokontroler akan mengirimkan sebuah karakter ASCII ‘^’.
Mikrokontroler akan mengirimkan sebuah karakter ASCII ke node 1 dan
node coordinator sebagai penanda bahwa node 2 dalam keadaan aktif dan siap untuk berkomunikasi. Selanjutnya mikrokontroler akan membaca serta menyimpan data sensor gas karbon monoksida agar dapat digunakan saat diperlukan.
i2c_start(); // Start Condition
i2c_write(0xE2); // Tulis ke modul DT-SENSE i2c_write(0x41); // Perintah “Read Sensor” i2c_stop(); // Stop Condition
delay_us(10); // delay 10 us i2c_start(); // Start Condition
i2c_write(0xE3); // Baca ke modul DT-SENSE temp1 = i2c_read(1); // Data Sensor MSB temp2 = i2c_read(0); // Data Sensor LSB i2c_stop(); // Stop Condition
(47)
sensor = (temp1*256) + temp2;
Sama halnya seperti yang dilakukan pada node 1, yang membedakan pada
node 2 ini adalah perintah membaca data dari modul sensor CO. Pada node 2 menggunakan perintah i2c_write(0xE2) dan i2c_write(0xE3). i2c_write(0xE2) dan i2c_write(0xE3) merupakan alamat 12C 2 yang
digunakan oleh modul sensor CO.
Selanjutnya merubah data sensor menjadi data string agar dapat kirim melalui komunikasi serial serta memberikan header dan trailler sebagai penanda data sensor tersebut berasal dari node 2 yang fungsinya ditunjukkan pada tabel 3.2. Gambar 3.16 menunjukkan diagram alir proses pembentukan paket data.
Gambar 3.16. Diagram Alir Proses Pembentukan Data
Header ‘q’ merupakan penanda awal data sensor node 2 yang akan dikirimkan ke node coordinator dengan trailler ‘w’. Setelah selesai memberi header mikrokontroler node 2 akan menunggu data input yang masuk melalui Xbee-Pro Rx. Apabila tidak ada data input maka mikrokontroler akan kembali memproses data sensor. Jika terdapat data input dari Xbee-Pro Rx, mikrokontroler akan mendeteksi apakah data tersebut merupakan ack yang berasal dari node coordinator atau data sensor yang berasal dari node 1, seperti yang ditunjukkan
Data Sensor MQ-7
Header ‘q’
Trailler ‘w’
STOP START
Inisialisasi Data sensor MQ-7
Pengambilan Data sensor MQ-7
(48)
pada gambar 3.15. Program fungsi proses pembentukan data ditunjukkan halaman lampiran pada listing 2.1.
Apabila node 2 menerima data input ack berupa karakter ‘!’ yang berasal
dari node coordinator, node 2 juga akan mengirimkan data ack berupa karakter
‘#’ ke node 1. Apabila node 2 sudah mengirim data ack ‘#’ sebanyak lebih dari 10
kali maka node 1 dikatakan dalam keadaan tidak aktif. Saat node 1 terdeteksi dalam keadaan tidak aktif maka node 2 hanya akan mengirimkan data sensornya ke node coordinator saat menerima data input ack, seperti yang ditunjukkan gambar 3.26 berikut.
START
Inisialisasi Data Sensor MQ7
Pengambilan Data Sensor
Pembentukan Paket Data
Terima Data T Y
Temp = getchar
Temp = ‘!’
Flag = 3
Kirim Paket Data
Flag = 1
Ack ≤ 10
Kirim Char ‘#’
Ack ++
Flag = 3 Y
T
T
Y
T
Y T
Y
Gambar 3.17. Diagram Alir Proses Request Data
Saat pertama kali inisialisasi variabel flag diberi nilai awal 1 sedangkan variabel ack diberi nilai awal 0, hal ini bertujuan apabila mikrokontroler menerima data input ack maka mikrokontroler juga akan langsung mengirimkan data ack berupa karakter ‘#’. Proses ini akan berjalan begitu seterusnya apabila
(49)
node 1 dalam keadaan aktif, apabila node 1 dalam keadaan tidak aktif kondisi ini ditandai dengan nilai ack menjadi lebih besar dari 10. Saat nilai ack lebih besar dari 10 maka nilai flag dirubah menjadi 3, hal ini bertujuan saat node 2 menerima data input ack maka node 2 tidak lagi mengirimkan data ack ke node 1 tetapi langsung mengirimkan data sensornya sendiri ke node coordinator. Program fungsi proses request data ditunjukkan halaman lampiran pada listing 2.2.
Saat node 1 dalam keadaan aktif kembali, node 1 akan mengirimkan kode
aktifasi berupa karakter ‘&. Apabila node 2 menerima data input kode aktifasi tersebut nilai variabel flag dan ack akan diubah kembali ke awal, hal ini bertujuan agar proses berjalan kembali seperti semula. Apabila node 2 menerima data input sensor dari node 1, data tersebut akan di proses dan dilakukan pembentukan satu paket data dengan data sensor node 2. Gambar 3.18 menunjukkan proses penerimaan data yang berasal dari node 1.
START
Inisialisasi
Terima Data T
Y
Temp = getchar
Temp = ‘&’
Flag = 1 Ack = 0
Temp = ‘z’ T
Y
T
Y
Ack = 0
Temp = ‘x’
Pembentukan Paket Data
Kirim Paket Data
Delay (1000) T
Y
(50)
Data sensor yang berasal dari node 1 akan digabung dengan data sensor
node 2 dengan melakukan pembentukan paket. Program fungsi proses penerimaan data dari node 1 ditunjukkan pada halaman lampiran listing 2.3. Gambar 3.19 menunjukkan proses pembentukan data sensor yang berasal dari node 1.
Gambar 3.19. Diagram Alir Proses Penggabungan Data
Setelah selesai proses pembentukan data dari node 1, paket data tersebut akan dikirimkan ke node coordinator, seperti yang ditunjukkan pada gambar 3.18 di atas. Program fungsi proses penggabungan data ditunjukkan halaman lampiran pada listing 2.4.
B.3. Program Mikrokontroler Node 3
Pada program mikrokontroler node 3 hal pertama yang dilakukan adalah mengambil data sensor gas MQ7 dan data pemantau catu daya kemudian dilakukan pembentukan paket data. Setelah paket data terbentuk node 3 akan menunggu data ack yang berasal dari node coordinator. Jika terdapat data ack mikrokontroler juga akan mengirimkan data ack ke node 1 apabila node 2 dalam
Data Sensor MQ-7
Header ‘q’
Trailler ‘w’
STOP START
Inisialisasi Data sensor MQ-7
Pengambilan Data sensor MQ-7
Data Sensor node 1
Pemisah ‘m’
(51)
keadaan tidak aktif, jika menerima paket data dari node 1 mikrokontroler akan melakukan penggabungan paket data node 3 dan paket data dari node 1 kemudian dikirim menuju node coordinator. Apabila node 1 terdeteksi dalam keadaan tidak aktif, node 3 hanya mengirimkan paket datanya sendiri ke node coordinator. Gambar 3.20 menunjukkan diagram alir program mikrokontoler node 3. Diagram alir ini mewakili sistem kerja peralatan node 3 secara global yang masih bisa dipecah dan diperjelas dengan dibuatkan diagram alir tiap-tiap bagian.
START Inisialisasi Node 2 Aktif T Y Pengambilan Data Sensor Pengambilan Catu Daya Pembentukan Paket Data Terima Data Data ACK
Kirim Paket Data
Delay (1000)
Node 1 Aktif
Kirim ACK
Kirim Paket Data
Delay (1000)
Data Node 1
Pembentukan Paket Data
Kirim Paket Data
Delay (1000) T Y T Y T Y Y T
Gambar 3.20. Diagram Alir Program Mikrokontroler node 3
Dari diagram alir diatas program yang pertama kali dijalankan adalah inisialisasi data sensor gas karbon monoksida serta inisialisasi data pemantau catu daya. Selama proses inisialisasi mikrokontroler akan mengirimkan sebuah karakter ASCII.
(52)
delay_ms (2000) ; putchar ('%');
Mikrokontroler akan mengirimkan sebuah karakter ASCII ke node 1 dan
node coordinator sebagai penanda bahwa node 3 dalam keadaan aktif dan siap untuk berkomunikasi. Selanjutnya mikrokontroler akan membaca serta menyimpan data dari rangkain catu daya dan data sensor gas karbon monoksida agar dapat digunakan saat diperlukan.
volt = read_adc(0); //membaca data dari rangkain catu daya if (volt >= 254)
{
PORTB = PORTB | 0x0f; }
else if (volt >= 244 && volt < 254) {
PORTB = (PORTB & 0xf0) | 0x07; }
else if (volt >= 234 && volt < 244) {
PORTB = (PORTB & 0xf0) | 0x03; }
else {
PORTB = (PORTB & 0xf0) | 0x01; }
////////////////////////////////////////////////////////// i2c_start(); // Start Condition
i2c_write(0xE0); // Tulis ke modul DT-SENSE i2c_write(0x41); // Perintah “Read Sensor” i2c_stop(); // Stop Condition
delay_us(10); // delay 10 us i2c_start(); // Start Condition
i2c_write(0xE1); // Baca ke modul DT-SENSE temp1 = i2c_read(1); // Data Sensor MSB temp2 = i2c_read(0); // Data Sensor LSB i2c_stop(); // Stop Condition
sensor = (temp1*256) + temp2;
Selain menyimpan data dari rangkain catu daya, mikrokontroler juga akan menampilkan data tersebut pada LED melalui port B sebagai indikator dari pemakain daya seperti yang terdapat pada tabel 3.1. Perintah pembacaan sensor CO pada node 3 sama seperti yang ada pada node 1, dimana alamat I2C yang
(53)
digunakan adalah I2C 1, dengan perintah i2c_write(0xE0) dan i2c_write(0xE1).
Selanjutnya merubah data sensor dan data output catu daya menjadi data
string agar dapat kirim melalui komunikasi serial serta memberikan header dan
trailler sebagai penanda data tersebut berasal dari node 3 yang fungsinya ditunjukkan pada tabel 3.2, seperti yang ditunjukkan gambar 3.21 berikut.
Gambar 3.21. Diagram Alir Proses Pembentukan Data Catu Daya dan Sensor MQ7
Header ‘h’ merupakan penanda awal paket data node 3 yang akan dikirimkan ke node coordinator dengan trailler ‘w’. Setelah selesai memberi header mikrokontroler node 3 akan menunggu data input yang masuk melalui Xbee-Pro Rx, apabila tidak ada data input maka mikrokontroler akan kembali memproses data sensor dan data catu daya. Jika terdapat data input dari Xbee-Pro Rx, mikrokontroler akan mendeteksi apakah data tersebut merupakan ack yang berasal dari node coordinator atau paket data yang berasal dari node 1, seperti
Data Catu Daya
Header ‘h’
Trailler ‘l’ dan ‘r’
STOP START
Pengambilan Data sensor MQ-7
Data Sensor node 3
Pemisah ‘o’ Pengambilan Data catu daya
(54)
yang ditunjukkan gambar 3.20. Program fungsi proses pembentukan data ditunjukkan halaman lampiran pada listing 3.1.
Apabila node 3 menerima data inputack berupa karakter ‘@’ yang berasal
dari node coordinator maka node 3 juga akan mengirimkan data ack berupa
karakter ‘$’ ke node 1 apabila node 2 dalam keadaan tidak aktif. Apabila node 3
sudah mengirim data ack ‘$’ sebanyak lebih dari 10 kali maka node 1 dikatakan dalam keadaan tidak aktif. Saat node 1 terdeteksi dalam keadaan tidak aktif maka
node 3 hanya akan mengirimkan data output catu daya dan data sensor ke node coordinator saat menerima data input ack, seperti yang ditunjukkan gambar 3.22 berikut.
START
Inisialisasi
T
Y Mikrokontroler
Terima Data
Temp = getchar
Temp = ‘@’
Flag = 3
Kirim Paket Data
Delay (1000)
Flag = 1
Ack ≤ 10
Kirim
Char ‘$’
Ack ++
Flag = 3 T
Y
T
Y
T
Y T
Y
(55)
Saat pertama kali inisialisasi variabel flag diberi nilai awal 1 sedangkan variabel ack diberi nilai awal 0, hal ini bertujuan apabila mikrokontroler menerima data input ack maka mikrokontroler juga akan langsung mengirimkan
data ack berupa karakter ‘$’. Proses ini akan berjalan begitu seterusnya apabila
node 1 dalam keadaan aktif dan node 2 dalam keadaan tidak aktif, apabila node 1 dalam keadaan tidak aktif kondisi ini ditandai dengan nilai ack menjadi lebih besar dari 10. Saat nilai ack lebih besar dari 10 maka nilai flag dirubah menjadi 3, hal ini bertujuan saat node 3 menerima data input ack maka node 3 tidak lagi mengirimkan data ack ke node 1 tetapi langsung mengirimkan datanya sendiri ke
node coordinator. Program fungsi proses request data ditunjukkan halaman lampiran pada listing 3.2.
Apabila node 1 dalam keadaan aktif kembali, node 1 akan mengirimkan
kode aktifasi berupa karakter ‘&’ saat pertama kali inisialisasi. Apabila node 2 menerima data input kode aktifasi tersebut nilai variabel flag dan ack akan diubah kembali ke awal, hal ini bertujuan agar proses berjalan kembali seperti semula. Apabila node 3 menerima data input sensor dari node 1, node 3 akan mendeteksi paket data yang dikirimkan, apakah berupa header ‘z’ dan trailler ‘x’ atau header ‘k’ dan trailler ‘e’. Apabila paket data yang dikirim mempunyai header ‘z’ dan trailler ‘x’ nilai flag akan diubah menjadi 1, hal ini sebagai penanda bahwa node 2 dalam keadaan aktif. Saat node 3 menerima data input ack dari node coordinator, node 3 tidak perlu mengirimkan data ack ke node 1 tetapi langsung mengirimkan paket datanya. Sedangkan jika paket data yang dikirim mempunyai header ‘k’ dan trailler ‘e’ data tersebut akan di proses dan digabung menjadi satu paket data. Gambar 3.23 menunjukkan proses penerimaan data yang berasal dari node 1.
(56)
START
Inisialisasi
Y Rx_counter ≠ 0
Temp = getchar
Temp = ‘&’
Flag = 1 Ack = 0
Temp = ‘k’ Temp = ‘e’ Temp = ‘z’ Temp = ‘x’
Ack = 0 Pembentukan
Paket Data
Kirim Paket Data
Delay (1000)
Flag = 3 Ack = 0
Flag = 3 Ack = 0 T
T
Y
T
Y Y
T T
Y Y
T
Gambar 3.23. Diagram Alir Proses Penerimaan Data Dari Node 1
Paket data yang berasal dari node 1 dengan header ‘k’ dan trailler ‘e’ akan diberikan pembentukan data dengan cara digabung dengan paket data node 3. Program fungsi proses penerimaan data dari node 1 ditunjukkan halaman lampiran pada listing 3.3. Gambar 3.24 menunjukkan proses penggabungan data menjadi satu paket data.
(57)
Gambar 3.24. Diagram Alir Proses Penggabungan Paket Data
Setelah selesai proses pembentukan data, paket data tersebut akan dikirimkan ke node coordinator, seperti yang ditunjukkan pada gambar 3.30 di atas. Program fungsi proses pembentukan data dari node 1 ditunjukkan halaman lampiran pada listing 3.4.
B.4. Program Mikrokontroler Node Coordinator
Pada program mikrokontroler node coordinator hal pertama yang dilakukan adalah mengirimkan request data atau ack ke node yang ada dibawahnya yaitu node 2 dan node 3. Setelah mengirimkan data ack mikrokontroler node coordinator akan menunggu data input yang masuk melalui Xbee-Pro Rx, apabila tidak ada data input maka mikrokontroler akan mengirimkan kembali request data atau ack ke node 2 dan node 3. Jika terdapat data input dari Xbee-Pro Rx, mikrokontroler akan menyeleksi paket data tersebut
Data Catu Daya
Header ‘h’
Trailler ‘n’ dan ‘r’
STOP START
Pengambilan Data sensor MQ-7
Data Sensor node 1
Pemisah ‘o’ Pengambilan Data catu daya
Data Sensor node 3
Pemisah ‘l’
(58)
kemudian dibentuk kembali paket data berdasarkan header dan trailler yang berasal dari masing-masing node yang selanjutnya akan dikirimkan mennuju
personal computer. Gambar 3.25 menunjukkan diagram alir program mikrokontoler node coordinator. Diagram alirini mewakili sistem kerja peralatan
node coordinator secara global yang masih bisa dipecah dan diperjelas dengan dibuatkan diagram alir tiap-tiap bagian.
START
Inisialisasi
T Mikrokontroler
Kirim ACK
Terima Data
Data Node 2
Kirim Data ke PC
Data Node 3
Kirim Data ke PC Y
T
Y
T
Y
Gambar 3.25. Diagram Alir Program Mikrokontroler Node Coordinator
Dari diagram alir diatas program yang pertama kali dijalankan adalah mengirimkan request data atau ack ke node yang ada dibawahnya. Terdapat 2 (dua) proses request data, yaitu request data ke node 2 dan node 3 dengan prioritas utama node 2 seperti yang ditunjukkan gambar 3.26 berikut.
(59)
START
Inisialisasi
T Mikrokontroler
Flag = 1
Ack ≤ 20
Kirim Char ‘!’
Delay (1000)
Ack1 ++ G++
J ≤ 20
Flag = 3 Ack2 = 0
Node 2 Tidak Aktif
Flag = 1 Ack1 = 20
J = 0
Flag = 3
Ack2 ≤ 20
Kirim Char ‘@’
Delay (1000)
Ack2 ++ J ++
G ≤ 20
Flag = 1 Ack1 = 0
Node 3 Tidak Aktif
Flag = 3 Ack2 = 20
G = 0 T Y Y T Y T Y T Y T Y
Gambar 3.26. Diagram Alir Proses Request Data
Saat inisialisasi variabel flag diberi nilai awal 1 dan ack1 diberi nilai awal 0 hal ini berfungsi agar mikrokontroler mengirimkan data ack ke node 2 terlebih dahulu. Pertama kali node coordinator akan mengrimkan ack ‘!’ ke node 2, kemudian dilanjutkan ke node 3. Jika node coordinator sudah mengirimkan data
ack ‘!’ lebih dari 20 kali maka node 2 dikatakan dalam keadaan tidak aktif. Jika
node 2 terdeteksi dalam keadaan tidak aktif selanjutnya node coordinator akan
mengirimkan ack ‘@’ ke node 3. Sebaliknya jika node coordinator sudah mengirimkan data ack ‘@’ lebih dari 20 kali maka node 3 dikatakan dalam keadaan tidak aktif. Jika node 2 dan node 3 terdekteksi dalam keadaan aktif, maka
node coordinator akan mengulangi mengirim ack ‘!’ sebanyak 21 kali dan selanjutnya mengirim ack ‘@’ sebanyak 21 kali juga, seterusnya seperti itu.
Selanjutnya mikrokontroler node coordinator akan menunggu data input
yang masuk melalui Xbee-Pro Rx, apabila tidak ada data input maka mikrokontroler akan kembali mengirimkan data ack ke node 2 dan node 3. Jika
(1)
4.6. Pengujian Jarak Akses Xbee-Pro 4.6.1. Hasil Pengujian
Tabel 4.6. Hasil Pengujian Jarak akses XBee-Pro Antar Node No. Jarak
(Meter) Keterangan
1. 10 Ok
2. 20 Ok
3. 30 Ok
4. 40 Ok
5. 50 Ok
6. 55 Gagal
7. 60 Gagal
Tabel 4.7. Hasil Pengujian Jarak Akses Maksimal XBee-Pro No.
Jarak (Meter) Jarak (Meter) Total Jarak (Meter) Keterangan Node 1 Node 2 Node 2 Node Coor
1 10 10 20 Ok
2 20 20 40 Ok
3 30 30 30 Ok
4 40 40 80 Ok
5 50 50 100 Ok
6 55 55 110 Gagal
7 60 60 120 Gagal
4.6.2. Pembahasan
Jarak akses antar node dalam penelitian ini adalah 50m dengan kondisi LOS. Total jarak akses maksimal node yang dapat dijangkau dalam keseluruhan node adalah 100m dengan kondisi LOS seperti yang ditunjukkan pada tabel 4.6 dan tabel 4.7.
Dari pengujian yang dilakukan pada sub bab 3.3.3 menjelaskan bahwa pengujian jarak akses Xbee-Pro dapat diketahui jarak akses maksimal yang dapat dijangkau keseluruhan node sesuai dengan indikator keberhasilan tabel 3.7.
(2)
73
4.7. Pengujian Keseluruhan Sistem 4.7.1. Hasil Pengujian
Hasil pengujian keseluruhan sistem dapat dilihat pada tabel 4.8 berikut. Tabel 4.8. Proses Aliran Data Keseluruhan Sistem
Kondisi Node
Proses Aliran Pengiriman Data Status
1 2 3
Active Active Active Node 1 ke node 2, node 2 dan node 3 ke
node coordinator, node coordinator Berhasil
Active Down Active Node 1 ke node 3, node 3 ke node
coordinator, node coordinator Berhasil
Active Active Down Node 1 ke node 2, node 2 ke node
coordinator, node coordinator Berhasil
Down Active Active node 2 dan node 3 ke node coordinator,
node coordinator Berhasil
4.7.2. Pembahasan
Data yang dihasilkan oleh sensor gas karbon monoksida yang dikirim oleh masing-masing node menuju node coordinator dapat berjalan sesuai dengan protokol komunikasi dan topologi yang diberikan. Saat kondisi semua node dalam keadaan aktif nilai respon sensor MQ-7 terhadap kandungan gas karbon monoksida yang dihasilkan oleh node 1 akan dikirim menuju node 2, kemudian node 2 akan mengirimkan data tersebut menuju node coordinator. Apabila node 2 dalam keadaan tidak aktif terhadap backup jalur komunikasi data, data yang berasal dari node 1 akan dikirim menuju node coordinator melalui node 3 seperti yang ditunjukkan pada tabel 4.10.
Dari pengujian yang dilakukan pada sub bab 3.3.4 menjelaskan bahwa pengujian keseluruhan sistem dapat berjalan dengan baik seperti yang ditunjukkan
(3)
74 5.1. Kesimpulan
Kesimpulan dari penelitian ini adalah sebagai berikut.
1. Komunikasi nirkabel dengan topologi tree telah berjalan sesuai dengan protokol komunikasi yang dibuat. Hal ini ditunjukkan dengan adanya backup jalur komunikasi data apabila salah satu node mengalami kegagalan sistem. 2. Jarak maksimal yang dapat dijangkau untuk pengiriman data pada
masing-masing node adalah 50m. Dengan menerapkan topologi tree, jarak maksimal yang dapat dijangkau oleh keseluruhan sistem adalah 100m.
3. Program mikrokontroler untuk membaca nilai yang dihasilkan oleh sensor gas karbon monoksida berhasil diaplikasikan. Hal ini ditunjukkan dengan adanya perubahan nilai yang ditampilkan pada LCD.
4. Program mikrokontroler untuk rangkaian pemantau catu daya telah berhasil diaplikasikan. Hal ini ditunjukkan dengan indikator LED yang bekerja sesuai dengan kondisi tegangan power supply yang diberikan, serta mampu mengirim informasi tersebut menuju personal computer dengan rata-rata error sebesar 0,03.
5.2. Saran
Saran yang diberikan untuk mengembangkan penelitian ini adalah sebagai berikut.
(4)
75
1. Pada tiap node dapat ditambahkan jenis sensor gas yang lain agar informasi yang berikan menjadi lebih beragam, serta ditambahkan RTC (Real Time Clock) agar waktu dapat diketahui pada setiap proses komunikasi.
2. Untuk mengetahui kebenaran nilai yang dihasilkan oleh sensor gas karbon monoksida dapat dilakukan perbandingan dengan melakukan pengukuran menggunakan gas detector yang telah teruji.
3. Rangkaian pemantau catu daya dapat ditambahkan pada setiap node agar kondisi catu daya pada masing-masing node dapat terpantau dengan baik. 4. Protokol komunikasi data dapat dilakukan secara dinamis agar node mampu
mencari jalan terbaik dengan parameter tertentu (signal, catu daya, dll.) ketika salah satu node mengalami kegagalan sistem.
(5)
76
Mittal, R., Bathia, M.P.S. 2010. Wireless Sensor Networks for Monitoring the Environmental Activities. IEEE Journals.
Hill, R. Szewczyk, A. Woo, S. Hollar, D. Culler, and K. Pister. 2000. System Architecture Directions for Networked Sensors. ASPLOS.
Jason L. H. 2003. System Architecture for Wireless Sensor Networks. Dissertation. University of California Berkeley. United State of America.
ATMEL Corporation. 2005, ATmega8, (Online). (http://www.atmel.com , diakses 15 Maret 2013 ).
Digi International. 2009. XBee®/XBee-PRO® RF Modules. Minnesota, USA.
Hanwei Electronics. MQ-7 Semiconductor Sensor for Carbon Monoxide. Zhengzhou, China.
Ismail, M., Sanavullah, M. Y. 2010. Security Topology In Wireless Sensor Networks With Routing Optimisation. IEEE Journals.
Wardhana, Wisnu Arya. 1999. Dampak Pencemaran Lingkungan. Yogyakarta: Andi Yogyakarta.
Sugiarti. 2010. Gas Pencemar Udara Dan Pengaruhnya Bagi Kesehatan Manusia. Chemica Jurnal.
Kurniawan, Agus. 2010. Mengenal Wireless Sensor Network. Jakarta: PCMedia. Musbikhin, 2011, Komunikasi Serial pada 8051, (online).
http://www.musbikhin.com/komunikasi-serial-pada-8051, diakses 15 Maret 2014.
(6)
77
Andrianto, Heri. 2008. Pemrograman Mikrokontroler AVR ATmega16 menggunakan Bahasa C CodeVision AVR. Bandung : Informatika.
Santosa, Insap. 1996. Komunikasi Data. Yogyakarta: Andi Yogyakarta.
Susilo, Deddy. 2010. 48 Jam Kupas Tuntas Mikrokontroler MCS51&AVR. Yogyakarta: Andi yogyakarta.
Tanutama, Lucas. 1989. Komunikasi Data. Jakarta: Elex Media Computindo. E, I. M., Sugiarto, B., & Sakti, I. 2009. Rancang Bangun Sistem Monitoring
Kualitas Udara Menggunakan Teknologi Wireless Sensor Network (WSN). Jakarta: INKOM.