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

(1)

TUGAS AKHIR

Disusun Oleh :

Nama : Budi Hari Nugroho

NIM : 09.41020.0018

Program : S1 (Strata Satu)

Jurusan : Sistem Komputer

SEKOLAH TINGGI

MANAJEMEN INFORMATIKA & TEKNIK KOMPUTER SURABAYA


(2)

v

Banjir sering melanda beberapa wilayah di Indonesia setiap tahunnya

menjadi kerugian yang cukup besar bagi warga yang terkena banjir. Karena alasan

inilah perlu dirancang alat pendeteksi banjir jarak jauh, tidak hanya meningkatkan

keakuratan pendeteksian pada banjir namun nantinya bisa dipantau secara real timesehingga memberikan siaga banjir disaat yang tepat.

Pemantauan ketinggian air sungai secara real time ini menggunakan teknologi Wireless Sensor Network (WSN). WSN adalah suatu infrastruktur jaringan wireless yang menggunakan sensor untuk memonitor kondisi fisik atau kondisi lingkungan yang dapat terhubung ke jaringan. Setiapnodedalam WSN ini terdiri dari dengan modul mikrokontorler arduino uno, Xbee series 2 sebagai komunikasi nirkabel, dan sensor ultrasonik PING dan RTC (Real Time Clock).

Dengan penggunaan teknologi WSN untuk peringatan dini terhadap banjir

ini maka dapat menghasilkan sistem yang memudahkan masyarakat dalam

mengetahui kapan akan terjadi banjir. Pengukuran ketinggian air dengan sensor

ultrasonik PING memiliki presentase kesalahan antara 2.09% sampai dengan

2.56%. Dengan hasil tersebut sistem ini dapat berjalan dengan baik dengan tingkat


(3)

viii DAFTAR ISI

Halaman

ABSTRAK ... v

KATA PENGANTAR ... vi

DAFTAR ISI ... viii

DAFTAR TABEL ... xi

DAFTAR GAMBAR ... xii

DAFTAR LAMPIRAN ... xiv

BAB I PENDAHULUAN ... 1

1.1 Latar Belakang ... 1

1.2 Rumusan Masalah ... 2

1.3 Batasan Masalah ... 3

1.4 Tujuan Masalah ... 4

1.6 Sistematika Penulisan ... 4

BAB II LANDASAN TEORI ... 6

2.1 Wireless Sensor Network (WSN) ... 6

2.2 Arduino... 8

2.2.1 Arduino Uno SMD R3 ... 8

2.2.2 Daya (Power) ... 10

2.2.3 Memori... 11

2.2.4 Input dan Output ... 11

2.3 Software Arduino IDE ... 12

2.4 Bahasa Pemograman Arduino ... 14


(4)

ix

2.6 Real Time Clock (RTC) ... 22

2.7 Xbee Series 2 Chip Antenna dan Xbee ProSeries 2 Wire Antenna .. 23

2.8 Komunikasi Serial Xbee Series 2 ... 25

2.9 AT / Transparent Mode ... 25

2.10 Coordinator, Router, dan End Device ... 25

2.11 Xbee USB Adapter dan Software X-CTU... 26

2.12 Topologi Point to Point ... 33

2.13 Topologi Point to Multipoint ... 34

2.14 Xbee Shield ... 34

BAB III METODE PENELITIAN DAN PERANCANGAN SISTEM ... 36

3.1 Metode Penelitian ... 36

3.1.1 Input data ... 37

3.1.2 Bagian Proses ... 38

3.1.3 Bagian output ... 39

3.2 Perancangan Sistem... 39

3.3 Desain Topologi ... 40

3.4 Hardware ... 41

3.5 Pemrogaman mikrokontroler Arduino Uno pada Software ArduinoIDE ... 44

3.5.1 Format Penulisan Pesan ... 44

3.5.2 Membuat Skrip untuk Node router 1 ... 45

3.5.3 Membuat Skrip untuk Node router 2 ... 51


(5)

x

BAB IV HASIL DAN PEMBAHASAN ... 59

4.1 Kebutuhan Hardware dan Software ... 59

4.1.1 Kebutuhan Perangkat Keras (Hardware) ... 59

4.1.2 Kebutuhan Perangkat Lunak (Software) ... 59

4.2 Pengujian Sistem ... 59

4.3 Pengujian Output Sensor Ultrasonik PING dan Modul RTC ... 60

4.3.1 Peralatan... 60

4.3.2 Prosedur Pengujian ... 60

4.3.3 Hasil Pengujian ... 61

4.4 Pengujian Protokol Komunikasi ... 69

4.4.1 Peralatan... 69

4.4.2 Prosedur Pengujian ... 69

4.4.3 Hasil Pengujian ... 70

4.5 Pengujian Jarak Kemampuan Pengiriman dan Penerimaan Xbee ... 77

4.5.1 Peralatan... 77

4.5.2 Prosedur Pengujian ... 77

4.5.3 Hasil Pengujian ... 78

BAB V KESIMPULAN DAN SARAN ... 80

5.1 Kesimpulan ... 80

5.2 Saran ... 81


(6)

1 1.1 Latar Belakang

Telekomunikasi merupakan teknik pengiriman atau penyampaian

informasi dari satu tempat ke tempat yang lain. Dewasa ini kebutuhan informasi

yang semakin meningkat mengharuskan informasi tersebut dapat diketahui secara

real time atau pada saat itu juga. Didorong dari kebutuhan-kebutuhan realtime

inilah dibutuhkan komunikasi yang dapat mengirimkan data secara cepat dan terus

menerus. Penggunaan wireless atau jaringan nirkabel bertujuan untuk menggantikan kabel yang menghubungkan terminal komputer dengan jaringan,

sehingga tetap dapat berkomunikasi dengan kecepatan transmisi yang memadai.

Wireless atau jaringan nirkabel ini menggunakan gelombang radio sebagai media transmisinya.

Banjir yang melanda beberapa wilayah di Indonesia setiap tahunnya

menjadi kerugian yang cukup besar bagi warga yang terkena banjir. Banjir yang

terkadang datang dimalam hari disaat warga sedang tertidur lelap membuat warga

tidak bisa siaga ketika bencana datang. Tentu saja ini membuat warga tidak hanya

mengalami kerugian harta dan benda namun bisa kehilangan nyawa orang yang

dicintai karena terjebak banjir yang datang tiba-tiba. Karena alasan inilah perlu

dirancang alat pendeteksi banjir jarak jauh, tidak hanya meningkatkan keakuratan

pendeteksian pada banjir namun nantinya bisa dipantau secara real timesehingga memberikan siaga banjir disaat yang tepat.

Pada penelitian sebelumnya telah banyak ditemukan alat peringatan dini


(7)

data langsung ditampilkan di LCD (Arief, 2011). Pada tugas akhir ini,

perancangan pendeteksi ketinggian air sungai jarak jauh yang dikonsepkan untuk

memberikan informasi kepada para penggunanya untuk memperoleh informasi

waktu nyata (real time) perubahan tentang keadaan atau situasi ketinggian air sungai pada saat itu juga. Pemantauan ketinggian air sungai secara real time ini menggunakan teknologi Wireless Sensor Network (WSN). WSN adalah suatu infrastruktur jaringan wireless yang menggunakan sensor untuk memonitor kondisi fisik atau kondisi lingkungan yang dapat terhubung ke jaringan. Masing–

masing node dalam jaringan sensor nirkabel biasanya dilengkapi dengan radio

tranciever atau alat komunikasiwireless lainnya (Xbee series 2), mikrokontroler, dan sumber energi, biasanya baterai. Pendeteksi banjir jarak jauh ini akan

mendeteksi perubahan-perubahan ketinggian air dan memberikan peringatan dini

banjir dengan menggunakan modul sensor ultrasonik atau modul ping yang memanfaatkan gelombang ultrasonik yang dipantulkan kemudian menghitung

jarak gelombang yang terpantulkan kembali ketika mengenai benda penghalang

(menyentuh permukaan air), dan data yang tercatat akan ditambahkan catatan

waktu dengan tambahan rangkaian atau modul RTC (Real Time Clock) kemudian data diolah oleh mikrokontroller dan setelah itu dikirimkan ke node lainnya melaluiwireless.

1.2 Rumusan Masalah

Berdasarkan latar belakang di atas, dapat dirumuskan permasalahan yaitu:

1. Bagaimana merencanakan dan membangun jaringan WSN sebagai


(8)

2. Bagaimana merencanakan dan membangun sistem untuk mendapatkan

data ketinggian air sungai secarareal timedari tempat pengukuran?

1.3 Batasan Masalah

Batasan masalah dari pembahasan tugas akhir ini adalah :

1. Menggunakan modul mikrokontroller Arduino Uno.

2. Mengukur ketinggian air menggunakan sensor ultrasonik PING.

3. Menggunakan modul Xbee series 2 sebagai komunikasi wireless dan pengiriman data dengan jarak maksimum 100 meter.

4. Menggunakan modulReal Time Clock(RTC) sebagai pencatatan waktu. 5. Menggunakan software arduino IDE untuk memprogram mikrokontroler

pada arduino uno.

6. Menggunakan software X-CTU untuk menkonfigurasi modul Xbee series

2 dalam mode AT.

7. Bahasa pemrograman menggunakan bahasa C/C++ pada arduino IDE.

8. Mengukur ketinggian air pada prototipe dengan ketinggian maksimal 50

centimeter.

9. Landasan teori dan bahasan tentang arduino uno, sensor ultrasonik PING,

Xbee series 2 dan RTC dibatasi pada prinsip penggunaannya, bukan pada rincian komponen yang ada didalamnya maupun cara pembuatan rangkaian

tersebut.

10. Untuk keperluan uji coba sistem, akan digunakan prototipe ketinggian air


(9)

1.4 Tujuan Masalah

Dalam rancang bangun WSN untuk peringatan dini terhadap banjir ini,

bertujuan untuk :

Merencanakan dan membangun jaringan WSN sebagai perangkat pendukung

untuk mengetahui ketinggian air sungai secara waktu nyata sebagai sistem

peringatan dini terhadap banjir.

1.6 Sistematika Penulisan

Pembahasan Tugas Akhir ini secara Garis besar tersusun dari 5 (lima)

bab, yaitu diuraikan sebagai berikut:

BAB I. PENDAHULUAN

Pada Bab ini akan dibahas mengenai latar belakang masalah, batasan

masalah, tujuan penulisan, dan sistematika penulisan.

BAB II. LANDASAN TEORI

Pada Bab ini akan dibahas teori penunjang dari permasalahan, yaitu

mengenai WSN, Arduino Uno, software arduino IDE, ZigBee (Xbee

series 2) mode AT, software X-CTU, sensor ultrasonik PING, dan modul RTC.

BAB III. METODE PENELITIAN DAN PERANCANGAN SISTEM

Pada Bab ini akan dibahas tentang blog diagram sistem WSN serta

metode yang dilakukan dalam perancangan sistem peringatan dini

