BAB III PERANCANGAN DAN PEMBUATAN SYSTEM 3.1. Kondisi sekarang Seperti yang telah dijelaskan pada BAB I sebelumnya, dimana dalam kegiatan di rumah mungkin butuh sesuatu yang praktis karena kegiatan kita di luar rumah yang sibuk, apalagi buat seorang pekerja dengan kesibukan yang tinggi. Setidaknya kegiatan di rumah lebih kita mudahkan dan salah satu cara kita bisa memasang beberapa sensor pada bagian rumah maupun di luar rumah seperti pada lampu taman atau pada pintu gerbang pagar depan. 3.2. Kondisi yang diinginkan Dengan dibuatnya tugas khusus “RANCANGAN MINIATUR RUMAH CERDAS BERBASIS ARDUINO MEGA 2560” ini diharapkan para penghuni rumah lebih mendapatkan kemudahan dalam melakukan kegiatannya di rumah supaya merasa lebih nyaman. Sehingga dalam rancangan ini bisa sedikit menggambarkan bagaimana membuat rumah yang dipasangi beberapa sensor untuk mempermudah suatu kegiatan. 32 http://digilib.mercubuana.ac.id/ 33 3.3. Rancangan Blok Diagram Rumah Cerdas. Berikut ini adalah gambaran blok diagram dari Rangkaian Miniatur Rumah Cerdas yang akan dibuat oleh penulis. Servo (Pintu Utama) Gambar 3.1. Blok Diagram Rangkaian Miniatur Rumah Cerdas Dari block diagram diatas menjelaskan bahwa akan terdapat bagian input, controller dan output, bagian tersebut dapat dijelaskan pada uraian berikut : 1. Blok Input Blok input ini terdiri sensor LDR, sensor Sentuh, sensor Hujan, sensor Suhu dan Kelembapan, sensor Infrared Remot dan sensor infrared Line. Pada blok ini akan terjadi proses pengkonversian aksi luar lingkungan diubah menjadi energi listrik sehingga dapat dikenali oleh mesin. Disinilah peran dari sensor. Data yang dihasilkan oleh sensor akan diterima sebagai input oleh blok controller. http://digilib.mercubuana.ac.id/ 34 2. Blok Controller Blok ini berfungsi sebagai pengolah data dan pengotrol aksi Output terhadap input. Pada blok ini akan terdapat arduino Mega 2560 sebagai otak kontrol dan juga motor driver sebagai pengendali Motor yang ada pada blok output. 3. Blok Output Blok ini merupakan hasil olah data yang dilakukan blok kontroler terhadap input. Pada blok output ini akan terdapat LED , LCD sebagai display, Servo sebaga pintu Utama dan 4 buah Motor yang memiliki fungsi yang berbeda. 3.4. Desain Rumah Cerdas Gambar 3.2. Desain Rumah Cerdas Keterangan Gambar : a. Sensor Infra Merah (pintu gerbang) b. Sensor Cahaya (lampu taman) c. Sensor Infra Merah (pintu garasi) http://digilib.mercubuana.ac.id/ 35 d. Sensor Sentuh (pintu utama rumah) e. Sensor Suhu (kipas angin kamar) f. Sensor Air (atap jemuran) 3.5. Konsep Rancangan Pada blok diagram diatas, fungsi dari sensor adalah sebagai pemberi inputan berupa tegangan kepada Arduino Mega untuk memproses Motor DC Lampu dan LCD sebagai outputan. Misalnya sensor infra merah pada pintu gerbang apabila tombol on remot infra merah ditekan maka sensor infra merah akan menghasilkan tegangan yang akan masuk ke driver supaya bias dibaca oleh Arduino kemudian keluar ke driver yang akan masuk ke motor DC untuk menggerakkan pintu gerbang supaya membuka atau menutup. Pada lampu taman terdapat LDR atau disebut juga dengan sensor cahaya, LDR akan mengukur intensitas cahaya yang diterima supaya menghasilkan tegangan tertentu yang akan masuk ke driver dan dibaca oleh Arduino kemudian keluar ke driver dan diterima oleh LED yang akan menyala atau mati sesuai tegangan yang diterima dari sensor cahaya. Pada sensor inframerah pada pintu garasi cara kerjanya hampir sama dengan sensor infra merah pada pintu gerbang depan hanya saja waktu adanya tegangan pada saat ada sesuatu atau mobil yang menyentuh pancaran infra merah yang akan menutupi pancaran dari pemancar ke penerima. Apabila mobil akan masuk dan menutupi pancaran maka pintu garasi akan terbuka dan pada waktu beberapa lama maka pintu garasi akan tertutup. Pada pintu utama rumah akan menggunakan sensor sentuh seperti apabila sensor itu tersentuh oleh tangan atau sesuatu yang membuat sensor itu aktif maka http://digilib.mercubuana.ac.id/ 36 rangkaian sensor itu akan mengaktifkan motor dc yang akan membuka pintu utama rumah. Dalam beberapa detik pintu itu akan tertutup apabila tidak terjadi sentuhan lagi. Di dalam kamar terdapat sensor suhu, sensor DHT11 Suhu dan Kelembapan yang digunakan untuk mengetahui suhu pada Ruangan. Apabila suhu melebihi batas suhu yang diinginkan maka kipas angin dalam kamar akan menyala. Terakhir di rumah bagian belakang terdapat jemuran yang memiliki atap yang bisa membuka dan menutup otomatis. Di atap jemuran digunakan sensor air apabila terkena air (hujan) maka atap akan menutup otomatis. Untuk membuka atap jemuran menunggu sensor tidak terkena air atau kering maka atap jemuran akan terbuka. Pintu garasi akan terbuka. Apabila pancaran tidak ada halangan maka pintu garasi akan menutup. Pintu utama rumah terdapat sensor sentuh, apabila terdapat sentuhan maka sensor akan menghasilkan tegangan yang akan masuk ke driver dan dibaca oleh Arduino kemudian keluar ke driver akan menggerakkan motor DC pada pintu yang akan membuka dan menutup sesuai inputan tegangan yang diterima. Sensor air digunakan untuk menutup atap jemuran. Dalam sensor air terdapat kawat tembaga yang jaraknya sangat berdekatan diberi tegangan apabila kawat tersebut terkena air maka kawat mengalirkan arus dan tegangan. Tegangan masuk ke driver dan dibaca oleh mikrokontroler kemudian keluar ke driver masuk ke motor DC yang menggerakkan atap jemuran. Apabila hujan atau kawat terkena air maka atap akan menutup, begitu pula sebaliknya apabila tidak hujan kawat tidak terkena air maka atap akan terbuka. http://digilib.mercubuana.ac.id/ 37 3.6. Rancangan Rangkaian Keseluruhan Rancangan merupakan tahap awal dalam mendesain sebuah prototype ataupun produk yang mana rancangan ini merupakan gambaran awal dalam pembuatan alat. Dalam tahap awal ini dilakukana perancangan terhadap rangkaian untuk alat rumah cerdas, yang mana akan terdiri dari sensor, mikrokontroler, Motor Driver, LCD, Led, Motor Servo dan Motor DC. Dari komponen – komponen tersebut akan dirakit sesuai blok diagram dengan membuat skema rangkaian sebagai berikut : Rangkaian Modul Arduino Mega 2560 Rangkaian arduino merupakan rangkaian open source electronic, jadi dapat dikatakan bahwa semua skematik arduino bebas untuk diduplicate, dan dimodifikasi. Yang mana untuk rangkaian arduino mega 2560 dapat dilihat pada gambar dibawah ini : Gambar 3.3. Rangkaian Module Arduino Mega 2560 http://digilib.mercubuana.ac.id/ 38 Dari gambar diatas dapat dilihat bahwa ada 100 pin kaki IC Atmega 2560 yang dimiliki, yang mana terdapat port digital, port serial, port Analog dan PWM, SPI dan lainnya. Pada rangkaian dapat dilihat bahwa Atmega akan disupply dengan tegangan 5 Volt, digunakan regulator tegangan dengan output 5V. Berdasarkan skematik yang dapat didownload pada website resmi arduino, maka pada Program eagle dapat dilihat bentuk jadi board dari arduino Mega 2560. Berikut gambar dari Layout PCB tampak atas arduino Mega 2560 : Gambar 3.4. Layout PCB Arduino Mega Tampak Bawah Dari gambar diatas terdapat jalur – jalur yang sangat tipis sehingga jika melakukan etching harusnya berhati – hati karena akan terjadi pengelupasan atau adanya jalur yang putus sehingga Rangkaian yang dibuat tidak berjalan dengan baik. Arduino mega 2560 ini dibuat menggunakan double layer, yang mana akan ada layer (jalur sirkuit) atas dan bawah. Gambar diatas adalah bagian atas dari PCB, dan untuk bagian bawahnya dapat dilihat pada gambar berikut : http://digilib.mercubuana.ac.id/ 39 Gambar 3.5. Layout PCB Arduino Mega Tampak Atas Pada kasus ini, karena Layout PCB yang digenerate menjadi double layer dan memiliki jalur – jalur sirkuit yang rapat dan tipis maka penulis tidak membuat tapi membeli module arduino Mega 2560 yang telah jadi dan banyak dijual dipasaran dengan harga yang terjangkau , hal ini dikarenkan tool yang penulis miliki sangat terbatas untuk membuat pcb dengan sirkuit yang rapat dan tipis itu, dan agar pembuatan selanjutnya tidak ada kendala lagi dengan masalah rangkaian Arduino yang salah atau jalur yang putus. Skematik Modul Motor Driver Rangkaian modul Motor Driver merupakan rangkaian yang mengendalikan motor agar bisa diputar bolak balik. Yang mana dapat dikontrol dari arduino. data yang dikirim ke Rangkaian driver dari arduino ini menggunakan data diginal, sehingga sangat memudahkan dalam pemrograman. Pada rangkaian ini akan menggunakan IC L298 yang mana dapat dilihat pada gambar dibawah ini bentuk rangkaian diver motor yang dibuat menggunakan Eagle : http://digilib.mercubuana.ac.id/ 40 Gambar 3.6. Rangkaian Modul L298 (Motor Driver) Dari gambar diatas terdapat IC L298 dan dilengkapi dengan dioda yang dipasang sejarah searah yang berfungsi sebagai penyearah, yang mana nanti nya fungsi agar arus balik yang dihasilkan oleh motor DC yang memiliki magnet dapat terfilter sehingga tidak merusak rangkaian dan IC L298. Setelah membuat skematik menggunakan eagle maka agar dapat menjadi dalam layout pcb maka dilakukan convert to PCB yang telah disediakan fiturnya oleh eagle, berikut hasil PCB yang dihasilkan oleh eagle dari skematik yang telah dibuat : Gambar 3.7. Layout PCB Rangkaian Motor Driver http://digilib.mercubuana.ac.id/ 41 Rangkaian Modul I2C untuk LCD Modul I2C ini berfungsi agar LCD dengan arduino dapat berkomunikasi secara serial, sehingga pemakaian port pada arduino tidak boros, sehingga dapat digunakan untuk keperluan lainya. Pada rangkaian I2C ini akan terdapat MCP2300 sebagai penkonvert data nya dalam jalur SDA dan SCL, yang mana untuk skematik lengkap rangkaian I2C dapat dilihat pada gambar dibawah ini : Gambar 3.8. Rangkaian I2C untuk LCD Dari skematik diatas dapat dilihat akan ada trimpot 10 KΩ yang berfungsi untuk pengatur contras LCD, sedangkan IC 74LS595D digunakan sebagai shift register data digital yang akan dikirim ke LCD, yang mana data yang diterima dari arduino berbentuk Pulsa yang akan diterima IC MCP2300 sebagai IC expander I/O 8 bit yang akan berkomunikasi dengan serial. Agar rangkaian dapat diaplikasikan ke PCB maka hasil Layout PCB dari rangkaian I2C diatas adalah : Gambar 3.9. Layout Module Rangkaian I2C untuk LCD http://digilib.mercubuana.ac.id/ 42 Agar dapat bekerja dengan I2C dapat dilakukan dengan menghubungkan 16 Pin LCD ke 16 Pin I2C, yang dapat dilihat pada gambar dibawah ini : Skematik Rangkaian Penggambungan Semua Sensor, Motor dan Modul. Agar modul – modul yang telah dibuat dapat dihubungkan pada satu board dan terhubung ke arduino, maka dibuatlah rangkaian yang akan menghubungkan sensor – sensor, motor dan modul – modul sesuai dengan port Arduino yang ingin digunakan. Berikut hasil rancangan rangkaian yang telah dibuat dapat dilihat pada gambar dibawah ini : Gambar 3.10. Rangkaian Seluruh Sistem Dari rangkaian diatas akan dapat terlihat port arduino mana aja akan digunakan nanti nya. Yaitu : Port 22 – 25 digunakan untuk modul driver L298 A http://digilib.mercubuana.ac.id/ 43 3.7. Port 26 – 29 digunakan untuk modul driver L298 B Port 30 untuk input sinyal LDR Post 31 untuk input sinyal sensor Touchpad Port 2 untuk sensor Hujan Port 11 untuk inputan control remote IR. Port 32 untuk control sinyal Servo. Persiapan Bahan dan Tool Setelah melakukan perancangan terhadap rangkaian yang akan dibuat, yang mana akan terdapat beberapa modul – modul yang akan dibeli jadi dipasaran. Hal ini dilakukan untuk efisiensi waktu dan biaya pembuatan. Untuk itu berikut data list bahan yang digunakan untuk merakit alat rumah cerdas : Tabel 3.1. NO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 15 16 Bahan Dan Tool Nama Komponen IR Infrared Wireless Remote Control Kits Sensor Board 38KHZ Arduino Arduino Mega 2560 R3 USB Cable Sensor infrared dan Photodiode + komponen pendukung Sensor LDR + komponen pendukung Saklar Sentuh Touch Sensor Capacitive TTP223B Digital Switch Arduino Sensor Air Hujan Rain drop water sensor for Arduino DHT22 Sensor Temperature & Humidity / Sensor Suhu & Kelembapan Arduino CD Room Bekas (Pintu pagar) Motor DC (Simulasi Kipas) Led 5mm Driver Motor L298 LCD 16x2 I2C Acrilyc 3mm, Siku Acrilyc, dan Lem Acrilyc PCB Matrik Dan Polos Ferit Clorite Spicer Adaptor 9 Volt 1 A http://digilib.mercubuana.ac.id/ qty 1 1 1 1 3 1 1 4 1 1 2 1 1 1 1 20 1 44 17 18 19 Push Button dan Saklar Socket Power Motor Servo 180 2 1 1 Untuk software yang akan digunakan dalam pembuatan skripsi dan Alat adalah sebagai berikut : Tabel 3.2. No 1. 2. 3. 3.8. Tool Software Nama Software Eagle 7.0.0 Light Arduino IDE 1.6.4 Microsoft Visio Perancangan dan Pembuatan Program Rumah Cerdas Setelah melakukan perancangan dan pembuatan rangkaian alat dan memastikan tidak ada yang konslet maka langkah selanjutnya adalah membuat program arduino agar alat yang dibuat sesuai dengan tujuan skripsi ini. Sebelum membuat program untuk ditanamkan pada arduino maka akan lebih baik melakukan perancangan terhadap alur kerja dari program yang biasa disebut dengan Flowchart. Dari flowchart akan tergambar secara detail alur dari program yang akan dibuat, yang mana berupa logika – logika yang dipakai pada program, pemilihan keputusan dan proses lainnya. Sehingga dalam pembuatan program dapat dilakukan secara sistematik dan terukur. Dan juga selain memudahkan dalam menuliskan program, flowchart ini akan mempermudah pembaca secara cepat sistem kerja dari program sehingga tidak perlu mengerti soal sintak program yang dibuat. Dengan begitu maka dilakukan perangangan flowchart sesuai dengan rangcangan alat yang dibuat menggunakan microsoft visio 2013, yang hasil nya dapat dilihat pada gambar dibawah ini: http://digilib.mercubuana.ac.id/ 45 Flowchart Start Import Library Tampilkan Suhu Pada LCD Fan Menyala Inisialisasi If suhu >= 32 Celsius Setup I/O Check Suhu Fan Padam Lampu Menyala If LDR = 1 Lampu Padam Check LDR If Touchpad =1 Check Touchpad Check Hujan Pintu utama Open Pintu utama Close Atap Jemuran Close If hujan = 1 Atap Jemuran Open Check Remot Check Infrared Line If remot = 2 Gerbang Open Servo bergerak 90 derajat If remot = 1 Gerbang Close Servo bergerak 90 derajat If Infrared = High Bagasi Open Timer 3 Menit Bagasi Open Gambar 3.11. Flowchart Alat Dari flowchart yang dirancang dapat dilihat bahwa akan dilakukan lebih awal untuk pengimportan library yang ingin digunakan, library merupakan kumpulan fungsi script yang dapat digunakan untuk menghandle beberapa tugas eksekusi. Setelah itu yaitu inisialisasi variable dan dilanjutkan dengan penyettingan I/O terhadap port yang akan digunakan setelah semua persiapan selesai maka dilakukan terlebih dahulu check suhu http://digilib.mercubuana.ac.id/ 46 yang mana hasil pembacaan dari sensor DTH22 yang akan ditampilkan pada LCD lalu melakukan filter jika suhu yang terbaca berada diatas/sama dengan 30 Celsius maka Fan akan menyala sedangkan dibawah 30 Celsius maka Fan akan padam. Setelah itu dilakukan pengecekan LDR yaitu pengecekan instesitas cahaya pada rumah, jika cahaya yang diterima sedikit maka modul sensor LDR akan mengeluarkan ouput, dan jika data LDR = 1 maka lampu akan menyala sedangkan data LDR = 0 maka lampu akan padam. Dan eksekusi dilanjutkan pada Pengecekan Touchpad, yang mana jika touchpad disentuh maka data Touchpad = 1, apabila data Touchpad bernilai 1 maka pintu utama dibuka dan akan tertutup secara otomatis. Jika touchpad bernilai 0 maka pintu utama tertutup. Pengecekan selanjutnya yaitu pengecekan Hujan yang mana jika panel sensor dikenai oleh air yang berarti data sensor hujan bernilai 1 maka atap Jemuran akan tertutup sedangkan jika tidak ada hujan atap jemuran akan tertutup kembali. Selanjutnya yaitu pengecekan terhadap remot, jika remote yang ditekan angka 2 maka pintu gerbang akan terbuka dan jika ditekan angka 1 maka pintu gerbang akan tertutup kembali. Setelah itu dilakukan pengecekan infrared line yang mana,jika infrared bernilai High yang artinya ada benda yang menghalangi sensor maka Pintu bagasi dibuka dan akan ditutup kembali setelah 3 menit. Dan eksekusi selanjutnya akan kembali ke awal fungsi looping yang mana melakukan pengecekan terhadap suhu dan eksekusi seterus. Pembuatan Program Setelah membuat perancangan flowchart terhadap program yang dibuat, yang mana gambaran tentang program yang akan dibuat telah tergambar dengan baik dan jelas, sehingga langkah – langkah yang perlu dalam menuliskan program pada Arduino IDE menggunakan bahasa C++ dapat diuraikan pada uraian dibawah ini : 1. Library http://digilib.mercubuana.ac.id/ 47 Bagian ini merupakan bagian yang digunakan untuk mengimport library (kumpulan script) yang telah disediakan oleh arduino maupun komunitas arduino opensource yang mana library ini memiliki fungsi yang dapat digunakan untuk setiap modul arduino. Untuk lebih jelas dapat dilihat pada script dibawah ini : 2. Inisialisasi Inisialisasi merupakan bagian untuk mendeklarasikan variable yang digunakan, pemberian parameter dan data type. Dalam program yang dibuat digunakan variable – variable yang dapat dilihat pada potongan script dibawah ini : http://digilib.mercubuana.ac.id/ 48 3. Setup Bagian setup merupakan bagian dimana terdapat script yang akan menyetting Port sebagai Input atau Output, dengan kata lain pada bagian merupakan konfigurasi awal terhadap arduino terhadap port yang akan digunakan, settingan komunikasi serial, dan menjalankan konfigurasi yang ada pada library. Contoh untuk remote, arduino akan dijadikan sebagai penerima data, sehingga saat setup tugas ini akan mulai diaktifkan. Untuk lebih jelasnya dapat dilihat pada gambar dibawah ini: 4. Loop Loop dapat juga dikatakan sebagai main program. Sebab pada bagian ini proses akan berlangsung dari awal eksekusi hingga berakhir eksekusi lalu kembali lagi ke eksekusi awal. Yang mana dapat dikatakan bahwa pada bagian ini akan terjadi perulangan proses selama arduino mendapat supply. Dalam loop ini akan terdapat script yang diinginkan sesuai flowchart. Dan juga pada loop ini juga dapat mengeksekusi Sub function. Untuk lebih jelasnya dapat dilihat pada potongan script dibawah ini : http://digilib.mercubuana.ac.id/ 49 Dari script diatas dapat dikatakan bahwa terdapat beberapa function script yang akan dijalan dengan fungsi yang berberda. Yang uraiannya dapat dijelaskan sebagai berikut : 1. check_remote() Sub function ini berfungsi untuk mengolah data yang diterima oleh receiver IR remote. Yang outputnya akan mengontrol Motor untuk Pintu Gerbang. 2. check_sensor_garis() sub function ini berfungsi ini untuk membaca apakah ada mobil yang akan masuk ke bagasi atau tidak. Jika sensor terhalang oleh mobil maka motor pada pintu bagasi akan membuka, begitu juga sebaliknya. 3. check_touch() berfungsi untuk mengolah data yang diterima dari sensor Sentuh dengan outputnya akan mengontrol Pintu Utama rumah. 4. check_ldr() http://digilib.mercubuana.ac.id/ 50 berfungsi untuk membaca besar nilai intesitas cahaya pada sebuah ruangan yang data input nya berasal dari sensor LDR. Hasil out dari function ini untuk mengontrol lampu taman. 5. check_hujan() berfungsi untuk mendeteksi adanya hujan, dengan menggunakan sensor hujan maka jika panel sensor dikenai air sensor akan mengirimkan sinyal 1 pada arduino, sehingga output dari function ini untuk mengontrol Motor untuk Atap jemuran. 6. check_suhu() merupakan sub function yang akan membaca suhu pada ruangan dan menampilkan nya pada LCD dengan hasil bacaan nilai kelembapan dalam % persen dan suhu dalam satuan celcius. http://digilib.mercubuana.ac.id/