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
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
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
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
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
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
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
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
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
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
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
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
device–deviceyang 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
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
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)
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
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
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.
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
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
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
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
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
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.
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) {}
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.
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.
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)
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)
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.
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
[image:30.595.98.507.221.499.2]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.
(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
saja yang dapat berkomunikasi, agar dapat berkomunikasi PAN ID dalam satu
jaringan harus sama. Xbee dapat berkomunikasi point to point dan point to
[image:32.595.89.501.206.714.2]multipoint (broadcast).
Gambar 2.10Xbee UsbAdapterdan Kabel Mini Usb
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
[image:33.595.95.510.328.528.2]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
menerima data dalam format Hex dan ASCII dengan memilih Assemble Packet
[image:34.595.88.505.139.601.2](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
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,
[image:35.595.93.505.311.733.2]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).
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
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).
[image:37.595.234.404.626.726.2]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
[image:38.595.90.504.188.532.2]ditetapkan pada beberapa Xbee yang berbeda (Gambar 2.19).
Gambar 2.19 SavedanLoad Modem Profile
2.12 Topologi Point to Point
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
[image:39.595.93.506.320.559.2]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
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
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,
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
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
[image:44.595.98.514.309.724.2]tahap setiap proses yang akan di jalankan pada bagan Gambar 3.2.
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
[image:45.595.99.514.289.730.2]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.
[image:45.595.113.511.498.726.2]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),
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
G
am
b
ar
3.5
P
rot
ot
ipe
P
engukur
an K
et
inggi
an A
ir
S
unga
i
[image:48.595.94.501.81.749.2]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
[image:49.595.97.510.316.518.2]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
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.
[image:50.595.91.503.288.624.2]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
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
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
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
[image:53.595.93.507.299.739.2](cm) (inkubator-teknologi.com, 2012).
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('%');
//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 ()
{
{
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=""; }
[image:56.595.90.504.296.610.2]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
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
}
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
[image:58.595.92.512.299.720.2]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.
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);
} }
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);
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);
// 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.
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).
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 Ultras