banjir. Meliputi diagram alur proses pengukuran ketinggian air,

pembacaan tanggal serta waktu, pengirimin atau pembacaan data dan

skripsoftwarearduino IDE untuk pembacaan sensor ultrasonik PING, modul RTC dan modul mikrokontroller arduino uno untuk mengukur


(10)

ketinggian air serta mencatat waktu saat kejadian. Kemudian kedua

data tersebut dikirimkan melalui wireless (Xbee series 2), dan konfigurasi Xbeeseries2 dalam mode AT padasoftwareX-CTU BAB IV. HASIL DAN PEMBAHASAN

Pada Bab ini akan dibahas mengenai pengujian pengukuran tinggi air

pada prototipe dengan sensor ultrasonik PING dari nodesensor 1 dan

node sensor 2 bersama waktu yang dicatat oleh RTC. Kedua data tersebut kemudian akan dikirimkan ke node coordinator dan ditampilkan pada serial monitor pada software arduino IDE.

BAB V. KESIMPULAN DAN SARAN

Berisi kesimpulan yang didapat dari hasil penelitian berdasarkan

rumusan masalah serta saran untuk perkembangan penelitian


(11)

6 2.1 Wireless Sensor Network (WSN)

Wireless Sensor Network(WSN) atau jaringan sensor nirkabel merupakan suatu jaringan nirkabel yang terdiri dari beberapa sensor node yang bersifat individu yang diletakkan ditempat – tempat yang berbeda untuk memonitoring

kondisi suatu tempat dan dapat berinteraksi dengan lingkungannya dengan cara

sensing, controllingdancommunicationterhadap parameter–parameter fisiknya.

Gambar 2.1Arsitektur WSN

Sumber : (http://virtual-labs.ac.in)

Pada Gambar 2.1 menunjukkan gambaran umum WSN, dapat dilihat node

sensor yang berukuran kecil disebar dalam di suatu area sensor. Node sensor tersebut memiliki kemampuan untuk merutekan data yang dikumpulkan ke node

lain yang berdekatan. Data dikirimkan melalui transmisi radio akan diteruskan

menuju BS (Base Station) atau sink node yang merupakan penghubung antara


(12)

seperti koneksi internet atau satelit sehingga memungkinkan user untuk dapat mengakses secararealtimemelaluiremote server. (E, Sugiarto, & Sakti, 2009)

Setiap node dalam WSN terdiri dari lima komponen yaitu kontroller/mikrokontroler, memori, sensor/akuator, perangkat komunikasi dan

catu daya. Umumnya catu daya yang dipakai adalah baterai. Komponen –

komponen dari sebuahnodeditunjukkan pada Gambar 2.2 dibawah ini.

Gambar 2.2Komponen–Komponen PenyusunNodedalam WSN

Sumber : (E, Sugiarto, & Sakti, 2009)

1. Communication device(perangkat komunikasi)

Berfungsi untuk menerima/mengirim data dengan menggunakan protokol IEEE

802.15.4 atau IEEE 802.11b/g kepadadeviceataunodelainnya. 2. Mikrokontroler

Berfungsi untuk melakukan fungsi perhitungan, mengontrol dan memproses

devicedeviceyang terhubung dengan mikrokontroler. 3. Sensor

Berfungsi untuk men–sensing besaran–besaran fisis yang hendak diukur.

Sensor adalah suatu alat yang mampu untuk mengubah suatu bentuk energi ke


(13)

diukur menjadi energi listrik yang kemudian diubah oleh ADC menjadi deretan

pulsa terkuantisasi yang kemudian bisa dibaca oleh mikrokontroler.

4. Memory

Berfungsi sebagai tambahan memori bagi sistem Wireless Sensor, pada dasarnya sebuah unit mikrokontroler memiliki unit memori sendiri.

5. Power supply

Berfungsi sebagai sumber energi bagi sistem Wireless Sensor secara keseluruhan.

2.2 Arduino

Arduino adalah prototipe platform elektronik opensource yang terdiri

dari mikrokontroler, bahasa pemrograman, dan IDE. Arduino adalah alat untuk

membuat aplikasi interaktif, yang dirancang untuk mempermudah proyek bagi

pemula tetapi masih cukup fleksibel bagi para ahli untuk mengembangkan

proyek-proyek yang kompleks. (Banzi, 2009)

2.2.1 Arduino Uno SMD R3

Arduino Uno adalah papan mikrokontroler berbasis ATmega328. Dalam

bahasa Italy “Uno” berarti satu, maka peluncuran arduino ini diberi nama Uno.

Arduino ini berisi semua yang diperlukan untuk mendukung mikrokontroler,

untuk mengaktifkan cukup menghubungkannya ke komputer dengan sebuah kabel

USB atau mensuplainya dengan sebuah adaptor AC ke DC atau menggunakan


(14)

Gambar 2.3Arduino Uno SMD R3 Sisi Depan (Kiri) dan Belakang(Kanan) Sumber : (arduino.cc, 2013)

Secara umum arduino terdiri dari dua bagian, yaitu:

1. Hardware: papan input/output (I/O)

2. Software: software arduino meliputi IDE untuk menulis program, driver untuk koneksi dengan komputer, contoh program dan library untuk pengembangan program. (Djuandi, 2011)

Berikut adalah Tabel 2.1 spesifikasi dari arduino uno smd R3:

Tabel 2.1Spesifikasi Arduino Uno SMD R3

Mikrokontroler ATmega328

Tegangan pengoperasian 5V

Tegangan input yang

disarankan 7-12V

Batas tegangan input 6-20V

Jumlah pin I/O digital 14 (6 di antaranya menyediakan keluaran PWM)

Jumlah pin input analog 6

Arus DC tiap pin I/O 40 mA

Arus DC untuk pin 3.3V 50 mA

Memori Flash 32 KB (ATmega328), sekitar 0.5 KB digunakan oleh bootloader

SRAM 2 KB (ATmega328)

EEPROM 1 KB (ATmega328)


(15)

2.2.2 Daya (Power)

Arduino Uno dapat disuplai melalui koneksi USB atau dengan sebuah

power suplai eksternal. Suplai eksternal (non-USB) dapat diperoleh dari sebuah

adaptor AC ke DC atau baterai. Adaptor dapat dihubungkan dengan mencolokkan

sebuah center-positive plug yang panjangnya 2,1 mm ke power jack dari board. Kabel lead dari sebuah battery dapat dimasukkan dalam header/kepala pin

Ground(Gnd) dan pin Vin dari konektorPOWER.

Board Arduino Uno dapat beroperasi pada sebuah suplai eksternal 6 sampai 20 Volt. Jika disuplai dengan yang lebih kecil dari 7 V, kiranya pin 5 Volt

mungkin mensuplai kecil dari 5 Volt dan board Arduino Uno bisa menjadi tidak stabil. Jika menggunakan suplai yang lebih dari besar 12 Volt, voltage regulator bisa kelebihan panas dan membahayakan board Arduino Uno. Range yang direkomendasikan adalah 7 sampai 12 Volt. (arduino.cc, 2013)

Pin-pin dayanya adalah sebagai berikut:

a) VIN. Tegangan input ke Arduino board ketika board sedang menggunakan sumber suplai eksternal (seperti 5 Volt dari koneksi USB atau

sumber tenaga lainnya yang diatur). Kita dapat menyuplai tegangan melalui pin

ini, atau jika penyuplaian tegangan melalui power jack, aksesnya melalui pin ini.

b) 5V. Pin output ini merupakan tegangan 5 Volt yang diatur dari regulator

padaboard.Boarddapat disuplai dengan salah satu suplai dari DC power jack

(7-12V), USB connector (5V), atau pin VIN dari board (7-12). Penyuplaian tegangan melalui pin 5V atau 3,3V membypass regulator, dan dapat membahayakanboard. Hal itu tidak dianjurkan.


(16)

c) 3V3. Sebuah suplai 3,3 Volt dihasilkan oleh regulator pada board. Arus maksimum yang dapat dilalui adalah 50 mA.

d) GND. Pinground.

2.2.3 Memori

ATmega328 mempunyai 32 KB yang bersifat non-volatile, digunakan untuk menyimpan program yang dimuat dari komputer. (dengan 0,5 KB

digunakan untuk bootloader). ATmega 328 juga mempunyai 2 KB SRAM yang

volatile (hilang saat daya dimatikan), digunakan oleh variable-variabel di dalam program. dan 1 KB EEPROM (yang dapat dibaca dan ditulis (RW/read and

written). (arduino.cc, 2013)

2.2.4 Input dan Output

Setiap 14 pin digital pada Arduino Uno dapat digunakan sebagai input dan

output. Fungsi-fungsi tersebut beroperasi di tegangan 5 Volt. Setiap pin dapat

memberikan atau menerima suatu arus maksimum 40 mA dan mempunyai sebuah

resistor pull-up (terputus secara default) 20-50 kOhm. Selain itu, beberapa pin

mempunyai fungsi-fungsi sebagai berikut:

a) Serial: 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan memancarkan (TX) serial data TTL (Transistor-Transistor Logic). Kedua pin ini dihubungkan ke pin-pin yang sesuai dari chip Serial Atmega8U2

USB-ke-TTL.

b) External Interrupts: 2 dan 3. Pin-pin ini dapat dikonfigurasikan untuk dipicu sebuah interrupt (gangguan) pada suatu nilai rendah, suatu kenaikan


(17)

c) PWM: 3, 5, 6, 9, 10, dan 11. Memberikan 8-bit PWM output dengan fungsianalogWrite().

d) SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin-pin ini mensupport

komunikasi SPI menggunakan SPIlibrary.

e) LED: 13. Ada sebuah LED yang terpasang, terhubung ke pin digital 13. Ketika pin bernilaiHIGHLED menyala, ketika pin bernilaiLOWLED mati.

Arduino UNO mempunyai 6 input analog, diberi label A0 sampai A5,

setiapnya memberikan resolusi 10 bit. Secara default, 6 input analog tersebut

mengukur tegangan dari ground sampai tegangan 5 Volt, dengan itu memungkinkan untuk mengganti batas atas dari rangenya dengan menggunakan

pin AREF dan fungsi analogReference(). Di sisi lainnya, beberapa pin mempunyai fungsi spesifik yaitu pin A4 atau SDA dan pin A5 atau SCL.

Mendukung komunikasi TWI dengan menggunakan Wire library. Ada sepasang pin lainnya pada board yaitu AREF referensi tegangan untuk input analog.

Digunakan dengan analogReference(), dan reset untuk mereset mikrokontroler. (arduino.cc, 2013)

2.3 Software Arduino IDE

Arduino IDE adalah software yang ditulis menggunakan java dan berdasarkan pengolahan seperti, avr-gcc, dan perangkat lunakopen sourcelainnya (Djuandi, 2011). Arduino IDE terdiri dari:

1. Editor program, sebuah window yang memungkinkan pengguna menulis dan mengedit program dalam bahasa processing.

2. Verify / Compiler, sebuah modul yang mengubah kode program (bahasa processing) menjadi kode biner. Bagaimanapun sebuah mikrokontroller tidak


