Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4
IMPLEMENTASI HOME AUTOMATION MENGGUNAKAN SINGLE-BOARD ARDUINO DENGAN PENGENDALI BERBASIS ANDROID Ridho Taufiq Subagio1, Dwi Cahyadi2 1,2
Program Studi Teknik Informatika, STMIK CIC Cirebon Email:
[email protected],
[email protected]
ABSTRAK Home Automation adalah sebuah sistem otomatisasi untuk memudahkan kontrol di dalam rumah atau yang berkaitan dengan pekerjaan rumah tangga. Bagian-bagian yang dikontrol adalah perangkat elektronik seperti lampu, air conditioner, pemanas, dan perangkat elektrik lainnya. Saat ini proses pengembangan home automation masih terus dilakukan dengan salah satu tujuan pengembangannya adalah bagaimana meningkatkan nilai utilitas serta penyederhanaan media maupun komponen elektronik yang digunakannya agar dapat terjangkau oleh banyak kalangan masyarakat. Berbagai penelitian tentang home automation telah banyak dilakukan yang secara umum fokus pada pengendalian alat-alat listrik dengan peralatan kontrol dan media komunikasi yang berbeda-beda. Dalam penelitian ini akan dibuat sistem kendali berbasis android menggunakan arduino board untuk penerapan home automation yang akan mengendalikan perangkat elektrik dengan penambahan fitur keamanan meliputi alarm, kamera untuk monitoring, dan kendali kunci pintu otomatis. Arduino adalah single-board berbasis mikro kontroler Atmel AVR dan bersifat opensource yang merupakan turunan dari wiring platform. Arduino dirancang untuk memudahkan pengendalian perangkat elektrik dalam penggunaannya di berbagai bidang. Perangkat lunak arduino memiliki bahasa pemrograman sendiri. Hasil dari penelitian ini adalah sebuah sistem pengendali home automation menggunakan smartphone android yang dapat mengontrol peralatan elektrik yang terhubung dengan arduino board. Jenis komunikasi yang digunakan masih dalam lingkup jaringan lokal menggunakan Wi-Fi router sebagai penghubung antara perangkat android dan arduino board. Kata Kunci: Home Automation, Arduino, Android
1. PENDAHULUAN Dalam kesehariannya, sering terjadi ketika penghuni rumah pergi dan telah berada di luar rumah baru teringat bahwa ada beberapa perangkat elektrik di rumahnya yang belum dimatikan dan tidak memungkinkan untuk kembali ke rumah karena jarak yang jauh. Home automation adalah sebuah sistem otomatisasi untuk memudahkan kontrol di dalam rumah atau dalam hal ini berkaitan dengan pekerjaan rumah tangga, otomatisasi ini bisa meliputi penerangan rumah, Heat Ventilation Air Conditioner (HVAC), keamanan dan perangkat elektrik lainnya. Dengan demikian teknologi home automation memang diperlukan karena dapat memudahkan pengguna dalam mengontrol peralatan elektrik di rumahnya lebih mudah [1]. Untuk membuat sistem otomatisasi diperlukan biaya yang tidak sedikit. Sistem home automation terus dilakukan proses pengembangan, banyak pihak telah mencoba untuk mengembangkan teknologi ini dengan tujuan meningkatkan nilai utilitasnya serta penyederhanaan dari penggunaan komponen agar dapat digunakan oleh banyak kalangan masyarakat dengan biaya yang murah. Pemanfaatan perangkat android dan penggunaan media komunikasi wireless, baik bluetooth maupun WiFi untuk sistem home automation ini telah dilakukan dibeberapa penelitian sebelumnya, namun masih berfokus pada bagaimana mengendalikan perangkat elektrik saja [2, 3]. Dalam penelitian ini akan ditambahkan fitur lainnya, yaitu faktor keamanan seperti kamera pengawas, alarm, dan kunci pintu otomatis sebagai tindakan pencegahan. Tujuan dari penelitian ini adalah bagaimana memanfaatkan perangkat android yang sudah ada dan telah banyak digunakan oleh masyarakat serta single-board arduino yang harganya semakin terjangkau untuk mengontrol perangkat elektrik di rumah sehingga dapat memberikan kemudahan monitoring, kenyamanan, dan keamanan. 2. METODE 2.1. Metode Penelitian Metode penelitian yang dilakukan dalam penelitian ini dibagi dalam beberapa tahapan penelitian, yaitu. 1) Pengumpulan data-data yang diperlukan berhubungan dengan sistem yang akan dibuat melalui studi pustaka yang bersumber dari buku referensi, jurnal, maupun internet. 2) Melakukan analisis kebutuhan perangkat keras yang digunakan serta perancangan interkoneksinya. 3) Melakukan perancangan dan pembuatan perangkat lunak pada bagian sistem Arduino dan Android. 4) Melakukan uji coba sistem secara keseluruhan. 241
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4 2.2. Home Automation Home automation atau biasa disebut juga home control, smart home, smart house atau intelligent home sebenarnya adalah kumpulan dari perangkat, sistem dan subsistem yang mana memiliki kemampuan untuk berinteraksi satu sama lain atau berfungsi secara independen. Hal ini memungkinkan pemilik rumah dapat mengendalikan hampir seluruh peralatan rumah secara individual atau secara kolektif dengan menggunakan penjadwalan otomatis atau perubahan secara tiba-tiba [1]. Definisi lain dari home automation, home automation terdiri atas dua kata home dan automation. 1) Home (noun): sebuah tempat (seperti rumah atau apartemen) dimana manusia tinggal. 2) Automation (noun): operasi secara otomatis yang dikendalikan melalui sebuah alat, proses atau sistem dengan perangkat mekanik atau elektronik untuk mengambil alih kerja manusia. Jadi definisi dari home automation adalah tindakan untuk menjadikan kendali tugas di dalam rumah yang dilakukan oleh manusia menjadi otomatis [4]. 2.3. Single-board Arduino Arduino adalah kit elektronik atau board rangkaian elektronik berbasis mikrokontroler yang bersifat opensource dimana di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR buatan Atmel (Atmega328). Arduino merupakan opensource electronic platform yang bersifat easyto-use untuk membuat berbagai proyek elektronika. Arduino dapat menerima sinyal dari berbagai macam sensor dan dapat mengendalikan berbagai perangkat seperti LED, motor, dan lain-lain. Selain itu, karena arduino adalah sistem berbasis microcontroller maka perlu dituliskan perintah atau program ke dalam Arduino tersebut agar dapat berfungsi sesuai dengan yang diinginkan. Bahasa pemrograman yang digunakan mirip dengan C# dan untuk meng-upload program ke arduino dibutuhkan aplikasi arduino IDE yang merupakan aplikasi compiler resmi dari arduino [5]. Gambar 1 merupakan tampilan dari singleboard arduino uno.
Gambar 1. Single-board arduino uno. Single-board arduino ini menyediakan dukungan soket ekspansi sehingga dapat dikembangkan fungsinya untuk keperluan lain. Beberapa komponen yang didukung oleh single-board arduino ini, antara lain. 2.3.1. Ethernet Shield Board Penambahan Ethernet Shield Board memungkinkan single-board arduino dapat terhubung ke jaringan lokal maupun internet. Ethernet Shield ini berbasis ethernet chip Wiznet W5100. Wiznet W5100 menyediakan protokol jaringan TCP/IP dan UDP. Dukungan Ethernet Shield Board dapat dilakukan hingga empat koneksi soket secara simultan. Ethernet Shield Board terhubung ke single-board arduino melalui soket dengan pin yang terhubung dan menumpuk di atasnya [5]. Gambar 2 merupakan tampilan dari arduino ethernet shield R3.
Gambar 2. Arduino ethernet shield R3. 242
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4 2.3.2. Relay Module Board Relay adalah saklar mekanik yang dikendalikan atau dikontrol secara elektronik (elektromagnetik). Saklar pada relay akan terjadi perubahan posisi OFF ke ON pada saat diberikan energi elektromagnetik pada armatur relay tersebut. Relay pada dasarnya terdiri dari 2 bagian utama yaitu saklar mekanik dan sistem pembangkit elektromagnetik (induktor inti besi). Saklar atau kontaktor relay dikendalikan menggunakan tegangan listrik yang diberikan ke induktor pembangkit magnet untuk menarik armatur tuas saklar atau kontaktor relay [6]. Gambar 3 merupakan tampilan dari Relay Module Board Shield 4 Channel 5V.
Gambar 3. Relay module board shield 4 channel 5V. 2.3.3. Passive Infra Red (PIR) Passive Infra Red (PIR) adalah sensor yang digunakan untuk mendeteksi adanya pancaran sinar infra merah. Sensor PIR bersifat pasif, artinya sensor ini tidak memancarkan sinar infra merah tetapi hanya menerima radiasi sinar infra merah dari luar [6]. Gambar 4 menunjukkan bentuk dan tampilan dari Passive Infra Red (PIR).
Gambar 4. Passive Infra Red (PIR). 2.3.4. Buzzer Buzzer adalah komponen elektronik yang berfungsi untuk mengubah getaran listrik menjadi getaran suara. Pada dasarnya prinsip kerja buzzer hampir sama dengan loudspeaker, jadi buzzer juga terdiri dari kumparan yang terpasang pada diafragma dan kemudian kumparan tersebut dialiri arus sehingga menjadi elektromagnet, kumparan tadi akan tertarik ke dalam atau keluar, tergantung dari arah arus dan polaritas magnetnya, karena kumparan dipasang pada diafragma maka setiap gerakan kumparan akan menggerakkan diafragma secara bolak-balik sehingga membuat udara bergetar yang akan menghasilkan suara [6]. Gambar 5 merupakan tampilan dari Buzzer.
Gambar 5. Buzzer. 2.3.5. Motor Servo Motor servo adalah motor DC yang dilengkapi rangkaian kendali dengan sistem closed feedback yang terintegrasi di dalam motor tersebut. Pada motor servo posisi putaran sumbu (axis) dari motor akan diinformasikan kembali ke rangkaian kontrol yang ada di dalam motor servo [6]. Motor servo disusun dari sebuah motor DC, gearbox, Variabel Resistor (VR) atau potensiometer dan rangkaian kontrol. Potensiometer berfungsi untuk menentukan batas maksimum putaran sumbu (axis) motor servo sedangkan sudut dari sumbu motor servo diatur berdasarkan lebar pulsa yang ada pada pin kontrol motor servo. Motor servo dapat dilihat pada Gambar 6.
243
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4
Gambar 6. Motor servo. 2.4. Android Android adalah sebuah sistem operasi untuk perangkat mobile berbasis linux yang mencakup sistem operasi, middleware dan aplikasi. Aplikasi android ditulis dalam bahasa pemrograman java. Kode java dikompilasi bersama data file resource yang dibutuhkan oleh aplikasi, di mana prosesnya di-package oleh tools yang dinamakan “apt tools” ke dalam paket Android sehingga menghasilkan file dengan ekstensi apk, dan nantinya dapat di install di perangkat mobile [7]. 3. HASIL DAN PEMBAHASAN 3.1. Analisis dan Perancangan Perangkat Keras 3.1.1. Kebutuhan Perangkat Keras Kebutuhan perangkat keras dapat dilihat pada Tabel 1. Tabel 1. Kebutuhan perangkat keras No.
Nama Komponen
Qty.
No.
1. 2.
1 1
12. 13.
Steker listrik AC female Steker listrik AC male
3 1
1
14.
Adaptor
1
4.
Single-Board Arduino Uno Arduino Ethernet Shield Board Relay Module Board 4 Chanel 5 Volt Wi-Fi Router
1
15.
1
5. 6. 7. 8. 9. 10.
PIR Sensor Buzzer Motor Servo Webcam Jumper-male-to-female Kabel LAN
1 1 1 1 20 1
16. 17. 18. 19. 11. 20.
Box akrilik ukuran 22 cm x 15,5 cm Switch Fuse 1 A + Box Fuse box Terminal Blok Kabel kawat kecil Kabel listrik AC
3.
Nama Komponen
Qty.
1 1 1 1
3.1.2. Diagram Blok Sistem Diagram blok sistem terdapat pada Gambar 7.
WebCam
Mini Wi-Fi Router
Smartphone Android
Buzzer
Motor Servo
Single-Board Arduino + Ethernet Shield Board
Relay Module Board 4 Channel
Obyek
PIR Sensor
Bergerak
Perangkat Elektrik
Gambar 7. Diagram blok sistem. Dari Gambar 7 terlihat bahwa single-board arduino terhubung dengan ethernet shield board agar dapat berkomunikasi dengan perangkat lainnya melalui jaringan yang mendukung protokol TCP/IP yaitu Mini Wi-Fi router sehingga dapat berkomunikasi dengan perangkat android, WebCam, dan perangkat lainnya yang terhubung dalam satu jaringan. Port input/output dari single-board arduino terhubung dengan beberapa komponen, yaitu:
244
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4 1) Relay Module Board yang berfungsi sebagai saklar elektronik untuk menghidupkan dan mematikan perangkat elektrik. Fungsi dari pensaklaran ini dikontrol oleh mikrokontroler yang terdapat di dalam arduino board sesuai dengan perintah yang dikirim oleh smartphone android. 2) Motor Servo untuk menggerakan kunci pintu berdasarkan respon dari sensor infra red (PIR Sensor) yang menerima informasi adanya obyek yang bergerak. 3) Buzzer berfungsi sebagai bunyi alarm yang memberitahukan adanya obyek bergerak yang diterima oleh sensor infrared (PIR Sensor). 3.1.3. Pin Diagram Tabel 2 adalah konfigurasi dari penggunaan pin pada single-board arduino yang menghubungkan dengan perangkat lainnya. Tabel 2. Pin diagram interkoneksi single-board arduino dengan perangkat lainnya No Nama Komponen Pin Komponen Pin Arduino 1 Relay Vcc 5V In1 2 In2 3 In3 4 In4 5 Gnd Gnd 2 Motor Vcc 5V Out 7 Gnd Gnd 3 PIR Vcc 5V Out 7 Gnd Gnd 4 Buzzer Positive 9 Negative Gnd 3.2. Analisis dan Perancangan Perangkat Lunak a. Use Case Diagram Gambar 8 merupakan use case diagram dari perangkat keras yang dibuat.
Gambar 8. Use case diagram. Use case diagram menunjukan fitur apa saja yang terdapat pada sistem home automation yang akan dibuat, fitur tersebut adalah setup, mengendalikan lampu, mengendalikan perangkat elektrik, buka/tutup kunci pintu, aktivasi alarm, dan streaming obyek dari kamera.
245
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4 b. Activity dan Sequence Diagram Activity dan sequence diagram menunjukan urutan aktifitas yang terjadi dari mulai user memilih tindakan pada aplikasi android sampai dengan arduino mengirimkan status ditunjukkan pada Gambar 9.
Gambar 9. Activity dan sequence diagram. c. Algoritma Program Arduino Program yang berjalan pada single-board arduino dimulai dari tahap loading library yang dibutuhkan kemudian dilanjutkan dengan inisialisasi Port I/O melalui pin yang ada sesuai dengan fungsi yang diharapkan. Selanjutnya adalah melakukan setup konfigurasi ethernet shield board agar dapat terhubung ke dalam jaringan melalui Wi-Fi router dan perangkat android. Berikutnya arduino akan menunggu dan merespon terhadap sinyal-sinyal yang dikodekan dan dikirim dari perangkat android. Algoritma program dari sistem arduino dapat dilihat pada flowchart pada Gambar 10 bawah ini.
Gambar 10. Flowchart program arduino. d. Cara Kerja Program Keseluruhan Cara kerja dari sistem home automation yang dibuat adalah android akan mengirimkan kode melalui jaringan yang akan diterima oleh arduino sebagai text, selanjutnya arduino akan mendeskripsikan text tersebut menjadi sebuah perintah dengan menggunakan logika if-case. Pada dasarnya perintah yang dikirim adalah untuk memberikan atau memutuskan arus listrik untuk aktuator sehingga aktuator bekerja 246
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4 sesuai dengan keinginan user. Tabel 3 adalah daftar kode kendali yang dikirim oleh aplikasi dari perangkat android untuk mengendalikan kerja arduino. Tabel 3. Daftar kode kendali Kode Perintah L Lampu nyala L Lampu mati A Perangkat 1 hidup A Perangkat 2 hidup B Perangkat 3 hidup B Perangkat 1 mati C Perangkat 2 mati C Perangkat 3 mati S Alarm aktif S Alarm tidak aktif M Kunci M Buka kunci e. Rancangan Database Database yang dibuat hanya terdiri dari 1 (satu) tabel dan tersimpan di perangkat android. Database ini diperlukan untuk menyimpan setting IP Address single-board arduino, nomor port yang diakses, dan URL dari kamera. Untuk tabel setup dapat dilihat pada Tabel 1.
Nama Field ip_arduino Port url_cam
Tabel 4. Tabel setup Jenis Varchar Varchar Varchar
Panjang 15 4 50
f. Deployment Diagram Gambar 11 adalah deployment diagram dari software. Komponen-komponen pada deployment diagram terdapat pada Tabel 5. deployment Deployment Model
«device» Pengontrol
«device» Android Aplikasi
<wifi>
«device» Router
<ethernet>
«device» Ethernet Shield
«device» Arduino Arduino.ino
Database <ethernet>
SPI.h «device» Relay
Ethernet.h
Servo.h
EthernetUDP.h
«device» Kamera
Alat Elektronik
«device» Motor
«device» PIR
«device» Buzzer
Gambar 11. Deployment diagram.
No 1. 2. 3. 4. 5.
Tabel 5. Keterangan komponen deployment diagram Nama Node/ Keterangan Komponen Android Difungsikan sebagai remote dari home automation. Aplikasi Aplikasi android yang dibuat penulis untuk mengendalikan home automation. Database Basis data pada aplikasi untuk menyimpan pengaturan dan IP address home automation Router Berfungsi menyediakan jaringan komputer untuk menghubungkan android dengan arduino dan kamera. Kamera Digunakan untuk memantau kedaan rumah dan dapat di247
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4
6.
Pengontrol
7.
Arduino
8.
Ethernet Shield
9. 10. 11. 12. 13.
Relay PIR Motor Buzzer Alat Elektronik
14.
Arduino.ino
15.
SPI.h
16. 17. 18.
Ethernet.h EthernetUDP.h Servo.h
streaming melalui aplikasi Rangkaian utama dari home automation yang terdiri atas arduino, ethernet shield dan relay Merupakan otak dari home automation yang mengendalikan kerja komponen lain Digunakan untuk menghubungkan arduino ke jaringan yang disediakan router melalui kabel ethrtnet. Saklar otomatis yang dikendalikan oleh arduino. Sensor pendeteksi gerak atau objek. Penggerak untuk memutar kunci. Alat pngeras suara tanda alarm. Node terdiri alat-alat listrik yang dihubungkan ke pengontrol dan dapat dikendalikan oleh home automation. Source file yang ditanamkan pada arduino yang berisi sekumpulan perintah eksekusi untuk mengoperasikan home automation. Serial Peripheral Interface, library yang berisi protokolprotokol agar arduino bisa berkomunikasi dengan perngkat lain. Library berisi protokol dan fungsi dari ethernet. Library Unit Datagram Protocol Library untuk motor servo.
g. Rancangan User Interface Aplikasi Android Gambar 12 adalah rancangan untuk tampilan user interface pada aplikasi android. Application Title Status Switch Control
Kunci/Buka Kunci
Application Title
Dev 1 Status Dev 2 Status Dev 3 Status Dev 4 Status
Application Title OFF
ON
IP Address
OFF
ON
Port
OFF
ON
URL Cam
OFF
ON Save
Alarm
Camera
(1) (2) (3) Gambar 12. Rancangan tampilan user interface aplikasi android. Keterangan: 1) Rancangan tampilan dashboard. 2) Rancangan tampilan switch control. 3) Rancangan tampilan setting.
248
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4 3.3. Implementasi 3.3.1. Implementasi Perangkat Keras Gambar 13 adalah hasil dari implementasi perakitan perangkat keras yang diperlukan:
Gambar 13. Komponen perangkat keras yang telah tersusun. Perangkat yang diimplementasi hanya bisa dapat mengendalikan 4 (empat) perangkat elektrik, 1 (satu) motor DC, 1 (satu) sensor infra red, dan buzzer, simulasi dalam uji cobanya pada Gambar 14.
Gambar 14. Denah untuk simulasi uji coba. 3.3.2. Implementasi Program 1. Program Android Fungsi utama dari program android adalah untuk mengirim pesan berupa paket data ke arduino melalui protokol UDP dimana pesan tersebut berisi kode untuk menentukan tindakan apa yang akan dilakukan arduino. Selain mengirim, program android pun dapat menerima pesan dari arduino sehingga user dapat mengetahui kondisi status dari perangkat yang terhubung ke single-board arduino. Berikut ini adalah script utama untuk mengirim pesan melalui protokol UDP. String s; byte[] b = (s.getBytes()); if (isOnline()) { byte[] receiveData = new byte[1024]; serverHostname1 = new String("192.168.1.X"); ip = InetAddress.getByName(serverHostname1); try { d1 = new DatagramSocket(); } catch (Exception e) e.printStackTrace(); } try { send = new DatagramPacket(b, b.length, ip, 8032); } catch (Exception e) { } d1.send(send); }
249
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4 Variabel string “s” berisi kode untuk perintah arduino, selanjutnya nilai dari variabel “s” dirubah menjadi bentuk byte dan disimpan dalam variabel “b”. Proses berikutnya adalah menjadikan nilai dari variabel “b” sebagai packet datagram sehingga dapat dikirim dengan tujuan IP Address dan port arduino melalui protokol datagram yang sedang aktif. Adapun hasil dari implementasi program android ditunjukkan pada Gambar 15.
(a)
(b)
(c)
(d) (e) (f) Gambar 15. Implementasi aplikasi di perangkat Android. Keterangan gambar: (a) Tampilan ketika tidak terhubung jaringan (b) Tampilan ketika terhubung ke jaringan tetapi tidak terkoneksi ke Arduino (c) Tampilan ketika terhubung ke jaringan dan Arduino (d) Switch Control (e) Tampilan streaming dari kamera (f) Tampilan setting 2. Program Single-board Arduino Pemrograman arduino digunakan bahasa C, hanya saja memiliki sedikit perbedaan dari segi struktur utama, jika pada bahasa C konvensional void utama adalah void main () sedangkan untuk pemrograman arduino membutuhkan dua void utama yaitu void setup() dan void loop(). Void setup() merupakan sekumpulan perintah yang dibaca satu kali ketika Arduino pertama kali dinyalakan, perintah dalam void ini biasanya perintah untuk menentukan sebuah kondisi atau membuat lingkungan kerja, contohnya menentukan jenis digital pin dari arduino atau menentukan keadaan arduino. Sedangkan void loop() akan dibaca terus menerus dan berulang-ulang ketika arduino menyala. 3.4. Pengujian 3.4.1. Pengujian Progarm Arduino Berikut adalah script dari program arduino untuk kendali alat elektronik. Gambar 16 adalah flow graph hasil pengujian program arduino untuk kendali alat elektrik. 1 Void Loop(){ 2 Udp.read(packetBuffer, UDP_TX_PACKET_MAX_SIZE); 3 if (packetBuffer[0] == 'L') {
250
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4 4 5 6 7 8 9
digitalWrite(relay1, LOW); s = "ON"; }else if (packetBuffer[0] == 'l') { digitalWrite(relay1, HIGH); s = "OFF"; }
10 sendStatus(String s); 11 } 12 13 14 15 16
void sendStatus(String msg) { Udp.beginPacket(Udp.remoteIP(), Udp.remotePort()); Udp.print(msg); Udp.endPacket(); } 1
2
3
4
6
5
7
12
8
13
9
14
10
15
11
16
Gambar 16. Flow graph hasil pengujian program arduino untuk kendali alat elektrik. Perhitungan white box. (1) (2) (3) (4) (5) (6) (7) Proses ini memperoleh nilai CC sebesar 3, tergolong simple procedure dan memiliki resiko error rendah. 3.4.2. Pengujian Program Android Berikut adalah script dari arduinoCmd(). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
public void arduinoCmd(String s) throws Exception { byte[] b = (s.getBytes()); if (isOnline()) { byte[] receiveData = new byte[1024]; serverHostname1 = new String("192.168.1.105"); ip = InetAddress.getByName(serverHostname1); try { d1 = new DatagramSocket(); } catch (Exception e) { e.printStackTrace(); } try { send = new DatagramPacket(b, b.length, ip, 8032); } catch (Exception e) { e.printStackTrace();} d1.send(send); rec = new DatagramPacket(receiveData, receiveData.length); d1.setSoTimeout(10000); d1.receive(rec);
251
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4 17 modifiedSentence = new String(rec.getData()); 18 d1.close(); 19 } else { Toast.makeText(getApplicationContext(), "No network", 20 Toast.LENGTH_LONG).show();} 21 }
Flow Graph hasil pengujian program android dapat dilihat pada Gambar 17. 7 8 1
2
3
4
5
6
9
18
17
16
15
14
13
10
19
20
12
11
21
Gambar 17. Flow Graph hasil pengujian program Android. Perhitungan white box. (8) (9) (10) (11) (12) (13) (14) Proses ini memperoleh nilai CC sebesar 4, tergolong simple procedure dan memiliki resiko error rendah. 3.4.1 Akumulasi Seluruh Hasil Pengujian Tabel 6 adalah akumulasi dari seluruh proses yang terdapat pada arduino dan android.
Perangkat Arduino
Android
Tabel 6. Akumulasi hasil pengujian dengan white box Nama Proses Nilai Cyclomatic Complexity kendali alat elektronik 3 kendali kunci 5 aktifasi alaram 7,5 Jumlah 15,5 arduinoCmd () 4,5 menampilkan setting 3 update setting 1 Jumlah 8,5 Rata-rata nilai CC Arduino = 15,5 / 3 = 5,166 Rata-rata nilai CC Android = 8,5 / 3 = 2,84
4. SIMPULAN Arduino merupakan single-board berbasis mikrokontroler yang dapat digunakan untuk berbagai macam keperluan serta dapat dihubungkan dengan perangkat Android yang semakin banyak penggunanya sehingga dapat membangun home automation dengan biaya yang murah. Perangkat Android yang digunakan berfungsi sebagai pengendali home automation yang dilengkapi fitur keamanan berupa alarm, kendali motor untuk membuka dan menutup pintu, dan video streaming untuk monitoring keadaan sehingga dapat memberikan keamanan lebih bagi pemilik rumah. Berdasarkan hasil pengujian diperoleh nilai rata-rata Cyclomatic Complexity sebesar 5,16 untuk program arduino dan 2,83 untuk program Android yang artinya sistem memiliki prosedur yang sederhana dan memiliki tingkat resiko error yang 252
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4 rendah. Pengembangan sistem selanjutnya dapat digunakan media internet sebagai media komunikasi agar dapat dilakukan pengendalian jarak jauh serta dengan lingkup pengendalian perangkat elektrik yang lebih luas. 5. REFERENSI [1] Gerhart, J. 1999. Home Automation and Wiring. McGraw-Hill Professional, New York. [2] Warangkiran, I. 2014. Perancangan Kendali Lampu Berbasis Android. e-Journal Teknik Elektro dan Komputer UNSRAT. Vol 3, No 1. [3] Rahmiati, P. 2014. Implementasi Sistem Bluetooth menggunakan Android dan Arduino untuk Kendali Peralatan Elektronik. Jurnal Teknik Elektro Itenas. Vol 2, No 1. [4] Spivey, D. 2015. Home Automation for Dummies. John Wiley & Sons, New York. [5] Kelas Microcontrol. (Online), (http://www.kelas-mikrokontrol.com/e-learning, diakses tanggal 19 Maret 2015). [6] Elektronika Dasar. (Online), (http://elektronika-dasar.web.id, diakses tanggal 20 Februari 2015). [7] Suprianto, D. dan Agustina, R. 2012. Pemrograman Aplikasi Android. Mediakom, Yogyakarta.
253
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4
254