TA : Rancang Bangun Protokol Komunikasi Data Pada Wireless Sensor Network Dengan Topologi Tree Untuk Memantau Gas Karbon Monoksida.

(1)

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.


Dokumen yang terkait

Perbandingan Kadar Karbon Monoksida (CO) dan Nitrogen Dioksida (NO2) di Udara Ambien Berdasarkan Keberadaan Pohon Angsana (Pterocarpus indicus) di Beberapa Jalan Raya di Kota Medan Tahun 2012

4 87 89

Analisis Karbon Monoksida (CO) Dalam Emisi Gas Buang Kendaraan Bermotor Dengan Sensor Gas Semikonduktor

3 83 75

Rancang Bangun Wireless Sensor Network Berbasis Topologi Tree-Like Mesh untuk Sistem Pemantauan Polusi Udara

1 11 53

TA : Rancang Bangun Aplikasi Monitoring Sebagai Informasi Gas Karbon Monoksida Pada Jaringan Sensor Nirkabel.

2 12 72

TA : Rancang Bangun Aplikasi Pemantau Data Wireless Sensor Network Untuk Peringatan Dini Terhadap Banjir.

2 13 81

ANALISIS DAN SIMULASI WIRELESS SENSOR NETWORK (WSN) UNTUK KOMUNIKASI DATA MENGGUNAKAN PROTOKOL ZIGBEE ANALYSIS AND SIMULATION OF WIRELESS SENSOR NETWORK (WSN) FOR DATA COMMUNICATION USING ZIGBEE PROTOCOL

0 0 8

IMPLEMENTASI DAN ANALISIS JARINGAN SENSOR NIRKABEL SEBAGAI ALAT PENDETEKSI KEBOCORAN TABUNG GAS ELPIJI MENGGUNAKAN TOPOLOGI CLUSTER-TREE DENGAN 7 TITIK Implementation and Analysis of Wireless Sensor Network as LPG Gas Tube Leak Detector Using Cluster-Tree

0 0 8

Rancang Bangun Sensor Node pada Wireless Sensor Network Menggunakan Deret Sensor Gas dan Jaringan Syaraf Tiruan untuk Mendeteksi Kebakaran Hutan

0 0 6

Implementasi Protokol Routing Directed Diffusion Pada Wireless Sensor Network Menggunakan Media Komunikasi RF

0 1 8

Implementasi High Availability pada Gateway Wireless Sensor Network dengan Protokol Komunikasi Message Queuing Telemetry Transport

0 0 10