(18)

akan bisa memahami bahasa processing, yang dipahami oleh mikrokontroller

adalah kode biner.

3. Uploader, sebuah modul yang memuat kode biner dari komputer ke dalam memori mikrokontroller di dalam papan arduino.

Gambar 2.4TampilanSoftwareArduino IDE

Pada Gambar 2.4 terdapat menu bar, kemudian toolbar dibawahnya, dan sebuah area putih untuk editing sketch, area hitam dapat kita sebut sebagai


(19)

2.4 Bahasa Pemograman Arduino

Arduino ini bisa dijalankan di komputer dengan berbagai macam

platform karena didukung atau berbasis Java. Source program yang dibuat untuk aplikasi mikrokontroler adalah bahasa C/C++ dan dapat digabungkan dengan

assembly. (arduino.cc, 2013)

1. Struktur

Setiap program Arduino (biasa disebut sketch) mempunyai dua buah fungsi yang harus ada (arduino.cc, 2013). Antara lain:

a) void setup( ) { }

Semua kode didalam kurung kurawal akan dijalankan hanya satu kali ketika

program Arduino dijalankan untuk pertama kalinya.

b) void loop( ) { }

Fungsi ini akan dijalankan setelah setup (fungsi void setup) selesai. Setelah dijalankan satu kali fungsi ini akan dijalankan lagi, dan lagi secara terus

menerus sampai catu daya (power) dilepaskan. 2. Serial

Serial digunakan untuk komunikasi antara arduino board, komputer atau perangkat lainnya. Arduino board memiliki minimal satu port serial yang berkomunikasi melalui pin 0 (RX) dan 1 (TX) serta dengan komputer melalui

USB. Jika menggunakan fungsi –fungsi ini, pin 0 dan 1 tidak dapat digunakan

untuk input digital atau output digital (arduino.cc, 2013). Terdapat beberapa fungsi serial pada arduino, antara lain:


(20)

a) Serial.begin( )

Fungsi ini digunakan untuk transmisi data serial dan mengatur data ratedalam

bits per second (baud). Untuk berkomunikasi dengan komputer gunakan salah satu dari angka ini: 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800,

38400, 57600, atau 115200.

b) Serial.available( )

Fungsi ini digunakan untuk mendapatkan jumlah data byte (characters) yang tersedia dan membacanya dari portserial. Data tersebut adalah data yang telah tiba dan disimpan dalambufferserial yang menampung sampai 64bytes. c) Serial.read( )

Fungsi digunakan untuk membaca data serial yang masuk.

d) Serial.print( ) dan Serial.println( )

Fungsi ini digunakan untuk mencetak data ke port serial dalam format text ASCII. Sedangkan fungsi Serial.println ( )sama seperti fungsi Serial.print ( ) hanya saja ketika menggunakan fungsi ini akan mencetak data dan kemudian

diikuti dengan karakternewlineatauenter.

3. Syntax

Berikut ini adalah elemen bahasa C yang dibutuhkan untuk format

penulisan. (arduino.cc, 2013)

a) //(komentar satu baris)

Kadang diperlukan untuk memberi catatan pada diri sendiri apa arti dari

kode-kode yang dituliskan. Cukup menuliskan dua buah garis miring dan apapun


(21)

b) /* */(komentar banyak baris)

Jika anda punya banyak catatan, maka hal itu dapat dituliskan pada beberapa

baris sebagai komentar. Semua hal yang terletak di antara dua simbol tersebut

akan diabaikan oleh program.

c) { }(kurung kurawal)

Digunakan untuk mendefinisikan kapan blok program mulai dan berakhir

(digunakan juga pada fungsi dan pengulangan).

d) ;(titk koma)

Setiap baris kode harus diakhiri dengan tanda titik koma (jika ada titik koma

yang hilang maka program tidak akan bisa dijalankan).

4. Variabel

Sebuah program secara garis besar dapat didefinisikan sebagai instruksi

untuk memindahkan angka dengan cara yang cerdas. Variabel inilah yang

digunakan untuk memindahkannya. (arduino.cc, 2013)

a) int(integer)

Digunakan untuk menyimpan angka dalam 2 byte (16 bit). Tidak mempunyai angka desimal dan menyimpan nilai dari -32,768 dan 32,767.

b) long(long)

Digunakan ketika integer tidak mencukupi lagi. Memakai 4 byte (32 bit) dari memori (RAM) dan mempunyai rentang dari -2,147,483,648 dan

2,147,483,647.

c) boolean(boolean)

Variabel sederhana yang digunakan untuk menyimpan nilaiTRUE(benar) atau


(22)

d) float(float)

Digunakan untuk angka desimal (floating point). Memakai 4 byte(32 bit) dari RAM dan mempunyai rentang dari -3.4028235E+38 dan 3.4028235E+38.

e) char(character)

Menyimpan 1 karakter menggunakan kode ASCII (misalnya ‘A’ = 65). Hanya memakai 1byte(8 bit) dari RAM.

5. Operator Matematika

Operator yang digunakan untuk memanipulasi angka (bekerja seperti

matematika yang sederhana). (arduino.cc, 2013)

a) = (sama dengan)

Membuat sesuatu menjadi sama dengan nilai yang lain (misalnya: x = 10 * 2, x

sekarang sama dengan 20).

b) % (persen)

Menghasilkan sisa dari hasil pembagian suatu angka dengan angka yang lain

(misalnya: 12 % 10, ini akan menghasilkan angka 2).

c) + (penjumlahan)

d) –(pengurangan)

e) * (perkalian)

f) / (pembagian)

6. Operator Pembanding

Digunakan untuk membandingkan nilai logika.

a) ==

Sama dengan (misalnya: 12 == 10 adalah FALSE (salah) atau 12 == 12 adalah


(23)

b) !=

Tidak sama dengan (misalnya: 12 != 10 adalah TRUE (benar) atau 12 != 12 adalahFALSE(salah)).

c) <

Lebih kecil dari (misalnya: 12 < 10 adalah FALSE (salah) atau 12 < 12 adalah

FALSE(salah) atau 12 < 14 adalahTRUE(benar)). d) >

Lebih besar dari (misalnya: 12 > 10 adalah TRUE (benar) atau 12 > 12 adalah

FALSE(salah) atau 12 > 14 adalahFALSE(salah)). 7. Struktur Pengaturan

Program sangat tergantung pada pengaturan apa yang akan dijalankan

berikutnya, berikut ini adalah elemen dasar pengaturan (banyak lagi yang lain dan

bisa dicari di internet). (arduino.cc, 2013)

a) If else, dengan format seperti berikut ini:

if (kondisi) { } else if (kondisi) { } else { }

Dengan struktur seperti diatas program akan menjalankan kode yang ada di

dalam kurung kurawal jika kondisinya TRUE, dan jika tidak (FALSE) maka akan diperiksa apakah kondisi pada else if dan jika kondisinya FALSE maka kode padaelseyang akan dijalankan.

b) While, dengan format seperti berikut ini: While(kondisi) {}


(24)

Dengan struktur ini, whileakan melakukan pengulangan terus menurus dan tak terbatas sampai kondisi didalam kurung ( ) menjadifalse.

c) for, dengan format seperti berikut ini:

for (int i = 0; i < #pengulangan; i++) { }

Digunakan bila ingin melakukan pengulangan kode di dalam kurung kurawal

beberapa kali, ganti #pengulangan dengan jumlah pengulangan yang

diinginkan. Melakukan penghitungan ke atas dengan i++ atau ke bawah dengani-.

8. Operator Boolean

Operator ini dapat digunakan dalam kondisi if, antara lain:

a) &&(logikaand), dengan format seperti berikut ini:

if (digitalRead(2) == HIGH && digitalRead(3) == HIGH) {}

Digunakan bila ingin mendapatkan nilai yang true hanya jika kedua input bernilaiHIGH.

b) | |(logikaor), dengan format seperti berikut ini: if (x > 0 || y > 0) {}

Digunakan bila ingin mendapatkan nilai yang true hanya jika nilai x dan y lebih besar dari 0.

c) !(not), dengan format seperti berikut ini: if (!x) {}

Digunakan bila ingin mendapatkan nilai yang true hanya jika nilai tidak sama dengan x.


(25)

9. Digital

a) pinMode(pin, mode)

Digunakan untuk menetapkan mode dari suatu pin, pin adalah nomor pin yang

akan digunakan dari 0-19 (pin analog 0-5 adalah 14-19). Mode yang bisa

digunakan adalahINPUTatauOUTPUT. b) digitalWrite(pin, value)

Ketika sebuah pin ditetapkan sebagai OUTPUT, pin tersebut dapat dijadikan

HIGH(5 volts) atauLOW(diturunkan menjadiground). c) digitalRead(pin)

Ketika sebuah pin ditetapkan sebagai INPUT maka anda dapat menggunakan kode ini untuk mendapatkan nilai pin tersebut apakah HIGH (5 volts) atauLOW(diturunkan menjadiground).

10. Analog

Arduino adalah mesin digital tetapi mempunyai kemampuan untuk

beroperasi di dalam analog. Berikut ini cara untuk menghadapi hal yang bukan

digital.

a) analogWrite(pin, value)

Beberapa pin pada Arduino mendukung PWM (pulse width modulation) yaitu pin 3, 5, 6, 9, 10, 11. Ini dapat merubah pin hidup (on) atau mati (off) dengan sangat cepat sehingga membuatnya dapat berfungsi layaknya keluaran analog.

Value(nilai) pada format kode tersebut adalah angka antara 0 ( 0%duty cycle~ 0V) dan 255 (100%duty cycle~ 5V).


(26)

b) analogRead(pin)

Ketika pin analog ditetapkan sebagai INPUT anda dapat membaca keluaran voltase-nya. Keluarannya berupa angka antara 0 (untuk 0 volts) dan 1024

(untuk 5 volts).

2.5 Sensor Ultrasonik PING)))

Parallax PING))) ultrasonic range finder merupakan sebuah sensor pengukur jarak tanpa kontak langsung, dengan kemampuan jarak ukur 2 cm (0.8

inches) sampai 3 m (3.3 yards) di udara yang memiliki cepat rambat 344 m/s. Sehingga untuk menempuh jarak 1 cm dibutuhkan waktu 29 µs. Sensor ini hanya

memerlukan 1 pin I/O dari mikrokontroler untuk mengontrolnya (Gambar 2.5).

(Yunidar, 2009)

Gambar 2.5Sensor Ultrasonik PING)))

Sensor ini bekerja berdasarkan prinsip pantulan gelombang suara,

dimana sensor akan memancarkan gelombang suara yang kemudian menangkap

pantulannya kembali dengan perbedaan waktu sebagai dasar penginderaannya.


(27)

kembali gelombang suara tersebut adalah berbanding lurus dengan jarak atau

tinggi objek yang memantulkannya. Jenis objek yang dapat diindera diantaranya

adalah: objek padat, cair, butiran maupun tekstil. Sensor ini memiliki 3 pin, yang

