Topologi Jaringan Software Arduino

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