dengan massa butiran tanah massa tanah dalam kondisi kering, yang ditunjukkan oleh persamaan berikut :
Rh = ma-mt x 100 2.1
Keterangan : Rh = Kelembaban Tanah
ma = Massa Air Gram mt = Massa Tanah Gram
Massa butiran tanah diperoleh dengan menimbang tanah kering. Sedangkan massa air adalah selisih dari massa butiran tanah yang telah diberi air dengan massa butiran tanah
[6].
2.2 Topologi Jaringan
Topologi jaringan atau bentuk jaringan pada wireless sensor network dapat di bedakan menjadi topologi jaringan point to point, topologi jaringan multihop, dan topologi
jaringan mesh. Topologi yang pertama yaitu topologi point to point yang sering disebut star, dimana setiap nodenya langsung terhubung ke gateway. Topologi yang ke dua yaitu
topologi mutihop atau yang lebih dikenal dengan nama cluster tree, dimana setiap node terhubung dengan node lain yang lebih tinggi dan node tersebut terhubung dengan gateway
sehingga berbentuk mirip pohon. Data akan di kirimkan dari node terendah ke gateway. Topologi yang terakhir adalah topology mesh, node dapat saling terhubung ke node yang
banyak di dalam sistem dan data akan melalui jalur terbaik. Gambar dari ke tiga macam topologi tersebut dapat dilihat pada Gambar 2.1.
Gambar2.1 Topologi Jaringan WSN [7] PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2.3 Mikrokontroler
Mikrokontroler adalah salah satu dari bagian besar suatu sistem komputer. Meskipun mempunyai bentuk yang lebih kecil dari komputer pribadi muapun komputer mainframe,
mikrokontroler dibangun dari elemen-elemen dasar yang sama. Seperti komputer pada umumnya, mikrokontroler alat yang mengerjakan intruksi-intruksi yang diberikan. Bisa
disimpulkan bahwa bagian terpenting dan utama dari suatu sistem adalah program itu sendiri yang dibuat oleh programmer. Program menginstruksikan computer untuk
melakukan jalinan yang panjang untuk aksi-aksi sederhana untuk melakukan tugas yang lebih kompleks yang dinginkan oleh programmer[8].
Mikrokontroler digunakan untuk mengolah dari masukan input menjadi keluaran output yang diinginkan. Input mikrokontroler dapat berupa tombol, sensor dan dapat juga berupa
data komputer sedangkan output mikrokontroler dapat berupa lampu, motor dan solenoid. Mikrokontroler saat ini mengalami perkembangan yang sangat pesat baik dari bentuk,
fungsi, dan kemampuannya sebagai kontroler. Perintah-perintah yang diberikan pada mikrokontroler untuk mengontrol sebuah sistem ditulis dalam bahasa pemrograman.
Bahasa pemrograman yang sering digunakan pada mikrokontroler antara lain bahasa C, C++, basic, dan assembly. Pada penelitian ini, penulis menggunakan mikrokontroler
Arduino. Arduino adalah sebuah platform elektronik yang open source. Arduino yang digunakan adalah Arduino Uno R3. Bahasa pemrograman yang digunakan oleh Arduino
adalah bahasa C [8].
2.3.1 Arduino Uno R3
Arduino Uno R3 seperti Gambar 2.1. adalah board berbasis mikrokontroler pada ATMega 328. Board Arduino Uno R3 seperti yang ditunjukkan Gambar 2.2. memiliki 14
digital input ouput pin dimana 6 pin dapat digunakan sebagai ouput PWM, 6 input analog, 16 MHz osilator kristal, koneksi USB, jack listrik dan tombol reset. Pin
– pin ini berisi semua yang diperlukan untuk mendukung mikrokontroler, hanya terhubung ke
komputer dengan kabel USB atau sumber tekanan bisa didapat dari adaptor AC – DC atau
baterai untuk menggunakannya Arduino, Inc., 2009 [8]. Setiap digital pin pada board arduino Uno R3 beroperasi pada tegangan 5 volt. Pin-pin digital tersebut juga
memungkinkan dapat mengeluarkan atau menerima arus maksimal sebesar 40 mA dan memiliki internal pull-up resistor yang terputus secara default antara 20
– 50 Kohm [9]. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Spesifikasi Arduino Uno R3 ditunjukkan pada alokasi penempatan pin-pin Arduino Uno R3 pada Tabel 2.1
Tabel 2.1. Keterangan Alokasi Penempatan Pin Arduino Uno R3 No
Parameter Keterangan
1 ATmega 328
IC mikrokontroler yang digunakan pada Arduino Uno R3. IC ATmega 328
memiliki flash memory 32 KB dengan 0.5 KB digunakan untuk bootloader.
ATmega 328 juga memiliki 2 KB SRAM dan 1 KB EEPROM yang dapat
ditulis dan dibaca dengan EEPROM library [8].
2 Jack USB
Untuk komunikasi mikrokontroler dengan PC
3 Jack Adaptor
Masukan power eksternal bila Arduino bekerja
mandiri tanpa
komunikasi dengan PC melalui kabel serial USB.
4 Tombol Reset
Tombol reset internal yang digunakan untuk mereset modul Arduino.
5 SDA dan SCL
Komunikasi Two Wire Interface TWI atau Inter Integrated Circuit I2C dengan
menggunakan Wire library.
6 GND dan AREF
GND = Pin ground dari regulator
tegangan board Arduino.
AREF = Tegangan Referensi untuk input analog
7 Pin Digital
Pin yang digunakan untuk menerima input digital dan memberi output berbentuk
digital 0 dan 1 atau low dan high
8 Pin Serial
Digunakan untuk
menerima dan
mengirimkan data serial TTL Receiver Rx, Transmitter Tx. Pin 0 dan 1 sudah
terhubung kepada pin serial USB to TTL sesuai dengan pin ATmega.
9 Pin Power
Vin = Masukan tegangan input bagi
Arduino ketika menggunakan dumber daya eksternal.
5 V = Sumber tegangan yang dihasilkan
regulator internal board Arduino.
3,3 V = Sumber tegangan yang dihasilkan regulator internal board Arduino. Arus
maksimal pada pin ini adalah 50 mA.
GND = Pin ground dari regulator tegangan board Arduino.
IOREF = Tegangan Referensi.
10 Pin Analog In
Menerima input dari perangkat analog lainnya.
Gambar 2.2 Tampilan Arduino Uno R3 [1] Arduino Uno R3 berbeda dengan semua board sebelumnya karena Arduino Uno R3
ini tidak menggunakan chip driver FTDI USB-to-serial. Melainkan menggunakan fitur dari ATMega 16U2 yang diprogram sebagai konverter USB-to-serial [10]. Board Arduino
Uno memiliki fitur – fitur baru seperti pada Tabel 2.1. yaitu:
a. Pin out :
Menambahkan SDA dan SCL pin yang deket ke pin AREF dan dua pin baru lainnya ditempatkan dekat ke pin RESET, dengan IO REF yang memungkinkan sebagai
buffer untuk beradaptasi dengan tegangan yang disediakan dari board sistem. Pengembangannya, sistem akan lebih kompatibel dengan prosesor yang
menggunakan AVR, yang beroperasi dengan 5V dan dengan Arduino karena beroperasi dengan 3,3V. Yang kedua adalah pin yang tidak terhubung, yang
disediakan untuk tujuan pengembangannya. b.
Sirkuit reset. c.
ATMega 16U2 ganti 8U yang digunakan sebagai konverter USB-to-serial. Board Arduino Uno R3 dapat beroperasi pada pasokan daya dari 6
– 20 volt. Jika diberikan dengan kurang dari 7V, bagaimanapun pin 5V dapat menyuplai kurang dari 5
volt dan board mungkin tidak stabil. Jika menggunakan lebih dari 12V, regulator bisa panas dan merusak board. Rentang yang dianjurkan adalah 7V
– 12V. Selain itu, beberapa pin memiliki fungsi khusus :
a. Serial : 0 RX dan 1 TX. Digunakan untuk menerima RX dan mengirim TX
data TTL serial. Pin ini terhubung ke pin yang sesuai dari chip ATMega8U2 USBto- Serial TTL.
b. Eksternal Interupsi : 2 dan 3. Pin ini dapat dapat dikonfigurasi untuk memicu
interupsi pada nilai yang rendah, tepi naik atau jatuh, atau perubahan nilai. Lihat attchInterrupt fungsi untuk rincian.
c. PWM : 3,5,6,9,10, dan 11. Menyediakan 8-bit output PWM dengan fungsi
analogWrite. d.
SPI : 10 SS, 11 MOSI, 12 MISO, 13 SCK. Pin ini mendukung komunikasi SPI menggunakan library SPI. SPI Serial Peripheral Interface adalah sebuah
sinkronisasi serial data protocol yang digunakan oleh mikrokontroler untuk melakukan komunikasi dengan satu atau lebih peripheral device secara cepat
berjarak pendek. SPI dapat juga digunakan untuk melakukan komunikasi antara dua mikrokontroler.
e. LED : 13. Ada built-in LED terhubung ke pin digital 13. Ketika pin adalah nilai
TINGGI, LED menyala, ketika pin adalah RENDAH, LED off.
Arduino Uno R3 seperti ditunjukkan Gambar 2.2. memiliki 6 input analog diberi label A0 sampai A5, masing
– masing menyediakan 10-bit resolusi yaitu 1024 nilai yang berbeda. Secara default sistem mengukur dari ground sampai 5 volt, meskipun mungkin
untuk mengubah ujung atas rentang mengunakan pin AREF dan fungsi analogReference.
Gambar 2.3. Alokasi Penempatan Pin Arduino Uno R3 [2] Selain itu, beberapa pin memiliki fungsi khusus :
a. TWI : A4 atau SDA pin dan A5 atau SCL pin. Mendukung komunikasi TWI
menggunakan wire library. b.
AREF :
Referensi tegangan
untuk input
analog. Digunakan
dengan analogReference .
c. RESET : memberikan logika LOW untuk mereset mikrokontroler [10].
2.3.1.1. Komunikasi
Arduino Uno R3 memiliki sejumlah fasilitas untuk berkomunikasi dengan komputer, arduino lain, atau mikrokontroler lainnya. ATmega328 menyediakan UART TTL 5V
komunikasi serial, yang tersedia di pin digital 0 RX dan 1 TX. Sebuah ATmega16U2 pada board ini komunikasi serial melalui USB dan muncul sebagai comport virtual untuk
perangkat lunak pada komputer. Firmware 16U2 menggunakan USB driver standar COM, dan tidak ada driver eksternal yang diperlukan. Namun, pada Windows, file. Inf
diperlukan. Perangkat lunak Arduino termasuk monitor serial yang memungkinkan data sederhana yang akan dikirim ke board Arduino. RX dan TX di board LED akan berkedip
ketika data sedang dikirim melalui chip USB-to-serial dan koneksi USB ke komputer tetapi tidak untuk komunikasi serial pada pin 0 dan 1. Fungsi ini digunakan untuk
melakukan komunikasi interface pada sistem. ATmega328 juga mendukung komunikasi I2C TWI dan SPI [4]. Setiap IC mikrokontroler memiliki EEPROM yang merupakan
memori yang nilainya tersimpan ketika IC mikrokontroler non aktifkan seperti hard drive kecil. Sistem penyimpanan ini memungkinkan untuk melakukan pembacaan atau menulis
dalam satuan byte. Setiap IC mikrokontroler memiliki kapasitas EEPROM yang berbeda. Pada IC mikokontroler ATmega 328 yang terdapat pada Arduino Uno R3 memiliki
EEPROM sebesar 1024 byte [10].
2.4. Software Arduino
Menulis program di Arduino dilakukan dengan Arduino IDE, yaitu software yang beroperasi di komputer. Menurut situs http:www.arduino.cc
perangkat lunak disebut sebagai Arduino Software [5]. Software ini tersedia untuk platform Windows, Mac OS X,
dan Linux. Software Arduino IDE bermanfaat untuk menuliskan kode untuk mengontrol Arduino Uno dan mengirimkan hasil kompilasi ke papan Arduino Uno [6]. Lingkungan
Arduino yang open source memungkinkan untuk menulis write dan mengunggah upload program pada Arduino. Arduino dapat diprogram pada sistem operasi komputer
berbasis Windows, Mac OS X, dan Linux. Bahasa pemrogramannya dapat ditulis di Java, avr-gcc dan perangakat lunak yang berbasis open source lainnya [7]. IDE Arduino
membutuhkan beberapa pengaturan yang digunakan untuk mendeteksi board Arduino yang sudah dihubungkan ke komputer. Beberapa pengaturan tersebut adalah mengatur
jenis board yang digunakan sesuai dengan board yang terpasang dan mengatur jalur komunikasi data melalui perintah Serial Port. Kedua pengaturan tersebut dapat ditemukan
pada pull down menu Tools [10]. Tampilan jendela Arduino IDE ditunjukkan pada Gambar 2.3. Keterangan mengenai simbol-simbol icon yang terdapat pada jendela Arduino
IDE dijelaskan pada Tabel 2.2. sebagai berikut: Tabel 2.2. Keterangan tombol pada tampilan Arduino IDE
No Tombol
Nama Fungsi
1 Verify
Menguji apakah ada kesalahan pada program atau sketch. Apabila sketch
sudah benar, maka sketch tersebut akan
dikompilasi. Kompilasi adalah proses mengubah kode program ke dalam
kode mesin.
2 Upload
Mengirimkan kode
mesin hasil
kompilasi ke board Arduin. 3
New Membuat sketch yang baru
4 Open
Membuka sketch yang sudah ada 5
Save Menyimpan sketch yang dibuat
6 Serial Monitor
Menampilkan data yang dikirim dan diterima melalui komunikasi serial
Gambar 2.4. Tampilan arduino software Arduino IDE
Tugas dari arduino software adalah menghasilkan sebuah file berformat hex yang akan diunduh pada papan arduino atau papan sistem mikrokontroler lainnya. Ini mirip
dengan Microsoft Visual Studio, Eclipse IDE, atau Netbeans. Lebih mirip lagi adalah IDE PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
semacam Code::Blocks, CodeLite atau Anjuta yang mempermudah untuk menghasilkan file program. Bedanya kesemua IDE tersebut menghasilkan program dari kode bahasa C
dengan GNU GCC sedangkan arduino software arduino IDE menghasilkan file hex dari baris kode yang dinamakan sketch [6]. Sketch adalah nama dari program yang ditulis
pada arduino software, kemudian sketch merupakan kesatuan dari kode program yang akan diunggah dan dijalankan pada papan Arduino. Pada umumnya sketch yang dibuat di
arduino Software di-compile dengan perintah verify Compile Ctrl+R lalu hasilnya diunduh ke papan Arduino seperti Arduino Uno R3. Program hasil kompilasi itu lalu
dijalankan oleh bootloader. Semua papan Arduino memiliki perangkat lunak yang dinamakan bootloader [11].
2.5. Moisture Sensor