masing - masingnya dihubungkan keGround, Vcc (5V) dan pin ketiga merupakan pin I/O (SIG) dihubungkan ke arduino uno. (Yunidar, 2009)

2.6 Real Time Clock (RTC)

Real Time Clock merupakan suatu chip (IC) yang memiliki fungsi sebagai penyimpan waktu dan tanggal. RTC DS1307 (Gambar 2.6) merupakan

Real-time clock(RTC) yang dapat meyimpan data-data detik, menit, jam, tanggal, bulan, hari dalam seminggu, dan tahun valid hingga 2100. 56-byte,

battery-backed, RAM nonvolatile (NV) RAM untuk penyimpanan. RTC DS1307 merupakan Real-time clock (RTC) dengan jalur data paralel yang memiliki Antarmuka serial Two-wire (I2C), Sinyal luaran gelombang-kotak terprogram (Programmable squarewave), Deteksi otomatis kegagalan-daya (power-fail) dan rangkaian switch, Konsumsi daya kurang dari 500nA menggunakan mode baterai

cadangan dengan operasional osilator. (Arrosyid, Tjahjono, & Epyk Sunarno,

2009)


(28)

2.7 Xbee Series 2 Chip Antenna dan Xbee Pro Series 2 Wire Antenna

Xbee series 2 modul RF dirancang untuk beroperasi dalam protokol ZigBee dengan biaya yang murah dan jaringan sensor nirkabel menggunakan daya

yang rendah. Modul ini membutuhkan daya yang rendah dan dapat melakukan

pengiriman data yang handal antara perangkat dengan jarak yang jauh. Modul ini

beroperasi pada frekuensi 2.4 GHz. (Inc, XBee Series 2 OEM RF Modules, 2007)

Xbee series 2 ini mempunyai beberapa model antena, salah duanya adalah chip antenna dan wire antenna. Chip antenna merupakan suatu chip keramik yang terletak pada board modul Xbee, bentuknya lebih kecil. Chip antenna memiliki pola radiasi cardoid, yang artinya sinyal dilemahkan dalam berbagai arah dan sangat baik digunakan dalam area yang tidak terlalu besar atau

kecil. Sedangkan wire antennamerupakan suatu antena kawat yang terletak pada board modul Xbee, wire antenna memiliki pola radiasi omndirectional yang artinya jarak transmisi maksimum hampir sama pada semua arah ketika antena

tersebut tegak lurus terhadap modul. Gambar 2.7 merupakan gambar dari modul

Xbeeseries 2chip antenna dan Gambar 2.8 merupakan gambar dari modul Xbee

series2wire antenna. (Faludi, 2011)


(29)

Gambar 2.8XbeeSeries2Wire Antenna

Berikut adalah spesifikasi dari modul Xbee pro series 2 chip antenna

(Inc, XBee Series 2 OEM RF Modules, 2007):

a) Jarak jangkauanindoor133 ft atau 40 meter.

b) Jarak jangkauanoutdoor line of sight400 ft atau 120 meter. c) Transmitpower output2 mW (+ 3 dbm).

d) Radio Frekuensi datarate250 Kbps. e) Frekuensi 2.4 GHz.

f) Receiver sensitivity-98 dbm (1 %pakcet error rate). g) Antena menggunakanchip antenna.

Berikut adalah spesifikasi dari modul Xbee pro series 2 wire antenna

(Inc, 2012):

a) Jarak jangkauanindoor300 ft (90 meter) dan 200 ft (60 meter)

b) Jarak jangkauan outdoor line of sight2 miles atau 3200 meter dan 5000 ft atau 1500 meter (variant lainnya).

c) Transmitpower output50 mW (+ 17 dbm). d) Radio Frekuensi datarate250 Kbps. e) Frekuensi 2.4 GHz.

f) Receiver sensitivity-102 dbm. g) Antena menggunakanwire antenna.


(30)

2.8 Komunikasi Serial Xbee Series 2

Xbee series 2 merupakan sebuah modul yang terdiri dari receiver dan

tranmitter melalui port serial. Melalui port serial ini Xbee dapat berkomunikasi

secara UART (Universal Asincrhounus Recivier transmiter). Gambar 2.9 menunjukkan diagram sistem aliran data secara UART. (Inc, 2007)

Gambar 2.9Diagram Sistem Aliran Data UART pada Xbee

2.9 AT / Transparent Mode

Dalam mode transparent/AT, modul Xbee bertindak sebagai pengganti

serial line. Semua data UART (Universal Asincrhounus Recivier transmiter) diterima melalui pin input akan ditransmisikan. Ketika data tersebut diterima maka data akan dikirimkan keluar (Xbee lainnya) melalui pin output. Data atau paket yang diterima bisa ditujukan ke satu sasaran (point to point) atau ke beberapa sasaran (star/broadcast). (Inc, 2007)

2.10 Coordinator, Router, dan End Device

Pada jaringan ZigBee terdapat tiga jenisnode, yaitu: 1. Coordinator

Sebuah node yang berfungsi untuk membentuk suatu jaringan.


(31)

(Personal Area Network) ID untuk suatu jaringan. Coordinatordapat membentuk suatu jaringan dengan mengijinkan routerdan end deviceuntuk bergabung dalam jaringan tersebut. Setelah jaringan terbentuk, fungsi coordinator seperti router

(dapat berpartisipasi dalam routing paket dan menjadi sumber atau tujuan untuk paket data). (Inc, 2007)

2. Router

Sebuah node yang membuat / menjaga informasi jaringan dan menggunakan informasi ini untuk menentukan rute untuk paket data. Agar suatu

routerdapat mengijikan routerlain dan end deviceuntuk bergabung, sebelumnya

routertersebut harus terlebih dahulu bergabung dengan jaringan yang ada. Router

dapat berpartisipasi dalam routing paket dan menjadi sumber atau tujuan untuk paket data. (Inc, 2007)

3. End device

End device harus selalu berinteraksi atau terhubung dengan coordinator

atau router untuk dapat menerima dan mengirimkan data. End device juga dapat menjadi sumber atau tujuan untuk paket data tetapi tidak bisa untuk menentukan

rute paket data. (Inc, 2007)

2.11 Xbee USB Adapter dan Software X-CTU

Xbee usb adapter (Gambar 2.10) merupakan alat untuk menghubungkan modul Xbee ke komputer dengan kabel mini usb (Gambar 2.10) dan selanjutnya

dapat dikonfigurasi menggunakan software X-CTU (Gambar 2.11). software X-CTU merupakan software yang digunakan untuk mengkonfigurasi Xbee agar dapat berkomunikasi dengan Xbee lainya. Parameter yang harus diatur adalah


(32)

saja yang dapat berkomunikasi, agar dapat berkomunikasi PAN ID dalam satu

jaringan harus sama. Xbee dapat berkomunikasi point to point dan point to

multipoint (broadcast).

Gambar 2.10Xbee UsbAdapterdan Kabel Mini Usb


(33)

Pada Gambar 2.11 software X-CTU, terdapat empat tab di bagian atas program. Masing – masing tab mempunyai fungsi yang berbeda – beda (Inc,

2008). Berikut adalah ke empat tab tersebut:

1. PC Settings

Pada tab ini mengijinkan pengguna untuk memilih COM port yang diinginkan dan mengkonfigurasi port tersebut sesuai pengaturan Xbee yang diinginkan. Terdapat tombol Test / Query pada tab PC Settings, tombol ini digunakan untuk mengujiCOM port yang telah dipilih, jika pengaturan dan COM portbenar, maka akan muncul kotak dialog respon seperti pada Gambar 2.12.

Gambar 2.12Kotak Dialog Respon

2. Range Test

Pada tabrange test ini, pengguna dapat melakukan pengujian range test

antara dua Xbee dengan mengirimkan paket data yang ditentukan pengguna dan

memverifikasi apakah paket data yang dikirim sama dengan yang diterima.

3. Terminal

Pada tab ini, pengguna memungkikan akses ke COM port komputer dengan program terminal emulation. Tab ini juga memungkinkan untuk mengaksesfirmwareXbee menggunakan ATcommandsdan dapat mengirim atau


(34)

menerima data dalam format Hex dan ASCII dengan memilih Assemble Packet

(Gambar.2.14).

Gambar 2.13 TabTerminal

Gambar 2.14 Assemble Packet

Pada Gambar 2.14 area putih dalam terminaltab ini berisi data informasi komunikasi yang terjadi antara 2 Xbee atau lebih. Teks yang berwarna biru

merupakan teks yang telah diketik pengguna dan diarahkan ke port serial Xbee sedangkan teks merah merupakan data yang masuk dariportserial Xbee.


(35)

4. Modem Configuration Tab

Pada tab ini, pengguna dapat melakukan pemrograman pada pengaturan

firmwareXbee dan merubah versi firmwarenya melalui Graphical User Interface

(GUI). Terdapat 4 fungsi dasar dalammodem configuration tab, yaitu: a) Menyediakan fasilitas GUI untuk mengaturfirmwarepada Xbee. b) Readdanwritefirmware ke mikrokontroller Xbee.

Untuk dapat membaca (read) firmware Xbee, pertama hubungkan Xbee dengan Xbee usb adapter yang telah terhubung dengan kabel mini usb,

kemudian hubungkan kabel tersebut ke komputer melalui interface usb. Jalankan aplikasi X-CTU pada komputer, selanjutnya atur com port pada tab PC Settingsseperti Gambar 2.15. Padatab Modem Configuration, klik “Read” pada bagianModem Parameter and Firmware(Gambar 2.16).


(36)

Gambar 2.16 Tab Modem Configuration

Setelah firmware Xbee telah terbaca, terdapat tiga warna dalam pengaturan konfigurasi (Gambar 2.17) yaitu hitam yang berarti read-only dan tidak bisa dirubah nilainya, kemudian hijau yang berarti nilaidefault Xbee dan biru yang berarti nilai yang pengguna tentukan sesuai keinginan. Untuk mengubah nilai

parameter yang bisa dirubah, klik paramater tersebut kemudian ketik nilai yang

baru sesuai keinginan pengguna. Untuk memudahkan pengisian nilai, terdapat

deskripsi atau keterangan dalam pengisian nilai pada setiap parameter yang

berada pada bagian bawah. Setelah semua nilai –nilai yang baru masuk, maka

nilai tersebut dapat disimpan ke memori non-volatile pada Xbee. Klik tombol “Write” pada bagian Modem Parameter and Firmware untuk menyimpan konfigurasi parameter ke memori pada Xbee (Gambar 2.17).


(37)

Gambar 2.17Firmware Xbee Telah Terbaca

c) Meng-update firmwarepada Xbee

User atau pengguna dapat meng-update firmware pada Xbee baik melalui web

atau menginstalnya darifile.zipataudisk. Klik “Download New Versions” pada bagian Versions (Gambar 2.17). Klik tombol Webjika ingin meng-update file firmware melalui web atau klik tombol File jika ingin meng-update melalui

