BAB III PERANCANGAN DAN PEMBUATAN SYSTEM

advertisement
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/
Download