file.zipataudisk(Gambar 2.18).


(38)

d) Saveatauload modem profile

X-CTU dapat menyimpan dan men-load profil modem atau konfigurasi yang telah disimpan, ini sangat berguna ketika paramater konfigurasi yang sama

ditetapkan pada beberapa Xbee yang berbeda (Gambar 2.19).

Gambar 2.19 SavedanLoad Modem Profile

2.12 Topologi Point to Point

Topologi point to point adalah topologi yang membangun hubungan langsung antara duanode jaringan. Dalam jaringan sensor nirkabel atau WSN ini dapat menggunakan topologipoint to point. Topologipoint to pointini merupakan topologi jaringan yang paling sederhana tetapi dapat digunakan secara luas.


(39)

2.13 Topologi Point to Multipoint

Topologipoint to multipointadalah topologi yang membangun hubungan antara beberapa node, yang dimana suatu node dapat berkomunikasi dengan beberapa node secara broadcast. Karena topologi ini membangun hubungan antara beberapa node yang dapat berkomunikasi dengan beberapa node lainnya secarabroadcast, maka topologi ini dapat digunakan juga sebagai jaringanmesh.

2.14 Xbee Shield

Xbee shield merupakan suatu board yang dapat menghubungkan board

arduino untuk berkomunikasi secara nirkabel atau wireless menggunakan modul Xbee atau Zigbee (Gambar 2.20). (arduino.cc, 2013)

Gambar 2.20XbeeShield

Xbee shield memiliki dua jumper terbuat dari plastik yang dapat di

removeable dari tiga pin pada shield yang berlabel Xbee/USB (Gambar 2.21). Jumper ini menentukan komunikasi serial Xbee agar terhubung pada komunikasi


(40)

(41)

36 3.1 Metode Penelitian

Metode penelitian yang digunakan pada tugas akhir ini melalui beberapa

tahapan penelitian dan mencari informasi tentang data yang dibutuhkan dalam

melakukan tugas akhir ini. Penelitian pertama adalah pengembangan konsep

penelitian berdasarkan daftar pustaka. Selanjutnya perencanaan penelitian

meliputi perancangan sistem perangkat keras dan perangkat lunak. Informasi

data-data meliputi sensor ultrasonik PING dan modul RTC sebagai input data-data

ketinggian air pada prototipe secara real time, kemudian diproses dalam modul mikrokontroler arduino uno. Modul Xbee series 2 sebagai receiver dan

transmitter data secara nirkabel dari dan ke node lainnya serta informasi dalam penerimaan dan pengirimin data.

Setelah didapatkan informasi mengenai hal-hal yang dibutuhkan maka

langkah selanjutnya adalah membuat skrip perancangan sistem WSN

menggunakan software arduino IDE untuk menghasilkan informasi data yang nantinya akan digunakan dalam pengujian pengiriman dan penerimaan data

ketinggian air secarareal time.

Gambar 3.1 merupakan gambar blok diagram sistem yang merupakan

penjelasan singkat dari perancangan sistem yang dibuat pada judul tugas akhir

“Rancang Bangun Prototipe Aplikasi Wireless Sensor Network (WSN) Untuk


(42)

Gambar 3.1Blok Diagram Sistem

Dari blok diagram sistem Gambar 3.1, terbagi menjadi 3 kelompok

bagian, yaitu bagian input, proses dan output. Dalam tugas akhir ini, penulis hanya membahas tentang node router 1, node router 2, dan node coordinator

yang terletak di dalam garis merah dari blok diagram sistem. Sedangkan pada blok

diagramnodeend device dan PC dikerjakan dalam tugas akhir berjudul “ Rancang

Bangun Aplikasi Pemantau Data Wireless Sensor Network Untuk Peringatan Dini

Terhadap Banjir” oleh Muhammad Syakir Kautsar.

3.1.1 Input data

Pada node router 1 dan 2, bagian input adalah proses dimana sensor ultrasonik sebagai detektor guna mendeteksi jarak ketinggian air pada prototipe

yang akan dilakukan jika menerima perintah request data olehnode coordinator. Agar sensor dapat mendeteksi jarak, modul mikrokontroler arduino uno

mengirimkan sinyal pulsa positif (HIGH) selama 2µs sampai 5µs ke pin SIG (I/O pin) pada sensor ultrasonik PING. Pemicu oleh mikrokontroler ini,


(43)

Gelombang suara ini akan menghasilkan pantulan setelah mengenai permukaan

air dan kembali ke sensor penerima. Bila sensor menerima sinyal pantulan, maka

akan mengirimkan pulsa rendah (LOW) melalui pin SIG ke mikrokontroler. Sedangkan modul RTC adalah pencatat waktu pada saat pengambilan data

ketinggian air pada prototipe. Pada node coordinator, bagian input adalah data-data yang berasal darinode router1 dan 2.

Data ketinggian air oleh sensor ultrasonik dan pencatat waktu oleh RTC

akan diproses di dalam mikrokontroler.

3.1.2 Bagian Proses

Pada bagian proses ini akan melakukan perhitungan agar mendapatkan

ketinggian air dan proses lainnya pada modul mikrokontroler arduino uno

menggunakan software arduino IDE. Disini penulis membuat skrip yang dibutuhkan untuk masing –masingnodeagar dapat berfungsi sesuai perancangan sistem dan blok diagram sistem.

Bagian proses terdiri dari beberapa tahap pada node router 1 dan 2. Beberapa tahap tersebut yaitu pembacaan ketinggian air yang dilakukan oleh

sensor ultrasonik, pembacaan tanggal dan waktu oleh modul RTC, pembacaan

data node router 2 jika proses terjadi pada node router 1, pembacaan data node router 1 jika proses terjadi pada node router 2. Kemudian node router 1 akan menampilkan data inputan dan data dari node router 2 pada serial monitor

software arduino IDE, sedangkan node router 2 akan menampilkan data inputan dan data dari node router1. Semua proses tersebut dilakukan apabila node router

1 dan 2 telah menerima pesan request data dari node coordinator. Pada node coordinatorakan melakukan prosesrequestdata dan kemudian pembacaan data–


(44)

data dari node router 1 dan 2, kemudian membandingkan data tersebut apakah

valid atau tidak valid (error). Selanjutnya hasil perbandingan tersebut akan ditampilkan di serial monitor padasoftwarearduino IDE.

3.1.3 Bagian output

Setelah data ketinggian air dan waktu didapat padanode router 1, maka data tersebut akan dikirimkan ke node router 2 dannode coordinator. Sedangkan data yang didapat padanode router2 akan dikirimkan kenode sensor 1 dannode coordinator. Data-data yang diterima node coordinator akan dibandingkan, kemudian hasil perbandingan data tersebut akan ditampilkan pada serial monitor node coordinator dan kemudian dikirimkan ke node end device. Data yang diterima pada end device akan ditampilkan pada PC menggunakan program yang telah dibuat dengansoftware visual basic.

3.2 Perancangan Sistem

Pada perancangan sistem WSN yang dilakukan, dapat dilihat berdasarkan

tahap setiap proses yang akan di jalankan pada bagan Gambar 3.2.


(45)

Gambar 3.2 merupakan Bagan tahap proses perancangan sistem yang

akan dilakukan. Pada bagan ini proses sistem dapat dibagi ke dalam tiga

kelompok. Tahap pertama yang dilakukan adalah menyiapkan hardware yang

dibutuhkan dalam sistem dan membuat desain topologi. Tahap kedua yaitu

membuat skrip pada software arduino IDE dan meng-compile program, yang selanjutnya di-upload ke dalam modul mikrokontroler arduino uno. Tahap yang ketiga adalah melakukan perbandingan data yang telah diterima oleh node coordinator, kemudian data hasil perbandingan tersebut dikirim ke node end device yang selanjutnya akan ditampilkan pada komputer menggunakan program

visual basic.

3.3 Desain Topologi

Pada perancangan sistem ini menggunakan model topologi point to multipoint. Model topologipoint to multipointini digunakan agar node router1, 2 dan coordinator dapat berkomunikasi dengan dua atau lebih node yang berbeda pada satu jaringan. Gambar 3.3 merupakan topologi point to multipoint pada perencanaan sistem WSN.


(46)

Pada perencanaan sistem WSN menggunakan topologi point to multipoint ini, diharapkan proses pengiriman masing-masing node dapat berjalan lancar.

a) Jumlah node yang digunakan berjumlah 4, yaitu node router1, 2, coordinator

danend device.

b)Node router 1 akan mengirimkan data ketinggian air dan waktu secara

broadcast dan nirkabel ke node router 2 dan node coordinator, jika terlebih dahulu mendapatkanrequestdata darinode coordinator.

c) Node router 2, akan mengirimkan data ketinggian air dan waktu secara

broadcast dan nirkabel ke node router 1 dan node coordinator, jika terlebih dahulu mendapatkanrequestdata darinode coordinator.

d)Node coordinator mengirimkan request data ke node router 1 dan 2 secara

broadcast. Jika data node router1 dan 2 baik itu melalu node routeritu sendiri maupun node router lainnya telah diterima oleh node coordinator, maka data-data tersebut akan dibandingkan. Kemudian hasilnya akan dikirimkan ke node end device.

e) Node end devicemenerima data darinode coordinator.

f) Komputer akan mengabil data yang terdapat di node end devices, selanjutnya akan menampilkannya melalui program yang telah dibuat.

3.4 Hardware

Gambar 3.4 merupakan perangkat keras yang dibutuhkan dalam tugas

akhir ini. Padanode router 1 dan 2 perangkat keras yang dibutuhkan yaitu sensor ultrasonik PING untuk mendapatkan ketinggian air pada prototipe (Gambar 3.5),


(47)

arduino uno untuk processing, Xbeeseries2 untuk mengirim atau menerima data secara nirkabel, dan Xbee shield sebagai penghubung antara modul arduino uno dengan Xbee series 2. Sedangkan pada node coordinator perangkat keras yang dibutuhkan terdiri dari modul mikrokontroler arduino uno, Xbee series 2 dan Xbeeshield.

Gambar 3.4Perangkat Keras

Berdasarkan desain topologi sebelumnya node router 1, 2, dan

coordinator dapat berkomunikasi secara point to multipoint. Agar dapat berkomunikasi point to multipoint, terdapat parameter-parameter yang harus diatur didalam Xbee series 2 menggunakan software X-CTU. Parameter-parameter tersebut adalah PAN ID dalam satu jaringan harus sama, kemudian DH

dan DL yang diatur nilainya menjadi DH = 0 dan DL = FFFF, FFFF mempunyai

arti bahwa data akan dikirim secara broadcast sehingga beberapa node dalam PAN ID yang sama akan mendapat data tersebut (Gambar 2.22).


(48)

G

am

b

ar

3.5

P

rot

ot

ipe

P

engukur

an K

et

inggi

an A

ir

S

unga

i

fdjkfjadkfadkfjakdjfkadjfffffffffff ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff


(49)

3.5 Pemrogaman mikrokontroler Arduino Uno pada Software ArduinoIDE

Untuk melakukan perancangan sistem ini terlebih dahulu harus membuat

skrip atau melakukan pemograman mikrokontorler arduino uno pada software

arduino IDE agar mendapat hasil sesuai dengan yang dibutuhkan.

3.5.1 Format Penulisan Pesan

Setiapnodedalam WSN ini akan mengirimkan pesan data dari satunode

kenodelainnya. Format pengiriman atau penulisan pesan yang terjadi pada setiap

nodediatur seperti Gambar 3.6.

Gambar 3.6Format Penulisan Pesan

Format penulisan pesan ini terinspirasi oleh pengiriman pesan Xbee

dengan mode API. Mode ini dapat memberi informasisource addresspengirim ke Xbee lainnya yang dituju pada saat pengiriman data. Dengan demikian, maka

setiap node pada jaringan WSN ini dapat mengetahui data yang diterima berasal dari node yang mana (pengirim). Setiap node memiliki head dan id node yang harus dikenali. Semua penulisan tersebut ditulis semua dan dipisahkan oleh tanda

titik. Dalam tugas akhir ini penulis menggunakan simbol % untuk digunakan

sebagaihead. Maka setiapnodeakan mengetahui apabila data yang diterima harus mempunyai awalan %. Simbolheaddisini akan mengantisipasi sebuahnodeilegal yang tiba-tiba mengirimkan data ke node. Apabila data yang diterima tidak memilikihead, maka data tersebut akan dianggap ilegal dannodeakan membuang data tersebut.


(50)

Dari penjelasan di atas, node router 1 akan memiliki id “N1”, node router 2 akan memiliki id “N2”, datanode router 1 yang melewatinode router 2

akan memiliki id “S1”, data node router 2 yang melewati node router 1 akan

memiliki id “S2”, data node coordinator akan memliki 2 id yaitu id “C1” untuk

data yang berasal dari node router 1 dan id “C2” untuk data yang berasal dari node router2.

3.5.2 Membuat Skrip untuk Node router 1

Gambar 3.7Diagram Alir Pembuatan Skrip padaNode router1

Berikut ini penjabaran dari Gambar 3.7 proses pembuatan skrip pada

node router1. 1. Inisialisai


(51)

Pembuatan skrip ini dimulai dengan menuliskan skrip berikut ini. skrip

ini merupakan inisialisasi dan harus ada dalam setiap program yang dibuat pada

node router.

// library yang digunakan #include <Wire.h>

#include "RTClib.h" // inisialisasi variabel String id,indata,tampung; const int pingPin = 7; // inisialisasi RTC RTC_DS1307 RTC; void setup() {

// inisialisasi komunikasi serial Serial.begin(9600);

// inisialiasi Wire (komunikasi I2C) Wire.begin();

// start RTC RTC.begin();

// hanya sekali digunakan untuk mengatur tanggal dan waktu // pada modul RTC

RTC.adjust(DateTime(__DATE__, __TIME__)); }

//semua proses yang dilakukan secara berulang-ulang akan dimasukkan ke dalam fungsi loop ini

void loop(){}

2. Pembacaan DataNode

Pembacaan data dilakukan secara berulang-ulang oleh masing-masing

node ketika ada data yang dikirimkan dari node lain dan kemudian data tersebut diterima (data masuk diakhiri dengan karakter \n atau enter). Contoh skrip pembacaan data dari suatunodedalam jaringan.

void loop(){

while(Serial.available()>0){

char data_masuk=(char)Serial.read(); id += data_masuk;

if(data_masuk =='\n'){} }

3. Menyeleksi Data dariNode coordinator

Setelah data yang diakhiri karakter \n diterima, dan data tersebut berasal


(52)

node router akan melakukan penyeleksian. Berikut skrip penyeleksian data yang berasal darinode coordinator.

void loop(){

if(data_masuk =='\n'){

if((id[0]=='%') && (id[1]=='1')) //skrip penyeleksian {

delay(1000);

sph(); //merupakan fungsi pembacaan sensor dan waktu id="";

} } }

4. Pembacaan dan Perhitungan Sensor Ultrasonik

Dengan adanya permintaan request data dari node coordinator, maka

node router akan melakukan pembacaan dan perhitungan ketinggian air yang dilakukan sensor ultrasonik. Contoh skrip sebagi berikut.

//merupakan fungsi konversi microsecond ke centimeter long microsecondsToCentimeters(long microseconds) {

return microseconds / 29 / 2; }

//merupakan fungsi untuk memicu sensor ultrasonik agar dapat membaca ketinggian air

void sph() {

long duration, cm, i; pinMode(pingPin, OUTPUT); digitalWrite(pingPin, LOW); delayMicroseconds(2); digitalWrite(pingPin, HIGH); delayMicroseconds(5); digitalWrite(pingPin, LOW); pinMode(pingPin, INPUT);

duration = pulseIn(pingPin, HIGH);

cm = microsecondsToCentimeters(duration); i = total ketinggian wadah air - cm; }

Fungsi konversimicrosecondke centimeter merupakan pengukuran jarak sensor ultrasonik dengan memanfaatkan konstanta kecepatan gelombang

ultrasonik 1130 feet/secondatau 344 m/s. Sehingga untuk menempuh jarak 1 cm dibutuhkan waktu : 29 µs. Dengan menghitung waktu tempuh ultrasonik


(53)

Fungsi sph ( ) untuk membuat sinyal ultrasonik dengan frekuensi 40 KHz

dengan cara pin SIG dibuat HIGH selama 2 µs s/d 5 µs. Gelombang ultrasonik akan terpancar sampai mengenai sasaran kemudian akan terpantul menuju

kembali ke sensor PING. Selama ultrasonik belum diterima kembali oleh sensor,

kondisi logika pin SIG adalah HIGH. Tunggu sampai gelombang ultrasonik diterima kembali (setelah terpantul) dengan tanda pin SIG berubah menjadi LOW.

Jika sinyal ultrasonik sudah diterima kembali, waktu tempuh yang

terhitung adalah 2 kali jarak tempuh yaitu kirim – terima (atau bahasa umumya

pergi – pulang). Waktu tempuh sensor dengan target berarti waktu tempuh total

dibagi 2. Jarak antara sensor dengan target = waktu tempuh sensor ke target/29 µs

(cm) (inkubator-teknologi.com, 2012).


(54)

Pada Gambar 3.8 merupakan proses pembacaan sensor ultrasonik hingga

dapat menghasilkan jarak ketinggian air sungai pada prototipe. Waktu tempuh

total merupakan waktu sinyal gelombang ultrasonik pada saat dikirim yang

kemudian terpantul karena mengenai permukaan air dan diterima kembali oleh

sensor (2 kali jarak tempuh). Waktu tempuh total akan dibagi 2 dan dibagi 29

karena untuk menempuh jarak 1 cm dibutuhkan waktu 29 µs. Setelah itu akan

didapat jarak antara sensor dengan permukaan air dalam satuan cm. karena yang

dibutuhkan adalah jarak ketinggian air sungai pada prototipe, maka total

ketinggian wadah air dikurangi jarak antara sensor dengan permukaan air untuk

mendapatkan jarak ketinggian air pada prototipe yang sebenarnya.

5. Pembacaan Tanggal dan Waktu RTC

Pembacaan tanggal dan waktu digunakan untuk mengetahui waktu pada

saat pengambilan data ketinggian air oleh sensor ultrasonik. Dengan cara ini dapat

mengetahui perubahan ketinggian air secararealtime. void sph()

{

DateTime now = RTC.now(); //mengambil tanggal dan waktu }

6. Pemberian ID Data dan Pengiriman Data

Pemberian ID data ini dilakukan untuk mempermudah pengguna melihat

data ketinggian air dan waktu yang berasal dari beberapanode router.Node router 1 memilik simbol “%” dan ID data berawalan “N1” dan node router 2 memiliki

ID data berawalan “N2” yang diikuti dengan data ketinggian air dan waktu.

Kemudian data tersebut dikirim kecoordinatordannode routerlainnya. void sph()

{

//mengirimkan simbol ”%” dan ID “N1” Serial.print('%');


(55)

//mengirim ketinggian air melalui variabel i Serial.print(i);

Serial.print('.'); //mengirim tanggal

DateTime now = RTC.now(); Serial.print(now.day(), DEC); Serial.print('/'); Serial.print(now.month(), DEC); Serial.print('/'); Serial.print(now.year(), DEC); //mengirim waktu Serial.print('.'); Serial.print(now.hour(), DEC); Serial.print(':'); Serial.print(now.minute(), DEC); Serial.print(':'); Serial.print(now.second(), DEC); Serial.print('$'); Serial.print('\n'); }

7. Menyeleksi Data dariNode router2

Skrip untuk menyeleksi jika data dari node router 2 yang masuk ke dalamnode router1 sebagai berikut.

if(data_masuk =='\n'){

else if ((id[0]=='%') && (id[1]=='N')) {

delay(4500);

sensor(); // fungsi pemberian ID data baru untuk node // router 2 dan meneruskan data tersebut ke // node coordinator

} }

Jika data masuk berawalan “%” dan “N”, maka akan menunggu selama

4,5 detik sebelum melakukan panggilan terhadap fungsi sensor ().

8. Pemberian ID Data baru dan Meneruskan DataNode router2

Pemberian ID data baru ini dilakukan untuk mempermudah pengguna

mengetahui ID data node router 2 yang melalui node router 1 untuk selanjutnya akan diteruskan ke node coordinator. ID data node router 2 akan berubah dari

“N2” menjadi “S2” jika melaluinode router1. void sensor ()

{


(56)

{

if (id[1]=='N') {

id[1]='S'; //perubahan ID “N” menjadi “S” if (id[2]=='2')

{

indata=id; }

}

Serial.print(id); //meneruskan atau mengirim data ke node //coordinator

} id=""; }

3.5.3 Membuat Skrip untuk Node router 2

Gambar 3.9Diagram Alir Pembuatan Skrip padaNode router2

Pada Gambar 3.9 proses diagram alir pembuatan skrip pada node router

2 hampir sama dengan diagram alir pada node router 1. Perbedaannya hanya terdapat pada pembuatan skrip untuk pemberian ID datanode router 2 itu sendiri


(57)

dan pemberian ID data baru untuk node router1 yang melalui node router2. ID data node router 2 diberi awalan “N2”. Sedangkan ID data node router 1 yang

sebelumnya berawalan “N1” berubah menjadi “S1” karena data tersebut melalui node router 2 untuk diteruskan ke node coordinator. Berikut ini merupakan perbedaan skrip yang terdapat padanode router2.

void sph() {

//mengirimkan simbol ”%” dan ID “N2” Serial.print('%');

Serial.print("N2.");

//mengirim ketinggian air melalui variabel i Serial.print(i);

Serial.print('.'); //mengirim tanggal

DateTime now = RTC.now(); Serial.print(now.day(), DEC); Serial.print('/'); Serial.print(now.month(), DEC); Serial.print('/'); Serial.print(now.year(), DEC); //mengirim waktu Serial.print('.'); Serial.print(now.hour(), DEC); Serial.print(':'); Serial.print(now.minute(), DEC); Serial.print(':'); Serial.print(now.second(), DEC); Serial.print('$'); Serial.print('\n'); }

Kemudian skrip perubahan ID datanode router1. void sensor ()

{

if (id[0]=='%') {

if (id[1]=='N') {

id[1]='S'; //perubahan ID “N” menjadi “S” if (id[2]=='1')

{

indata=id; }

}

Serial.print(id); //meneruskan atau mengirim data ke node //coordinator

}


(58)

3.5.4 Membuat Skrip untuk Node coordinator

Pada perencanaan sistem ini, node coordinator akan mengirimkan pesan

“%1” yang berarti meminta data ataurequestdata secarabroadcastsetiap 20 detik sekali yang akan diterima olehnode router1 dan 2. Setelah mengirimkanrequest,

node coordinator akan menunggu data dari node router 1 dan 2. Node ini hanya menerima data darinode router1 dan 2 dengan format pesan data berawalan “%” dan memiliki ID “N1”, “N2”, “S1” dan “S2”. Ketika keempat data ini diterima,

maka seluruh ID akan dirubah menjadi “C” dan kemudian disimpan dalam

variabel tampung yang sudah dibuat. Jika semua tampung sudah terisi oleh

keempat data tersebut,nodeini akan membandingkan data tersebut sesuai masing-masingnode router. Dan hasil perbandingan data ini akan dikirimkan kenode end device (Gambar 3.10) yang kemudian akan ditampilkan di komputer menggunakan programvisual basic.


(59)

Berdasarkan Gambar 3.10, berikut adalah contoh pemrogaman modul

mikrokontroler arduino uno pada node coordinator yang diprogam pada software

Arduino IDE :

1. Inisialisasi

Pembuatan skrip ini dimulai dengan menuliskan skrip berikut ini. skrip

ini merupakan inisialisasi dan harus ada dalam program yang dibuat pada node coordinator.

int b=0;

String indata,tampung1,tampung2,tampung3,tampung4;

// variabel tampung0 yang menyimpan info errors pada node 1 String tampung0="%C1.errors";

// variabel tampung yang menyimpan info errors pada node 2 String tampung="%C2.errors"; void setup() { Serial.begin(9600); } void loop(){}

2. Mengirimkanrequestdata dan pembacaan data

Skrip ini merupakan pengiriman request data (angka %1) selama 20 detik sekali ke node router 1 dan 2. Kemudian akan membaca data yang masuk dari node router 1 dan 2 selama 4 kali. Ketika pembacaan keempat kalinya, program akan memanggil atau menjalankan fungsi banding ( ) untuk

membandingkan data yang diterimanode coordinator. void kirim(int dat)

{

if (dat == 1) {

//kondisi tampung dikosongkan setiap akan mengirimkan request //data tampung1=""; tampung2=""; tampung3=""; tampung4=""; Serial.print('%'); Serial.print(dat);

Serial.print(" : request data :"); Serial.print('\n');


(60)

} }

void loop(){ b=1;

//merupakan pembacaan data yang dilakukan selama 4 kali dengan //selang waktu 5 detik pada setiap kali pembacaannya.

while(b<5){ kirim(b);

while(Serial.available()>0){

char data_masuk=(char)Serial.read(); indata += data_masuk;

if(data_masuk=='\n'){}

seleksi(); //memanggil atau menjalankan fungsi seleksi //data

indata=""; }

}

indata=""; if (b == 4) {

banding(); //memanggil atau menjalankan fungsi banding data }

delay(5000); b++;

} }

3. Menyeleksi data, pemberian ID baru, dan tampung data

Void seleksi merupakan fungsi yang berisi skrip untuk menyeleksi data

yang masuk dan pemberian ID baru “C” yang selanjutnya akan ditampung

sebelum data tersebut dibandingkan. Karena node ini hanya menerima data dari

node router1 dan 2 yang masing-masing mempunyai format pesan dengan simbol

awal “%” dan ID “N1”, “N2”, “S1” dan “S2”, maka skrip penyeleksian data dan pemberian ID data yang baru dalam hal ini ID “C” sebagai berikut.

void seleksi() {

if ((indata[0]=='%') && (indata[1]=='N') ) {

//pemberian ID baru C indata[1]='C'; if (indata[2]=='1') {

tampung1=indata;// tampung data untuk N1 indata="";// mengkosongkan data

Serial.print("N1"); Serial.print(tampung1); }


(61)

if (indata[2]=='2') {

tampung3=indata;// tampung data untuk N2 indata="";// mengkosongkan data

Serial.print("N2"); Serial.print(tampung3); }

}

else if ((indata[0]=='%') && (indata[1]=='S')) {

//pemberian ID baru C indata[1]='C';

if (indata[2]=='1') {

tampung2=indata;// tampung data N1 melalui N2 indata="";// mengkosongkan data

Serial.print("N1viaN2"); Serial.print(tampung2); }

if (indata[2]=='2') {

tampung4=indata;// tampung data N2 melalui N1 indata="";// mengkosongkan data

Serial.print("N2viaN1"); Serial.print(tampung4); } } else { indata=""; } }

4. Membandingkan data dan pengiriman data

Skrip untuk membandingkan data dan pengiriman hasil perbandingan

dijadikan dalam satu fungsi. Fungsi tersebut adalah voidbanding. Fungsi ini akan melakukan proses perbandingan data dari masing-masingnode router.

void banding() {

Serial.println("Hasil Perbandingan :");

//jika seluruh tampung tidak terisi atau node coordinator tidak //menerima data

if ((tampung1 == "") && (tampung2 == "")) {

Serial.println(tampung0); }

if ((tampung3 == "") && (tampung4 == "")) {

Serial.println(tampung); }


(62)

// jika tampung terisi 1

if ((tampung1 != "") && (tampung2 == "")) {

Serial.print(tampung1); }

if ((tampung1 == "") && (tampung2 != "")) {

Serial.print(tampung2); }

if ((tampung3 != "") && (tampung4 == "")) {

Serial.print(tampung3); }

if ((tampung3 == "") && (tampung4 != "")) {

Serial.print(tampung4); }

// dua tampung terisi

if ((tampung1 != "") && (tampung2 != "")) {

if (tampung1 == tampung2) {

Serial.print(tampung1); }

}

if ((tampung3 != "") && (tampung4 != "")) {

if (tampung3 == tampung4) {

Serial.print(tampung3); }s

} }

Terdapat beberapa kondisi perbandingan yang dilakukan oleh node coordinator. Tampung1 akan dibandingkan dengan tampung2, sedangkan tampung3 akan dibandingkan dengan tampung4. Tampung data yang

dibandingkan selalu sama dalam setiap kondisi perbandingannya. Berikut kondisi

perbandingannya:

1. Jika node coordinator tidak menerima data dari node router 1 atau 2, maka

node coordinatorakan mengirimkan pesanerroryang terjadi padanode router

1 atau 2 kenode router end device.

2. Jika node coordinator hanya menerima salah satu data dari node router 1 atau 2, maka node ini akan membandingkan data tersebut. Jika salah satu tampung


(63)

terisi, node coordinator akan mengirimkan data sesuai dengan tampung yang diterima kenode router end device.

3. Jika node coordinator menerima semua data dari node router 1 dan 2 atau tampung1, 2, 3, 4 terisi, maka akan dilakukan perbandingan data. Jika data

tampung1 sama dengan tampung2, makanodeini akan mengirimkan data salah satu dari tampung ke node router end device (dalam skrip ini akan mengirimkan data tampung1). Jika data tampung3 sama dengan tampung4,

maka nodeini akan mengirimkan data salah satu dari tampung ke node router end device(dalam skrip ini akan mengirimkan data tampung3).

Setelah membandingkan data-data tersebut, node ini akan mengirimkan hasil perbandingan data kenode end device. Kemudian komputer akan mengambil data hasil perbandingan dari node end device untuk ditampilkan pada program yang telah dibuat.


(64)

59 4.1 Kebutuhan Hardware dan Software

Untuk dapat menguji sistem ini, diperlukan perangkat keras dan

perangkat lunak.

4.1.1 Kebutuhan Perangkat Keras (Hardware)

Penulis membutuhkan perangkat keras sebagai berikut:

1. Komputer atau laptop

2. Arduino uno SMD R3

3. Sensor Ultrasonik PING

4. Real time Clock(RTC) modul 5. Xbeeseries2 dengan Xbeeshield

4.1.2 Kebutuhan Perangkat Lunak (Software)

Perangkat lunak yang digunakan dalam pengujian sistem ini

menggunakansoftwarearduino IDE.

4.2 Pengujian Sistem

Pengujian sistem yang dilakukan penulis merupakan pengujian terhadap

perangkat keras dan perangkat lunak secara keseluruhan dan digunakan untuk


(65)

4.3 Pengujian Output Sensor Ultrasonik PING dan Modul RTC

Pengujian sensor ultrasonik dan modul RTC dilakukan untuk mengetahui

informasi ketinggian air beserta waktu disetiapnodepada prototipe. Terdapat dua

node sensor yang diletakan pada tempat atau kondisi yang berbeda pada saat pengukuran. Data yang dihasilkan oleh sensor dan RTC diolah oleh arduino

supaya dapat menghasilkan nilai ketinggian air dan waktu pada saat data

ketinggian air itu diambil.

4.3.1 Peralatan

Peralatan yang dibutuhkan pada setiap node dalam pengujian ini adalah sebagai berikut:

1. Arduino uno

2. Sensor ultrasonik PING

3. Modul RTC

4. Komputer atau laptop

5. Kabel USB

6. Softwarearduino IDE 7. Meteran

4.3.2 Prosedur Pengujian

Langkah–langkah dalam prosedur pengujian ini adalah sebagai berikut:

1. Hubungkan sensor ultrasonik dan modul RTC ke arduino uno menggunakan

kabel pada pin yang telah ditentukan.

2. Hubungkan arduino uno (node router) pada komputer menggunakan kabel USB.


(66)

3. Hubungkan node coordinator dengan komputer menggunakan kabel USB,

node coordinator digunakan untuk mengirimkan request data ke node sensor agarnodesensor dapat melakukan pembacaan terhadap sensor.

4. Aktifkan komputer atau laptop dan jalankansoftwarearduino IDE.

5. Upload skrip yang telah dibuat ke dalam arduino uno (node router) yang digunakan untuk membacaoutputsensor dan modul RTC.

6. Buka serial monitor pada software arduino IDE untuk melihat hasil output

dari sensor dan RTC

7. Amati dan bandingkan output sensor dengan pengukuran manual menggunakan meteran.

4.3.3 Hasil Pengujian

Pada pengujian ini sensor ultrasonik digunakan untuk mendapatkan ketinggian air pada prototipe. Selain itu juga melakukan pengukuran ketinggian

air secara manual menggunakan meteran. Sensor ultrasonik dan RTC akan mulai

membaca ketinggian air dan waktu saat data ketinggian air tersebut diambil ketika

arduino uno (node router) dinyalakan dan telah menerimarequest data darinode coordinator. Pengujian dapat dilakukan seperti Gambar 4.1.


(67)

Untuk mendapatkan hasil pengukuran dari sensor digunakan skrip berikut ini pada setiapnode router:

1. Node router1 #include <Wire.h> #include "RTClib.h"

String id,indata,tampung; const int pingPin = 7; RTC_DS1307 RTC;

void setup() {

// initialize serial communication: Serial.begin(9600);

Wire.begin(); // Start the Wire (I2C communications) RTC.begin(); // start RTC

RTC.adjust(DateTime(__DATE__, __TIME__));

//mengatur waktu pada RTC sesuai dengan waktu pada komputer // perintah ini dilakukan hanya sekali untuk RTC

}

long microsecondsToCentimeters(long microseconds) {

return microseconds / 29 / 2; }

void loop(){

while(Serial.available()>0){

char data_masuk=(char)Serial.read(); id += data_masuk;

if(data_masuk =='\n') {

if((id[0]=='%') && (id[1]=='1')) {

delay(1000); sph();

id=""; }

else if ((id[0]=='%') && (id[1]=='N')) { delay(4500); sensor2(); } id=""; } } }

void sph() //fungsi pembacaan sensor ultrasonik dan RTC {

//baca sensor1

long duration, cm, i; pinMode(pingPin, OUTPUT); digitalWrite(pingPin, LOW); delayMicroseconds(2);

digitalWrite(pingPin, HIGH); delayMicroseconds(5);


(68)

digitalWrite(pingPin, LOW); pinMode(pingPin, INPUT);

duration = pulseIn(pingPin, HIGH);

cm = microsecondsToCentimeters(duration); i = 40-(cm-7);

if ((i==47) || (i < 0)) {

i=0; }

//kirim data sensor1 Serial.print('%'); Serial.print("N1."); Serial.print(i); Serial.print('.'); //date

DateTime now = RTC.now(); Serial.print(now.day(), DEC); Serial.print('/'); Serial.print(now.month(), DEC); Serial.print('/'); Serial.print(now.year(), DEC); //time Serial.print('.'); Serial.print(now.hour(), DEC); Serial.print(':'); Serial.print(now.minute(), DEC); Serial.print(':'); Serial.print(now.second(), DEC); Serial.print('.'); Serial.print('$'); Serial.print('\n'); }

void sensor2 () //fungsi sensor2 {

if (id[0]=='%') {

if ((id[1]=='N') && (id[2]=='2')) { id[1]='S'; indata=id; } Serial.print(id); } id=""; }

Skrip atau teks yang tercetak tebal merupakan program yang dilakukan

secara berulang – ulang. Skrip tersebut akan membaca data yang masuk

melalui komunikasi nirkabel, jika node router 1 menerima pesan “%1” yang dimana pesan tersebut merupakan request data dari node coordinator, maka setelah delay 1000 ms atau 1 detik,node router1 akan membaca ketinggian air


(69)

dan waktu pada prototipe dan mengirimkan data tersebut secara broadcast ke

coordinator dan node router 2. Fungsi sph ( ) merupakan skrip pembacaan ketinggian air yang dilakukan oleh sensor dan pembacaan waktu yang

dilakukan oleh modul RTC yang kemudian data tersebut dikirimkan secara

broadcastoleh xbeeseries2. Data ketinggian air dan waktu padanode router1

memiliki ID “N1”. Jikanode router1 menerima pesan “%N” yang mana pesan data tersebut dari node router 2, maka dengan delay 4500 ms atau 4,5 detik,

node router 1 membaca data dari node router 2 yang kemudian memforwardnya ke node coordinator. Pembacaan data dari node router 2 dilakukan pada skrip fungsi sensor2 ( ). Fungsi skrip sensor2 ( ) adalah jika

data atau pesan yang diterima mempunyai awalan “%N2”, maka karakter “N” akan diubah menjadi “S”. Gambar 4.2 menunjukkan hasil pengukuran

ketinggian air oleh sensor ultrasonik dan waktu oleh RTC padanode router1.

Gambar 4.2Hasil Pengukuran Sensor Ultrasonik dan Pembacaan Waktu RTC padaNode router1


(1)

7. Ukur jarak antar Xbee, dan carilah jangkauan atau jarak maksimal pengiriman dan penerimaan data.

4.5.3 Hasil Pengujian

Dari langkah–langkah pengujian komunikasi data pada Xbee yang telah dilakukan di luar ruangan (Outdoor Area) dan di dalam ruangan (Indoor Area) didapatkan hasil jarak atau jangkauan pengiriman dan penerimaan data sebagai berikut:

Tabel 4.2Hasil Pengujian Jarak Pengiriman dan Penerimaan data pada Xbee (Outdoor)

No. Jarak (meter) Keterangan

1. 10 Ok

2. 20 Ok

3. 30 Ok

4. 40 Ok

5. 50 Ok

6. 60 Ok

7. 70 Ok

8. 80 Ok

9. 90 Ok

10. 100 Ok

11. 101 Gagal

12. 102 Gagal

13. 103 Gagal

14. 104 Gagal


(2)

79

Tabel 4.3Hasil Pengujian Jarak Pengiriman dan Penerimaan data pada Xbee (indoor)

No. Jarak (meter) Keterangan

1. 10 Ok

2. 20 Ok

3. 30 Ok

4. 40 Ok

5. 41 Gagal

6. 42 Gagal

Pada kondisi outdoor dengan jarak 1 - 100 meter pengiriman dan penerimaan data antar node dapat berkomunikasi dengan baik, tetapi pada jarak 101 meter tidak dapat berkomunikasi. Artinya komunikasi antar node tersebut terputus, sehingga node yang dituju tidak dapat menerima data yang dikirimkan olehnodelain.

Sedangkan pada kondisi indoor dengan jarak 1 – 40 meter dapat berkomunikasi dengan baik. Setelah jarak melebihi 40 meter komunikasi terputus. Dengan demikian hasil yang didapat sama dengan spesifikasi pada datasheetxbee S2.


(3)

80 5.1 Kesimpulan

Kesimpulan dari tugas akhir “RANCANG BANGUN PROTOTIPE APLIKASI WIRELESS SENSOR NETWORK UNTUK PERINGATAN DINI TERHADAP BANJIR” adalah :

1. Sistem WSN dalam pengukuran ketinggian air pada prototipe ini menggunakan 4nodeyaitunode router1,router2,coordinatordanrouter end device. Node router 1 dan 2 terdiri dari modul mikrokontroler arduino uno sebagai otak keseluruhan sistem untuk menentukan pembacaan ketinggian air oleh sensor ultrasonik dan pembacaan waktu oleh modul RTC. Data ketinggian air dan waktu akan dikirimkan ke node lainnya secara nirkabel menggunakan modul Xbee series 2 beserta shield. Sedangkan node coordinator dan router end device terdiri dari modul mikrokontroler arduino uno dan modul Xbee series2 besertashield.

2. Sistem melakukan pengukuran ketinggian air dan waktu secara real timemelalui komunikasi nirkabel dan didapatkan hasil pengujian seperti: a) Rata – rata persentase keselahan (error) pengukuran ketinggian air

menggunakan sensor ultrasonik berkisar antara 2,09% sampai dengan 2,56%. Secara umum, semakin dekat jarak yang ditampilkan oleh pembacaan sensor semakin kecil persen kesalahan.

b) Hasil pengujian komunikasi pengiriman dan penerimaan data secara nirkabel menggunakan Xbee series 2 memiliki jangkauan jarak 1 – 100


(4)

81

meter pada kondisi outdoor. Sedangkan pada kondisi indoor jangkauan jarak pengiriman dan penerimaan data antara 1–40 meter.

5.2 Saran

Agar diperoleh hasil yang lebih baik dan sebagai pengembangan pada penelitian berikutnya sebaiknya mempertimbangkan langkah ini:

1. Sensor ultrasonik PING bekerja berdasarkan prinsip pemantulan gelombang ultrasonik, terkadang pantulan gelombang ultrasonik menjadi tidak periodik dan menyebabkan hasil pengkuran tidak akurat oleh karena itu, didalam pemasangan sensor ultrasonik harus diperhatikan posisi dan jalur pembacaan sensor ultrasonik.

2. Jika ingin memiliki jangkauan jarak komunikasi secara nirkabel yang lebih jauh, bisa menggunakan modul Xbee Pro series2 disetiap nodenya atau modul komunikasi nirkabel lainnya.


(5)

82

arduino.cc. 2013. Arduino Xbee Shield, [online], (http://arduino.cc/en/Main/ArduinoXbeeShield, diakses tanggal 24 November 2013)

arduino.cc. 2013. Arduino Program Language Reference, [online], (http://arduino.cc/en/Reference/HomePage, diakses tanggal 24 November 2013)

arduino.cc. 2013. Arduino Board Uno SMD, [online] (http://arduino.cc/en/Main/ArduinoBoardUnoSMD, diakses tanggal 24 November 2013)

arduino.cc. 2013. Software Arduino IDE, [online] (http://arduino.cc/en/main/software, diakses tanggal 24 November 2013) Arief, U. M. 2011. Pengujian Sensor Ultrasonik PING untuk Pengukuran Level

Ketinggian dan Volume Air.Elektrikal Enjiniring, 72-77.

Arrosyid, M. H., Tjahjono, I. A., & Epyk Sunarno, S. 2009. Implementasi Wireless Sensor Network untuk Monitoring Parameter Energi Listrik sebagai Peningkatan Layanan bagi Penyedia Energi Listrik.

Banzi, M. 2009.Getting Started with Arduino.America: O'Reilly. Djuandi, F. 2011.Pengenalan Arduino.Banten: www.tobuku.com.

E, I. M., Sugiarto, B., & Sakti, I. 2009. Rancang Bangun Sistem Monitoring Kualitas Udara Menggunakan Teknologi Wireless Sensor Network (WSN).Jakarta: INKOM.

Faludi, R. 2011.Building Wireless Sensor Networks.America: O'Reilly.

Inc, D. I. 2012.XBee / XBee-Pro ZB RF Modules. Minnetonka: Digi International Inc.

Inc, D. I. 2007.XBee Series 2 OEM RF Modules.Lindon: MaxStream.

Inc, D. I. 2008. X-CTU Configuration & Test Utility Software. Minnetonka: Digi International Inc.

inkubator-teknologi.com. 2012. Pengukuran Jarak dengan Sensor Ultrasonik Ping Tanpa Timer, [online], (http://inkubator-teknologi.com/pengukur-jarak-dengan-sensor-ultrasonic-ping-tanpa-timer/, diakses tanggal 14 Desember 2013)


(6)

83

Yunidar. 2009. Penerapan Sensor Ping Sebagai Pemantau Ketinggian Air Berbasis Mikrokontroler AT89C2051.Rekayasa Elektrika, 71-76.