Pengendali lampu dan pintu garasi dengan bluetooth berbasis mikrokontroler.

(1)

viii

INTISARI

Dalam perkembangan zaman yang pesat, perkembangan teknologi juga berkembang sangat pesat. Teknologi yang digunakan sudah aplikatif dan bisa digunakan secara mudah untuk kepentingan manusia. Contohnya adalah teknologi Bluetooth. Teknologi Bluetooth ini dapat digunakan sebagai teknologi pengiriman data tanpa kabel dalam jarak tertentu. Sebagai mahasiswa elektro yang bertanggung jawab akan keilmuanya terhadap masyarakat, terutama dalam bidang control. Berfikir untuk menggabungkan keilmuanya dengan teknologi Bluetooth untuk mempermudah masyarakat dalam pengendalian alat-alat yang sederhana, dibentuklah sistem kontrol yang dapat mengontrol lampu dan pintu garasi menggunakan Bluetooth.

Prinsip kerja dari sistem ini adalah sebagai berikut. Dengan menggunakan handphone data akan dikirim ke modul Bluetooth dan nantinya akan diteruskan ke mikrokontroler. Data yang dikirim yaitu buka dan tutup pada pintu garasi serta hidup dan mati pada lampu. Data yang sudah dikirim kemudian diterjemahkan oleh mikrokontroler untuk mengatur lampu dan pintu garasi. Setelah perintah dijalankan oleh lampu atau pintu garasi, akan ada feedback dari mikrokontroler ke module Bluetooth. Data feedback kemudian dikirim kembali ke handphone yang nantinya akan diolah oleh Android sebagai data indikator feedback.

Hasil akhir dari penelitian ini adalah dapat dihasilkanya sistem pengontrolan menggunakan handphone yang dihubungkan ke mikrokontroler untuk mengontrol pintu garasi dan lampu.

Kata kunci: pengiriman dan penerimaan data, teknologi Bluetooth, mikrokontroler, kontrol pintu garasi dan lampu, feedback data.


(2)

ix

ABSTRACT

In the modern era, technology development is growing rapidly. The technology is now applicable and can be used easily for the benefit of humans. For example is the Bluetooth technology. Bluetooth technology can be used as a wireless data transmission technology within a certain distance. As an electrical engineering student is responsible for his knowledge for the people, especially in control. Combining the knowledge with Bluetooth technology to facilitated the public in controlling tools, formed a system controller that can control lights and garage door using Bluetooth.

The system’s principle will be explained in here. By using mobile phone, the data will

be sent to the Bluetooth module and will be forwarded to the microcontroller. Data will be use to open and close the garage door as well as turn on and turn off on the lights. Then, it will be translated by the microcontroller to control the lights and garage doors. Once the command is executed by the lights or the garage door, then there will be a feedback from the microcontroller to the Bluetooth module. Feedback data is sent back to the mobile phone which will be processed by the Android as an indicator feedback data.

The final result of this research is it can control a system using a cell phone connected to microcontroller to control garage door and light.

Keywords: sending and receiving data, bluetooth technology, microcontroller, garage door and lighting control, feedback data.


(3)

TUGAS AKHIR

PENGENDALI LAMPU DAN PINTU GARASI

DENGAN BLUETOOTH BERBASIS

MIKROKONTROLER

Diajukan untuk memenuhi salah satu syarat

memperoleh gelar Sarjana Teknik pada

Program Studi Teknik Elektro

disusun oleh :

DWI CAHYA MARYANTO

NIM : 115114022

PROGRAM STUDI TEKNIK ELEKTRO

JURUSAN TEKNIK ELEKTRO

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA


(4)

FINAL PROJECT

LAMP AND GARAGE DOOR CONTROL USING

BLUETOOTH BASED ON MICROCONTROLLER

In partial fulfilment of the requirements

for the degree of

Sarjana Teknik

Electrical Engineering Study Program

DWI CAHYA MARYANTO

NIM : 115114022

ELECTRICAL ENGINEERING STUDY PROGRAM

ELECTRICAL ENGINEERING DEPARTMENT

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2016


(5)

HALAMAN

PERSETUruAN

TUGAS

AKHIR

PENGENDALI LAMPU DAN PINTU GARASI

2f

- t

-

2nt4

lll

DMNGAN

BLUE

BERBASIS

Pembimbing

#

ffi.Er*+\

r*

di,,fud,r,,

-*

flB

fuF

ffioJIIj**

Tanggal :


(6)

HALAMAN

PENGESAHAN

TUGAS

AKHIR

PEI\GENDALT LAMPU

T}AN

PINTU GARASI

DEI{GAN BLUETOOTH

BIRBASIS

MIKROKONTROLER

disusun Oleh :

DWI CAHYA MARYANTO

NIM

:

115114022

Telah dipertahankan di depan panitia penguji

pada tanggal .!3.-^..!..:. .IP\G

dan dinyatakan memenuhi syarat

Susunan Panitia Penguji :

Kefua Sekretaris Anggota

Nama Lengkap

Petrus Setyo

Prabowo,

S.T.,

M.T.

Ir.

Tjendro,

M,Kom

Djoko Untoro

Suwarno, S.Si.,

M.T.

Yogyakart u, ..??.. .1.1 .Y.'.f.i....20

li

tas Sains dan Teknologi

Ltas Sanata Dharma

{

li

..u

\t*

I

)) ?? 1.1.'dlr


(7)

PERNYATAAN

KEASLIAN

KARYA

"Saya menyatakan dengan sesungguhnya bahwa

tugas akhir ini tidak memuat karya ataubagian karya orang lain,

kecuali yang telah disebutkan dalam kutipan dan daftar pustaka

sebagaimana laYaknYa karya ilmiah"

Yogyakart u,

.l:.!

-201L


(8)

vi

HALAMAN PERSEMBAHAN DAN MOTO HIDUP

MOTTO

BUKAN ESOK, LUSA ATAU BAHKAN TAHUN DEPAN , DARI

SEKARANGLAH HARUS DIMULAI

.

DWI CAHYA MARYANTO

Karya ini kupersembahkan untuk……..

Tuhan Yesus Kristus, Pembimbing dan Pemberi Harapan ku,

Keluarga Tercinta,

Teman-teman yang luar biasa TE 2011,

Dan semua pihak yang telah terlibat dalam proses penulisan ini


(9)

HALAMAN

PERNYATAAN

PERSETUJUAN

PUBLIKASI KARYA

ILMIAH

UNTUK

KEPENTINGAN

AKADEMIS

Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma :

Nama : DWI CAHYA MARYANTO

Nomor

Mahasiswa

: 115114022

Demi

pengembangan

ilmu

pengetahuan, saya memberikan kepada Perpustakaan

Universitas Sanata Dharma karya ilmiah saya yang berjudul :

PENGENDALI LANIPU DAN PINTU GARASI DENGAN

BLUETOOTH

BERBASIS

MII(ROKONTROLER

Beserta perangkat yang diperlukan (bila ada). Dengan demikian, saya telah memberikan

kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan

dalam bentuk media lain, mengelolanya dalam bentuk pangkalan daia, mendistribusikan

secara terbatas, dan mempublikasikannya di internet atau media lain untuk kepentingan

akademis tanpa perlu meminta

ijin

dari saya maupun memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis.

Demikian pernyataan ini saya buat dengan sebenarnya.

Yo gyakart u,..V..:...1

:.1-o-{!.

DWI CAHYA MARYANTO


(10)

viii

INTISARI

Dalam perkembangan zaman yang pesat, perkembangan teknologi juga berkembang sangat pesat. Teknologi yang digunakan sudah aplikatif dan bisa digunakan secara mudah untuk kepentingan manusia. Contohnya adalah teknologi Bluetooth. Teknologi Bluetooth ini dapat digunakan sebagai teknologi pengiriman data tanpa kabel dalam jarak tertentu. Sebagai mahasiswa elektro yang bertanggung jawab akan keilmuanya terhadap masyarakat, terutama dalam bidang control. Berfikir untuk menggabungkan keilmuanya dengan teknologi Bluetooth untuk mempermudah masyarakat dalam pengendalian alat-alat yang sederhana, dibentuklah sistem kontrol yang dapat mengontrol lampu dan pintu garasi menggunakan Bluetooth.

Prinsip kerja dari sistem ini adalah sebagai berikut. Dengan menggunakan handphone data akan dikirim ke modul Bluetooth dan nantinya akan diteruskan ke mikrokontroler. Data yang dikirim yaitu buka dan tutup pada pintu garasi serta hidup dan mati pada lampu. Data yang sudah dikirim kemudian diterjemahkan oleh mikrokontroler untuk mengatur lampu dan pintu garasi. Setelah perintah dijalankan oleh lampu atau pintu garasi, akan ada feedback dari mikrokontroler ke module Bluetooth. Data feedback kemudian dikirim kembali ke handphone yang nantinya akan diolah oleh Android sebagai data indikatorfeedback.

Hasil akhir dari penelitian ini adalah dapat dihasilkanya sistem pengontrolan menggunakan handphone yang dihubungkan ke mikrokontroler untuk mengontrol pintu garasi dan lampu.

Kata kunci: pengiriman dan penerimaan data, teknologi Bluetooth, mikrokontroler, kontrol pintu garasi dan lampu,feedbackdata.


(11)

ix

ABSTRACT

In the modern era, technology development is growing rapidly. The technology is now applicable and can be used easily for the benefit of humans. For example is the Bluetooth technology. Bluetooth technology can be used as a wireless data transmission technology within a certain distance. As an electrical engineering student is responsible for his knowledge for the people, especially in control. Combining the knowledge with Bluetooth technology to facilitated the public in controlling tools, formed a system controller that can control lights and garage door using Bluetooth.

The system’s principle will be explained in here. By using mobile phone, the data will be sent to the Bluetooth module and will be forwarded to the microcontroller. Data will be use to open and close the garage door as well as turn on and turn off on the lights. Then, it will be translated by the microcontroller to control the lights and garage doors. Once the command is executed by the lights or the garage door, then there will be a feedback from the microcontroller to the Bluetooth module. Feedback data is sent back to the mobile phone which will be processed by the Android as an indicator feedback data.

The final result of this research is it can control a system using a cell phone connected to microcontroller to control garage door and light.

Keywords: sending and receiving data, bluetooth technology, microcontroller, garage door and lighting control, feedback data.


(12)

x

KATA PENGANTAR

Puji dan syukur kepada Tuhan Yang Maha Esa yang telah memberikan kenikmatan berupa kesehatan jasmani dan rohani sehingga penulis dapat menyelesaikan tugas akhir dengan lancar dari awal hingga diakhiri dengan munculnya laporan tugas akhir dengan judul

PENGENDALI LAMPU DAN PINTU GARASI DENGAN BLUETOOTH BERBASIS MIKROKONTROLER”.

Dalam pembuatan laporan tugas akhir dari awal hingga akhir tentunya ada bantuan dari beberapa pihak sehingga laporan tugas akhir yang disusun oleh penulis sesuai dengan ketentuan yang ada.

Dengan adanya bantuan dari beberapa pihak, penulis dapat menyelesaikan laporan tugas akhir tersebut, penulis mengucapkan terima kasih kepada beberapa pihak diantaranya adalah sebagai berikut :

1. Tuhan Yang Maha Esa yang telah memberikan kenikmatan berupa kesehatan jasmani dan rohani.

2. Kedua orang tua dan saudara penulis yang telah mendukung dan memberikan doa restu. 3. Bapak Petrus Setyo Prabowo, S.T., M.T., sebagai Ka. Prodi Teknik Elektro Universitas

Sanata Dharma Yogyakarta.

4. Bapak Ir.Tjendro, M.Kom., sebagai Dosen Pembimbing dengan penuh perhatian dan pengertianya serta rela meluangkan waktunya unutk membimbing hingga akhir

5. Ibu Ir. Theresia Prima Ari Setiyani, M.T., sebagai Dosen Pembimbing Akademik Prodi Teknik Elektro Fakultas Sains dan Teknologi Universitas Sanata Dharma.

6. Teman-teman TE 2011 yang telah banyak membantu baik lahir maupun batin.

7. Semua pihak yang telah memberikan bantuan dalam penyusunan Laporan tugas akhir ini.

Dalam penyusunan laporan tugas akhir ini tentunya terdapat kekurangan dan kelemahan serta jauh dari kata sempuna. Karena kesempurnaan hanya milik Tuhan semata. Oleh karena itu penulis menerima masukan berupa kritik dan saran dengan harapan menjadikan penulis lebih baik lagi.


(13)

Semoga Laporan tugas akhir ini dapat diterima dengan baik oleh semua pihak. Dan

semua kekurangan yang ada dapat dimakiurni. Semoga Laporan tugas akhir

ini

dapat

mernberikan manfaat kepada penulis dan pen-rbaca

Yogyakarla,

q'

1

-

2olL

Dwi Cahya Maryanto


(14)

xii

DAFTAR ISI

HALAMAN JUDUL... i

HALAMAN PERSETUJUAN ... iii

HALAMAN PENGESAHAN ... iv

PERNYATAAN KEASLIAN KARYA... v

HALAMAN PERSEMBAHAN DAN MOTTO HIDUP ... vi

HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS... vii

INTISARI ... viii

ABSTRACT... ix

KATA PENGANTAR ... x

DAFTAR ISI ... xii

DAFTAR GAMBAR ... xv

DAFTAR TABEL ... xviii

BAB I : PENDAHULUAN 1.1 Judul ... 1

1.2 Latar Belakang ... 1

1.3 Tujuan dan Manfaat ... 2

1.4 Batasan Masalah... 2

1.5 Metodologi Penelitian ... 3

BAB II : DASAR TEORI 2.1 Android ... 4

2.1.1 Ice Cream Sandwich(Android 4.0-4.0.4)... 4

2.2 Bluetooth ... 4

2.2.1 Bluetooth Android ... 4

2.2.2 Modul Bluetooth HC-05 ... 5

2.3 ATmega 8535... 6

2.3.1 USART... 7


(15)

xiii

2.3.3 Timer/Counter Control Register A... 11

2.3.4 Timer/Counter Control Register B... 12

2.4 Driver Motor ... 13

2.4.1 L298... 13

2.5 Sensor Cahaya... 14

2.5.1 Light Dependent Resistor... 14

2.6 Rangkaian Saklar ... 14

2.6.1 Limit Switch... 14

2.6.2 Modul Relay ... 14

2.7 ResistorPull Up... 15

BAB III : PERANCANGAN 3.1 Pemodelan Sistem Secara Keseluruhan ... 16

3.2 Rangkaian Perangkat Keras ... 17

3.2.1 Module Bluetooth dengan ATmega 8535 ... 17

3.2.2 Lampu dan Sensor Lampu ... 17

3.2.3 Driver dan Motor DC ... 18

3.2.4 Rangkaian Saklar ... 18

3.3 Perancangan Perangkat Lunak ... 19

3.3.1 GUI ... 19

3.3.2 Pengaktifan Bluetooth ... 19

3.3.3 Flow ChatAndroid padaHandphone... 20

3.3.4 Flow ChatMikrokontroler... 21

3.3.5 Flow ChatSub Rutin Aktifkan Lampu... 22

3.3.6 Flow ChatSub Rutin Aktifkan Pintu Garasi ... 22

BAB IV : HASIL DAN PEMBAHASAN 4.1 Hasil Implementasi Alat... 24

4.2 Hasil Perancangan Perangkat Keras... 25

4.3 Hasil Perancangan Alat dan Sistem ... 26

4.3.1 Letaklimit switch... 26

4.3.2 Penggunaan Modul HC-05... 28


(16)

xiv

4.4 Hasil Perancangan Menggunakan Arduino... 31

4.4.1 Pengujian Motor... 31

4.4.2 Pengujian Lampu ... 31

4.4.3 Pengujian Sensor ... 32

4.4.3.1 PengujianLimit Switch... 32

4.4.3.2 Pengujian LDR... 33

4.5 Pengujian Sistem... 33

4.5.1 Connect ... 33

4.5.2 Garasi ... 39

4.5.3 Lampu ... 42

4.5.4 Pengujian Feedback Error... 46

4.6 Analisis Percobaan ... 47

BAB V : KESIMPULAN DAN SARAN 5.1 Kesimpulan ... 49

5.2 Saran... 49


(17)

xv

DAFTAR GAMBAR

Gambar 1.1 Prototipe garasi ... 3

Gambar 2.1 HC-O5 ... 5

Gambar 2.2 Koneksi HC-05 ... 5

Gambar 2.3 ATmega 8535 ... 6

Gambar 2.4 UDR... 7

Gambar 2.5 UCSRA ... 7

Gambar 2.6 USCRB ... 8

Gambar 2.7 UCSRC ... 9

Gambar 2.8 UBRRH dan UBRRL ... 10

Gambar 2.9 Phase correct PWM ... 11

Gambar 2.10 TCCR1A ... 11

Gambar 2.11 TCCR1B ... 12

Gambar 2.12 Modul L298 ... 13

Gambar 2.13 LDR ... 14

Gambar 2.14Limit switch... 14

Gambar 2.15 Modul relay... 15

Gambar 2.16 Rangkaianpull upLDR danlimit switch... 15

Gambar 3.1 Pemodelan lengkap ... 16

Gambar 3.2 Modul Bluetooth dan mikrokontroler ATmega 8535... 17

Gambar 3.3 Sensor lampu ... 17

Gambar 3.4 Driver motor dan motor dc ... 18

Gambar 3.5 Rangkaian saklar... 18

Gambar 3.6 GUI garasi... 19

Gambar 3.7Flow Chart Handphone... 20

Gambar 3.8Flow chartdi sitem penerima ... 21

Gambar 3.9Flow chartsub rutin lampu ... 22

Gambar 3.10Flow Chartsub rutin pintu garasi ... 22

Gambar 4.1 Alat secara keseluruhan ... 24

Gambar 4.2 GUI(Graphic User Interface) ... 24


(18)

xvi

Gambar 4.4 Rangkaianlimit switchbawah ... 25

Gambar 4.5 Rangkaian LDR ... 25

Gambar 4.6 Module Bluetooth ... 26

Gambar 4.7 Rangkaian L298... 26

Gambar 4.8 Model penempatanlimit switchpertama ... 27

Gambar 4.9Limit switchdengan tuas yang diperpanjang ... 27

Gambar 4.10 Model penempatanlimit switchkedua ... 27

Gambar 4.11 Model penempatanlimit switchketiga ... 28

Gambar 4.12 Model penempatanlimit switchkeempat ... 28

Gambar 4.13 Program Pengendali motor dc searah jarum jam ... 31

Gambar 4.14 Program Pengenadali motor dc berlawana arah jarum jam ... 31

Gambar 4.15 Program pengendali lampu ... 31

Gambar 4.16 Serial monitor untuklimit switchtidak ditekan ... 32

Gambar 4.17 Serial monitor untuklimit switchsudah ditekan ... 32

Gambar 4.18 Serial monitor LDR dengan cahaya... 33

Gambar 4.19 Serial monitor LDR tanpa cahaya... 33

Gambar 4.20 List programconnected... 34

Gambar 4.21 List fungsi SendData() ... 35

Gambar 4.22 List program Arduino ... 35

Gambar 4.23 List program cek_awal()... 36

Gambar 4.24 List fungsi terimaData()... 37

Gambar 4.25 GUIfeedbackdariconnect... 39

Gambar 4.26 List program tombol buka ... 39

Gambar 4.27 List fungsi buka_pintu() ... 40

Gambar 4.28 GUIfeedbackindikator buka... 41

Gambar 4.29 List tombol tutup ... 41

Gambar 4.30 List fungsi tutup_pintu() ... 41

Gambar 4.31 GUIfeedbackindikator tutup ... 42

Gambar 4.32 List progam hidup... 43

Gambar 4.33 List fungsi hidup_lampu() ... 43

Gambar 4.34 GUIfeedbackindikator hidup ... 44

Gambar 4.35 List program tombol mati ... 44


(19)

xvii

Gambar 4.37 GUIfeedbackindikator mati ... 45 Gambar 4.38 GUIfeedbackindikatorerrorpintu garasi ... 46 Gambar 4.39 GUIfeedbackindikatorerrorpintu lampu ... 46


(20)

xviii

DAFTAR TABEL

Tabel 2.1 Port D bit 7bit 0 ... 7

Table 2.2 UPM bitssetting... 9

Table 2.3 UCSZ bitssetting... 10

Table 2.4 UCPOL bitsetting... 10

Tabel 2.5 Phase correct PWMsetting... 12

Tabel 2.6 Waveform generation bit... 12

Table 2.7Clock selectbit ... 13

Tabel 4.1 Pengiriman Android ke ATmega 8535... 29

Tabel 4.2 Pengiriman dari ATmega 8535 ke Android ... 29

Tabel 4.3 Pengiriman dari Android ke Arduino Uno ... 30

Tabel 4.4 Pengiriman dari Arduino Uno ke Android ... 30

Tabel 4.5 Hasil pengujianlimit switch... 32


(21)

1

BAB 1

PENDAHULUAN

1.1. Judul

Pengendali Lampu dan Pintu Garasi dengan Bluetooth Berbasis Mikrokontroler

1.2. Latar Belakang

Perkembangan teknologi yang terjadi di Indonesia sangatlah pesat. Banyak teknologi-teknologi yang maju dan digunakan diberbagai kalangan. Perkembangan teknologi-teknologi ini apabila disikapi dengan serius dan secara teliti mengikutinya maka dalam perkembangan teknologi yang terjadi di Indonesaia akan membawa kepada kemajuan jaman. Salah satu teknologi yang banyak digunakan adalah teknologi Bluetooth. Teknologi Bluetooth ini sudah menjadi sebuah teknologi yang mudah dan efisien bagi manusia, dimana teknologi Bluetooth dapat mengirim atau menerima data yang nantinya bisa diolah oleh device. Sampai sekarang teknologi Bluetooth menjadi teknologi komunikasi data yang berguna dan banyak dimanfaatkan [1] .

Disamping perkembangan teknologi di Indonesia yang sangat pesat, sebagai seorang mahasiswa teknik elektro yang banyak bergelut pada bidang kontrol mempunyai tanggung jawab pada masyarakat mengenai keilmuan yang dimilikinya. Tetapi banyak juga dari mahasiswa teknik elektro yang tidak bisa mengaplikasiakan keilmuanya yang mereka milik kedalam alat-alat sederhana yang ada di sekitarnya. Sebenarnya keilmuan yang didapat dalam bidang kontrol sudah dapat digunakan pada alat-alat yang sering dijumpai yaitu pada lampu. Salah satu contoh yang bisa digunakan adalah mematikan lampu ketika siang hari [2]. Dari hal kecil itu keilmuan mengenai kontrol sudah dapat diaplikasikan. Ada juga untuk membantu mempermudah masyarakat dalam menjalani kehidupan mereka, contoh sederhana adalah mempermudah untuk membuka dan menutup pintu garasi pada rumah mereka.

Dari teknologi Bluetooth dan keilmuan mengenai kontrol yang sudah penulis jelaskan. Penulis akan membuat sistem yang dapat membantu memecahkan masalah tersebut. Alat-alat yang akan digunakan adalah sekema untuk lampu rumah dan pintu


(22)

garasi. Penunjukan lampu dan pintu garasi oleh penulis dikarena penulis melihat bahwa keilmuan mengenai kontrol dapat diaplikasikan terhadap kedua benda tersebut. Penulis menggabungkan teknologi dengan alat-alat yang biasanya digunakan agar menuju kepada rumah pintar[3]. Nantinya penghuni hanya perlu menggunakan GUI (Graphical User Interface) pada handphone untuk menghidupkan dan mematikan lampu, membuka dan menutup pintu garasi. Dalam pelaksanaanya dapat melalui device yang berkaitan dengan Bluetooth dan untuk pengendalinya menggunakan mikrokontroler. Mikrokontroler yang digunakan adalah ATmega 8535 karena memiliki memory yang sudah dianggap cukup oleh penulis dan banyak dijumpai di pasaran. Penulis akan membuat prototipe dari garasi yang akan dikontrol.

1.3. Tujuan dan Manfaat

Pada perancangan sistem ini dengan tujuan untuk menghasilkan sistem kontrol menggunakan piranti Bluetooth dan mikrokontroler yang dapat mengontrol lampu dan pintu garasi.

Maanfaat dari skripsi ini untuk adalah :

1. Dapat memahami mengenai cara kerja dari sistem yang penulis buat.

2. Menjadi acuan atau rujukan apabila ingin membuat sistem yang lebih besar lagi.

3. Menjadi bahan pertimbangan apabila membuat sistem yang hampir sama dengan sistem yang akan dibuat.

1.4. Batasan Masalah

Pada penelitian sistem yang akan dibuat, maka penulis memberi batasan sebagai berikut : 1. Sistem hanya dapat mengatur lampu dan pintu garasi saja.

2. OS Android yang digunakan adalah Android Jelly Bean 4.3 3. Sebagai penerima menggunakan modul Bluetooth HC-05.

4. Sebagai pengontrolnya menggunakan mikrokontroler ATmega 8535.

5. Untuk alat yang dikontrol menggunakan lampu AC 220V dan motor DC 12V.

6. Sensor cahaya yang digunakan adalah LDR (Light Dependent Resistor), driver Motor L298N, modul relay, dan rangkaian saklar sebanyak dua buah limit switch untuk pintu garasinya.


(23)

8. Pemodelan rumah yang digunakan berbentuk persegi panjang dengan ukuran panjang x lebar adalah 40 cm x 30 cm. Berikut ini adalah gambar dari pemodelan garasi.

Gambar 1.1 Prototipe garasi

1.5. Metodologi Penelitian

Dalam perancangan penelitian yang dilakukan oleh penulis, penulis melakukan langkah – langkah sebagai berikut:

1. Mencari teori-teori mengenai Bluetooth, mikrokontroler ATmega 8535, serta memahami bagaimana sistem komunikasinya.

2. Mencari masukan-masukan tentang penulisan dengan judul yang saling berkaitan dengan sistem yang akan penulis buat.

3. Merancang sistem kontroler dan pembuatan program yang menghubungkan pengguna dengan kontrolernya .

4. Melakukan pengujian setiap alat yang dirancang.

40 cm 30cm


(24)

4

BAB II

DASAR TEORI

2.1.

Android

2.1.1.

Ice Cream Sandwich (Android 4.0

4.0.4)

Ice Cream Sandwich atau biasa disebut ICS pertama kali dirilis pada bulan Oktober 2011. OS Android ICS tampil dengan UI yang sangat modern dan lebih friendly dibandingkan pendahulunya. Perangkat pertama yang didukung oleh ICS adalah Samsung Galaxy Nexus yang hadir dengan layar 720p [4].

2.2.

Bluetooth

2.2.1. Bluetooth Android

[5]

Pada dasarnya di dalam Android sudah terdapat fungsi untuk mengaktifkan Bluetooth dan memonitoringnya. Fungsi dari Bluetooth Android API (Application programing interface) adalah untuk pengaturan Bluetooth, menemukan perangkat yang baik dipasangkan atau tersedia di daerah setempat, yang menghubungkan perangkat, dan mentransfer data antara perangkat. Semua API sudah tersedia di dalam Android packages.

Berikut ini adalah beberapa kelas dari Bluetooth Android : 1. Bluetooth Adapter

Bluetooth adapter digunakan untuk mengidetifikasi, menemukan perangkat, pemasangan perangkat Bluetooth lainnya. Bluetooth adapter merupakan pintu masuk pertama untuk device.

2. Bluetooth Device

Perangkat yang digunakan untuk mendapatkan informasi tentang perangkat seperti nama, alamat, kelas, dan negara.

3. Bluetooth Socket

Merupakan koneksi yang memungkinkan aplikasi untuk bertukar data dengan perangkat Bluetooth lain dalam bentuk stream data.


(25)

4. Bluetooth Server Socket

Berfungsi untuk mendeteksi permintaan koneksi yang sudah ada pada Bluetooth socket.

5. Bluetooth Class

Digunakan untuk menunjukan jenis dari perangkat.

2.2.2. Modul Bluetooth HC-05

Modul Bluetooth merupakan perangkat yang digunakan sebagai Bluetooth serial interface. Modul Bluetooth atau yang sering disebut modul BT, pada dasarnya mempunyai dua model yaitu master device dan slave device. Nama device setelah nomer yang genap menunjukan master atau slave dan itu tidak dapat diganti. Contohnya :

Master device: HC-04-M, M=master

Slave device: HC-04-S, S=slave

Tetapi apabila keluarnya adalah nomor ganjil HC-03, HC-05 untuk mengatur slave dan masternya cukup dengan mengubah pada AT Command [6].

Komunikasi antara dua Bluetooth modul dapat terjadi paling tidak terdapat kondisi sebagai berikut.

1. Komunikasi harus berasal dari master dengan slave, apabila keduanya adalah master atau slave maka komunikasi tidak akan terjalin.

2. Password anatara dua modul Bluetooth harus benar.

Gambar 2.1 HC-O5


(26)

Modul BT HC-05 merupakan modul Bluetooth yang penggunaan untuk master dan slave dapat diubah tergantung dengan AT Command. Proses pairing dari perangkat master tidak hanya dapat berkomunikasi dengan Bluetooth yang spesifik namun dapat mencari dan pairing dengan slave secara otomatis [6].

2.3.

ATmega 8535

Mikrokontroler adalah sebuah chip yang berfungsi sebagai pengontrol rangkaian elektronik dan umunya dapat menyimpan program di dalamnya. Mikrokontroler umumnya terdiri dari CPU (Central Processing Unit), memori, I/O tertentu dan unit pendukung seperti Analog-to-Digital Converter (ADC) yang sudah terintegrasi di dalamnya [7].

Gambar 2.3 ATmega 8535 Penjelasan fungsi setiap port pada mikrokontroler

1. VCC merupakan port untuk digital supply voltage dengan masukan 5V. 2. GND merupakan port untuk ground.

3. Port A (PA7-PA0) berfungsi sebagai input analog ke ADC. Port A juga berfungsi sebagai delapan bit bi-directional I/0 port.

4. Port B (PB7-PB0) brfungsi sebagai delapan bit bi-directional I/0 port dan di setiap pin kakinya juga mempunyai fungsi tersendiri.

5. Port C (PC7-PC0) brfungsi sebagai delapan bit bi-directional I/0 port dan di setiap pin. 6. Port D (PD7-PD0) brfungsi sebagai delapan bit bi-directional I/0 port dan di setiap pin


(27)

Tabel 2.1 Port D bit 7 – bit 0 [8]

7. RESET digunakan untuk mereset mikrokontroler.

8. XTAL1 untuk masukan yang menuju ke penguat osilator inverting dan internal clock. 9. XTAL2 output dari penguat osilator inverting.

10. AVCC port tegangan supply untuk port A dan untuk ADC. 11. AREF port refrensi analog untuk ADC.

2.3.1

USART

Universal Synchronus and Asynchronus serial Receiver and Transmitter (USART) merupakan komunikasi yang memiliki fleksibilitas tinggi, yang dapat digunakan untuk melakukan transfer data baik antar mikrokontroler maupun dengan modul-modul eksternal. Berikut ini adalah penjelasan mengenai register yang ada pada USART [8].

1. USART I/O Data Register–UDR

Gambar 2.4 UDR [8]

USART Transmit Data Buffer Register dan USART Receive Data Buffer Register menggunakan I/O yang sama atau yang lebih disebut dengan USART Data Register atau UDR.Transmit Data Buffer Register (TXB) menjadi arah data yang di tulis menuju lokasi register UDR. Pembacaanya data pada Receive Data Buffer Register (RXB).

2. USART Control and Status Register A-UCSRA


(28)

Penjelasan setiap bitnya adalah sebagai berikut: Bit 7-RXC: USART Receive Complete

Bit ini set ketika ada data yang tak terbaca di buffer penerima dan bersih ketika buffer penerima kosong.

Bit 6-TXC: USART Transmit Complete

Bit ini set ketika seluruh frame dalam Transmit shift register telah bergeser dan tidak ada data yang baru muncul di buffer penerima.

Bit 5-UDRE: USART Data Register Empty

Bit ini Menunjukan jika buffer pengirim siap untuk menerima data baru. Bit 4-FE: Frame Error

Bit ini terset jika karakter berikutnya dalam buffer penerima mendapatkan error. Bit 3-DOR: Data Over Run

Bit ini diset ketika kondisi data overun terdeteksi. Bit 2-PE: Parity Error

Bit ini di set ketika karaketer selanjutnya dalam buffer penerima terdapat sebuah parity error dalam penerimaan.

Bit1-U2X: Double The USART Transmission Speed Bit ini hanya mempunya efek pada operasi asinkron. Bit 0-MPCM: Multi-Processor Comunication Mode

Bit ini memungkinkan untuk multi-processor communication mode.

3. USART Control and Status Register B-UCSRB

Gambar 2.6 USCRB [8] Penjelasan setiap bitnya adalah sebagai berikut:

Bit 7- RXCIE: RX Complete Interrupt Enable

Penulisan bit ini pada salah satu interrupt yang dapat dipakai pada bendera RXC. Bit 6- TXCIE: TX Complete Interrupt Enable

Penulisan bit ini pada salah satu interrupt yang dapat dipakai pada bendera TRX. Bit 5- UDRIE: USART Data Register Empty Interrupt Enable


(29)

Bit 4- RXEN: Receiver Enable

Penulisan bit ini pada salah satu enable di penerimaan USART. Bit 3- TXEN: Transmitter Enable

Penulisan bit ini pada salah satu enable di pengirim USART. Bit 2- UCSZ2: Character Size

Bit ini untuk menyiapkan nilai pada data bits di dalam penerima dan pengirim. Bit 1- RXB8: Receive Data Bit 8

Bit ini untuk data ke sembilan pada penerimaan karakter saat beroprasi dengan serial frames sembilan data bits.

Bit 0- TXB8: Transmit Data Bit 8

Bit ini untuk data ke sembilan pada pengirim karakter saat beroprasi dengan serial frames sembilan data bits.

4. USART Control and Status Register C-UCSRC

Gambar 2.7 UCSRC [8] Penjelasan setiap bitnya adalah sebagai berikut:

Bit 7- URSEL: Register Select

Bit ini memilih antara UBRRH atau UCSRC. Bit 6-UMSEL: USART Mode Select.

Bit ini memilih antara asinkron UMSEL = 0 dan sinkron UMSEL= 1. Bit 5:4 –UPM 1:0 Parity Mode

Bit ini menentukan tipe dari piranti dan pengecekan.

Table 2.2 UPM bits setting [8]

Bit 3-USBS : Stop Bit Select

Bit ini memilih angka untuk bit berhenti yang dimasukan oleh pengirim. USBS = 0 maka stop bit =1-bit dan USBS = 1 maka stop bit =2-bit.


(30)

Menetukan ukuran karakter dalam penerima dan pengirim. Table 2.3 UCSZ bits setting [8]

Bit 0-UCPOL: Clock Polarity

Bit ini digunakan pada mode sinkron saja.

Table 2.4 UCPOL bit setting [8]

5. USART Baud Rate Register – UBRRL dan UBRRH

Gambar 2.8 UBRRH dan UBRRL [8] Penjelasan setiap bitnya adalah sebagai berikut.

Bit 15-URSEL: Register Select

Bit ini memilih akses antara UBRRH atau UCSRC Bit 14:12-Reserved Bits

Bit ini harus ditulis nol ketika memilih UBRRH. Bit 11:0-USART Baud Rate Register

Merupakan 12-bit register yang berpengaruh pada baud rate USART


(31)

2.3.2. Phase Correct PWM

Gambar 2.9 Phase correct PWM [8]

PWM (Pulse Width Modulation) berfungsi untuk mengatur lebar sisi positif dan negatif pulsa kontrol pada frekuensi kerja yang tetap.

Perhitungan dari Timer1 mode phase correct PWM adalah sebagai berikut [9]. Foc1a= Fosc/(2*N*TOP)

Foc1b= Fosc/(2*N*TOP) D=(OCR1X / TOP) * 100% Dengan,

Foc1a = frekuensi output OC1A Foc1b = frekuensi output OC1B

Fosc = frekuensi clock kristal yang digunakan D = duty cycle

TOP = nilai maksimum counter (TCN1). TOP mempunyai tiga buah nilai untuk mode tersebut yaitu 8 bit (FF), 9 bit (1FF), 10 bit (3FF).

2.3.3. Timer/Counter1 Control Register A

Gambar 2.10 TCCR1A [8] Penjelasan setiap bitnya adalah sebagai berikut.

Bit 7:6–COM1A1:0 Compare Output Mode for Channel A Bit 5:4–COM1B1:0 Compare Output Mode for Channel B


(32)

Tabel 2.5 Phase correct PWM setting [8]

Bit 3FOC1A:Force Output Compare for Channel A Bit 2–FOC1B:Force Output Compare for Channel B Bit ini harus di-set ke nol apabila dalam mode PWM. Bit 1:0WGM 11:0 :Waveform Generation Mode

Tabel 2.6 Waveform generation bit [8]

2.3.4 .

Timer/Counter1 Control Register B

Gambar 2.11 TCCR1B [8] Penjelasan setiap bitnya adalah sebagai berikut.


(33)

Bit ini bernilai satu apabila mengaktifkan input capture noise canceler yang mengakibatkan mengubah output dari input capture pin.

Bit 6 – ICES1:Input Capture Edge Select

Bit ini untuk men-trigger-kan captuere yang genap pada input capture pin . Bit 5- Reserved Bit

Bit ini harus bernilai nol ketika dalam mengatur TCCR1B. Bit 4:3 – WGM13:2 : Waveform Generation Mode

Bit 2:0 – CS12:0 : Clock Select

Table 2.7 Clock select bit [8]

2.4.

Driver Motor

2.4.1. Modul L298

Modul L298N merupakan modul driver untuk motor dc, servo, dan juga motor stepper. Sistem kerja dari modul L298N dapat digunakan sebagai pembalik putaran atau dapat dikatakan sebagai H-bridge [10].

Gambar 2.12 Modul L298 [10]

Penggunaan L298 membutuhkan PWM untuk mengatur kecepatan motor yang akan dipasang.


(34)

2.5.

Sensor Cahaya

2.5.1.

Light Dependent Resistor

(LDR

)

Jenis resistor yang nilai hambatan atau nilai resistansinya tergantung pada intensitas cahaya yang diterima. Nilai hambatan LDR akan menurun pada saat cahaya terang dan nilai hambatannya akan menjadi tinggi jika dalam kondisi gelap. Dengan kata lain, fungsi LDR (Light Dependent Resistor) adalah untuk menghantarkan arus listrik jika menerima sejumlah intensitas cahaya (Kondisi Terang) dan menghambat arus listrik dalam kondisi gelap [11].

Gambar 2.13 LDR [11]

2.6.

Rangkaian Saklar

2.6.1.

Limit Switch

Limit switch merupakan jenis saklar yang dilengkapi dengan tuas yang berfungsi menggantikan tombol. Prinsip kerja limit switch sama seperti saklar push on yaitu hanya akan menghubung pada saat tuasnya ditekan pada batas penekanan tertentu yang telah ditentukan dan akan memutus saat saat tuas tidak ditekan. Limit switch termasuk dalam kategori sensor mekanis yaitu sensor yang akan memberikan perubahan elektrik saat terjadi perubahan mekanik pada sensor tersebut. Penerapan dari limit switch adalah sebagai sensor posisi suatu benda (objek) yang bergerak [12].

Gambar 2.14 Limit switch

2.6.2. Modul relay

Modul relay berisi 2 relay yang masing-masing dapat bekerja sendiri seperti relay pada umumnya. Modul ini bekerja dengan masukan logika rendah.


(35)

Gambar 2.15 Modul relay

2.7.

Resistor

Pull UP

Gambar 2.16 Rangkaian pull up LDR dan limit switch

Rumus yang digunakan untuk menentukan nilai R pada LDR dan limit Switch. Rmin=���−� ���� (2.1)

Rmax=���−� � (2.2) Dengan,

Rmin= Resistor Minimum Rmax=Resistor Maksimum VoL=Tegangan Keluaran Rendah VoH=Tegangan Keluaran Tinggi Vcc= Tegangan Sumber

Iol= Arus Keluaran Rendah IoH=Arus Keluaran Tinggi

1.0 LDR1

LDR

GND R2

30K 5V

KE MIKROKONTROLER

R1

30k 5 V

GND


(36)

16

BAB III

PERANCANGAN

3.1.

Pemodelan Sistem Secara Keseluruhan

Gambar 3.1 Pemodelan lengkap

Alur dari pemodelan sistem secara garis besar adalah sebagai berikut. Sistem yang digunakan adalah closed loop dengan memberikan feedback yang dikirim ke handphone untuk mengecek sistem berjalan dengan baik. Langkah pertama user harus menyambungkan antara Bluetooth pada handphone dengan modul Bluetooth. Apabila sudah tersambung maka user dapat menggunakan tampilan GUI (Graphic User Interface) untuk memilih alat yang akan dikendalikan. Data yang dikirim dari Bluetooth pada handphone akan diterima oleh modul Bluetooth yang nantinya akan diolah pada mikrokontroler. Pengolahan pada mikrokontroler digunakan untuk mengontrol alat yang diperintahkan. Alat yang dikendalikan adalah lampu, pintu garasi. Alat tersebut juga mempunyai pengontrolan kondisi yang nantinya akan digunakan sebagai feedback jika alat sudah melakukan perintah dengan benar. Tampilan feedback akan ditampilkan pada GUI Handphone.

Android

Handphone

Modul

Bluetooth

Lampu

Pintu

Garasi Mikrokontroler


(37)

3.2.

Rangkaian Perangkat Keras

3.2.1. Modul Bluetooth dengan Mikrokontroler ATmega 8535

Gambar 3.2 Modul Bluetooth dan mikrokontroler ATmega 8535

Alur dari pemodelan sistem modul Bluetooth dengan mikrokontroler ATmega 8535 adalah sebagai berikut. Modul Bluetooth digunakan untuk menerima data dari handphone kemudian meneruskannya ke mikrokontroler. Modul Bluetooth ini juga digunakan untuk mengirim kembali feedback dari mikrokontroler ke handphone. Mikrokontroler berfungsi untuk menjalankan perintah yang didapat dan pengecekannya, kemudian akan dikirim menjadi feedback. Port RX pada modul Bluetooth disambungkan pada PD0 karena merupakan pin yang bisa digunakan sebagai receiver pada USART, sedangkan port TX pada modul Bluetooth disambungkan pada PD1 karena biasa digunakan untuk transmitter pada mikrokontroler.

3.2.2. Lampu dan Sensor Lampu

keluaran dari sensor cahya yang masuk ke mikrokontroler adalah PA1.

Gambar 3.3 Sensor lampu

Dari datasheet, persamaan 2.1, dan persamaan 2.2 untuk mencari nilai resistor pull up pada sensor lampu, maka diperoleh nilai resistor sebagai berikut.

1.0 LDR1

LDR

GND R2

30K 5V


(38)

R2min=���−� ���� = �− , � �� = 120Ω R2max=���−� � = �− , � µ� = 500k Ω

Dari nilai Rmin dan Rmax yang sudah diperoleh akan digunakan R2= 30 kΩ

3.2.3. Driver dan Motor DC

Rangkaian driver motor yang digunakan adalah L298N. Input satu dan dua pada modul L298N dihubungkan ke PB0 dan PB1 pada mikrokontroler. Masukan untuk enable 1 dihubungkan ke PD4 pada mikrokontroler dikarenakan pada PD4 merupakan OCR1A. Motor dc yang digunakan pada pintu garasi adalah M1

Gambar 3.4 Driver motor dan motor dc

3.2.4. Rangkaian Saklar

Pada penelelitian ini penulis akan menggunakan rancangan pada gambar 3.5 sebanyak 2 rangkaian.

Pada PC0 dan PC1 di mikrokotroler merupakan keluaran dari limit switch bawah dan atas pada pintu garasi.

Gambar 3.5 Rangkaian saklar

Dari datasheet, persamaan 2.1, dan persamaan 2.2 untuk mencari nilai resistor pull up pada rangkaian saklar, maka diperoleh nilai resistor sebagai berikut.

R3min=���−� ���� = �− , � �� = 120Ω

IN1 5 IN2 7 ENA 6 OUT1 2 OUT2 3 ENB

11 OUT3 13 OUT4 14 IN3 10 IN4 12 SENSA 1 SENSB 15 GND 8 VS 4 VCC 9 U1 L298 PB0 PB1 M1

5 V 12 V

PD4 R3 30K GND KE MIKROKONTROLER 5 V


(39)

R3max=���−� � = �− , � µ� = 500k Ω

Dari nilai Rmin dan Rmax yang sudah diperoleh akan digunakan R3= 30 kΩ

3.3.

Perancangan Perangkat Lunak

3.3.1. GUI

Gambar 3.6 GUI garasi

Dalam sistem ini yang dikontrol adalah pintu garasi dan lampu. Pada dasarnya user akan diminta memilih perintah langsung dengan menekan pada GUI di handphone yang sudah dibuat. Indikator menyala hijau apabila dalam keadaan menyala untuk lampu dan terbuka untuk pintu garasi, bila menyala merah maka keadaan mati untuk lampu dan keadaan tertutup untuk pintu garasi.

3.3.2.

Pengaktifan Bluetooth

Merupakan langkah-langkah untuk melakukan pengaktifan Bluetooth atau penggabungan Bluetooth dengan alat sebelum sistem dilakukan.

Berikut ini Langkah-langkah yang digunakan untuk pengaktifan Bluetooth

1. Pengaktifan Bluetooth dengan mengaktifkan Bluetooth pada handphone yang digunakan.


(40)

3. Lakukan penyambungan antara handphone dengan penerima yang disebut pairing. 4. Apabila Bluetooth handphone sudah tersambung dengan modul Bluetooth

< “OK”>, dan bila sambungan gagal <”Koneksi Gagal“>.

5. Penampilan GUI akan muncul ketika Bluetooth sudah tersambung . 6. Setelah Penampilan GUI, maka sistem sudah bisa dijalankan.

3.3.3.

Flow Chart

Android pada Handphone

Gambar 3.7 Flow chart Android pada handphone

Flow chart Android pada handphone terdapat pengirim dan penerima sekaligus. Setelah user menekan perintah yang diinginkan maka terjadi pengiriman data ke modul Bluetooth.

Setelah pengiriman data ke modul Bluetooth sudah dilakukan, maka sistem akan melihat apakah sudah ada feedback yang masuk pada sistem. Apabila belum ada feedback dari kontrol maka program hanya menjalankan sampai pada pengiriman data saja. Ketika program mendapaktkan feedback maka akan melakukan pengecekan sebelum masuk pada indikator yang menjadi feedback-nya.


(41)

3.3.4.

Flow Chart

Mikrokontroler

Gambar 3.8 Flow chart di sistem penerima

Pada receiver data yang sudah dikirim oleh handphone akan diterima oleh modul Bluetooth. Dari modul Bluetooth itu akan dilanjutkan ke mikrokontroler sebagai kontrolnya. Dari mikrokontroler akan disambungkan langsung ke alat-alat yang digunakan seperti lampu dan pintu garasi. Data yang diterima pertama kali akan dicek apakah untuk kontrol lampu atau pintu garasi, dan jika tidak ada data maka akan mengecek kondisi. Apabila data yang diterima merupakakan data untuk mengontrol lampu maka akan memproses sub rutin aktifkan lampu, bila bukan maka merupakan data untuk mengontrol pintu garasi dan akan memproses aktifkan pintu garasi. Setelah program dijalankan akan ada pengecekan kondisi alat. Jika alat sudah bekerja sesuai dengan data yang dikirimkan maka akan langsung dikirim kembali sebagai feedback, apabila alat tidak sesuai dengan data yang dikirim akan terjadi looping dimana kembali lagi ke proses pengecekan keaktifan lampu atau pintu garasi.


(42)

1.3.5.

Flow Chart

Sub Rutin Aktifkan Lampu

Gambar 3.9 Flow chart sub rutin lampu

Dalam prototipe nantinya akan menggunakan sebuah lampu AC 220 volt. Sistem yang akan dijalankan adalah alat akan menerima data dari kontoler yang nantinya akan diteruskan dan dideteksi keadaannya apakan menyala atau mati.

3.3.6.

Flow Chart

Sub Rutin Aktifkan Pintu Garasi


(43)

Pada flow chart pintu garasi pendeteksian alat yang digunakan adalah limit switch. Limit switch ini akan menentukan arah putaran dari motor dc yang menentukan kondisi alat tersebut.

Motor akan berputar searah jarum jam (putar ke bawah) dilakukan sampai limit switch bawah tertekan. Dalam kondisi tersebut adalah sistem penutupan pintu garasi. Motor akan berputar berlawanan arah jarum jam (putar ke Atas) dilakukan sampai limit switch atas terkena. Nantinya pada program akan ditambahkan waktu lamanya perputaran motor.

Flow chart ini juga menunjukan program yang akan diolah apabila terjadi pembukaan paksa pada pintu garasi. Flow chart program akan menunjukan feedback kepada user apabila pintu garasi yang tidak tertutup sempurna, bisa dikatakan dalam kondisi setengah buka.


(44)

24

BAB IV

HASIL DAN PEMBAHASAN

4.1. Hasil Implementasi Alat

Gambar 4.1 Alat secara keseluruhan

Gambar 4.1 merupakan gambar alat yang dirancang secara keseluruhan. Alat yang dibuat terdiri dari dua bagian yang dapat dikontrol, yaitu motor dc 12 volt sebagai penggerak pintu garasi dan lampu 220 volt. Sensor yang digunakan adalah limit switch sebanyak dua buah yaitu untuk limit switch bawah dan limit switch atas pada pintu garasi, LDR digunakan untuk mengecek kondisi pada lampu. Feedback yang dihasilkan dari sensor nantinya akan dikirim ke GUI seperti gambar 4.2.


(45)

Pada tombol “connect” akan langsung mendapatkan feedback dari kondisi awal pada alat. Feedback yang didapat akan menyalakan indikator pada GUI sesuai perintah yang user minta. Apabila terjadi kesalahan juga akan ditampilkan pada indikator di GUI.

4.2. Hasil Perancangan Perangkat Keras

Gambar 4.3 Rangkaian limit switch atas.

Pada gambar 4.3 sebelum limit switch tidak ditekan maka yang akan masuk ke mikrokontroler adalah 5,021 volt, apabila limit switch ditekan tegangan akan menuju ke ground dan yang akan masuk ke mikrokontroler adalah 0 volt.

Gambar 4.4 Rangkaian limit switch bawah.

Gambar 4.4 bekerja serupa dengan limit switch atas dan digunakan untuk batas bawah alat bekerja.

Gambar 4.5 Rangkaian LDR

Pin mikrokontrolel Gnd VCC

Pin mikrokontroler

Gnd

VCC VCC

Pin mikronontroler


(46)

Rangkaian LDR terkena cahaya maka hambatannya adalah 0,8907 kΩ, jika LDR tidak terkena cahaya maka hambatan adalah 16,798 kΩ.

Gambar 4.6 Module Bluetooth

Gambar 4.6 adalah modul Bluetooth yang digunakan untuk mengirim dan menerima data, tegangan yang digunakan adalah 5 volt. Kaki RX disambungkan ke pin TX pada mikrokontroler, sedangkna kaki TX disambungkan ke pin RX pada mikrokontroler.

Gambar 4.7 Rangkaian L298

Pada gambar 4.7 kaki 3 dan kaki 2 digunakan sebagai output. Pengaturan pwm pada kaki 6 dan dengan sumber yang masuk pada kaki 4 adalah 12 volt sesuai dengan tegangan yang dibutuhkan oleh motor dc. Rangkaian L298 digunakan sebgai pembalik putaran dengan cara merubah masukan pada kaki 5 dan kaki 7.

4.3. Hasil Perancangan Alat dan Sistem

4.3.1. Letak

Limit Switch

Dalam pengerjaan alat yang dilakukan terdapat beberapa model penempatan limit switch sehingga mendapatkan hasil yang lebih optimal. Penempatan limit switch pada awal perakitan alat seperti pada gambar 4.8.

TX mikrokontroler RX mikrokontroler

Gnd VCC

Motor dc Motor dc

vcc

Gnd

12 volt Pin mikrokontroler

Gnd

Pin mikrokontroler Pin mikrokontroler


(47)

Gambar 4.8 Model penempatan limit switch pertama

Kekurangan penempatan limit switch pertama adalah ketika pintu ditutup dan dibuka, tidak dapat mengenai limit switch karena spacer tidak bisa menekan limit switch secara sempurna. Kemudian pada limit switch bawah diganti dengan memanjangkan tuas seperti gambar 4.9.

Gambar 4.9 Limit switch dengan tuas yang diperpanjang

Pemanjangan limit switch berfungsi seperti pesawat sederhana berupa tuas. Semakin panjang lengan kuasa, maka akan semakin besar keuntungan mekanisnya karena gaya yang dibutuhkan untuk menekan limit switch kecil. Maka model limit switch dengan tuas yang lebih panjang digunakan untuk menggantikan limit switch bawah seperti gambar 4.10.

Gambar 4.10 Model penempatan limit switch kedua

Pada pemodelan kedua untuk limit switch bawah dapat tertekan sempurna. Tetapi ketika limit switch tertekan spacer, berat dari spacer membuat tuas panjang yang disambungkan ke limit switch menjadi patah karena tidak bisa menahan berat dari spacer terlalu lama. Dibuatlah pemodelan penempatan limit switch yang ketiga seperti gambar 4.11.


(48)

Gambar 4.11 Model penempatan limit switch ketiga

Dengan penambahan balok karet untuk menahan limit switch yang tertekan spacer pada saat tertutup dan penambahan balok karet pada bagian atas digunakan untuk menahan spacer agar tidak melebihi batas dari limit switch atas. Namun ketika spacer menekan limit switch atas, motor tidak langsung berhenti. Masih ada sisa putaran yang membuat limit switch atas tidak bisa dibaca ketika pengkoneksian kondisi awal. Dibuatlah model penempatan limit switch keempat seperti gambar 4.12.

Gambar 4.12 Model penempatan limit switch keempat

Pemodelan penempatan limit switch keempat ini adalah pemodelan yang digunakan untuk alat. Tuas pada limit switch atas dibuat lebih panjang seperti pada limit switch bawah dan peletakan limit switch atas lebih dikebawahkan. Fungsinya adalah ketika limit switch atas tertekan maka sisa putaran dari motor masih dapat menekan limit switch sehingga ketika pengecekan kondisi awal, limit switch atas bisa terbaca.

4.3.2. Penggunaan Modul HC-05

Modul HC-05 adalah modul Bluetooth yang digunakan untuk berkomunikasi antara mikrokontroler dengan android. Modul HC-05 mempunyai AT Command yang digunakan untuk mengubah atau mengecek status pada modul HC-05. Dalam pengerjaan alat ada beberapa AT Command yang dicoba. Contohnya adalah perintah “AT” untuk mengecek


(49)

module Bluetooth telah terkoneksi dengan respone “OK”. Selain itu ada juga perintah

“AT+VERSION?” digunakan untuk melihat versi dari Bluetooth itu. Untuk mengetahui nama

module Bluetooth menggunakan perintah “AT+NAME?” dan untuk mengetahui sandi dari module Bluetooth menggunakan perintah “AT+PSWD?”. Saat pengerjaan alat juga dicoba perintah untuk mengubah master dan slave Bluetooth yaitu menggunakan perintah

“AT+ROLE”. Perintah “AT+ORGL” digunakan untuk mengembalikan modul Bluetooth ke

setatus awalnya. Perintah “AT+RESET” digunakan untuk reset modul Bluetooth.

4.3.3. Pemilihan Arduino Menggantikan ATmega 8535

Pada pengujian mendapatkan kendala saat pengiriman dari ATmega 8535 ke Android. Selain itu data yang diterima dari Android oleh ATmega 8535 tidak sesuai dengan desimal ASCII yang dikirimkan oleh Android. Berikut ini adalah data yang diterima oleh ATmega 8535 dan data yang diterima oleh Android ditunjukan pada tabel 4.1 dan tabel 4.2.

Tabel 4.1 Pengiriman Android ke ATmega8535. Data yang dikirim

dari android

ASCII yang diterima ATmega 8535 (desimal)

ASCII yang seharusnya diterima(desimal)

a 216 97

b 217 98

c 217 99

d 218 100

e 218 101

f 219 102

Tabel 4.2 Pengiriman dari ATmega 8535 ke Android. Data yang dikirim

dari ATmega 8535

Data (desimal) yang dikirim dari

ATmega 8535

Data yang diterima oleh Android

a 97 -

b 98 -

c 99 -

d 100 -

e 101 -

f 102 -

Perbedaan data yang ada dimungkinkan karena pengiriman paket data yang dilakukan oleh Android tidak bisa dibaca sempurna oleh ATmega 8535. Pengiriman paket data dari


(50)

ATmega 8535 ke Android juga tidak sesuai dengan paket data yang dibutuhkan oleh Android, maka dari itu data tidak bisa dibaca oleh Android.

Dengan mencoba mikrokontroler yang lain yaitu Arduino Uno. Pemilihan Arduino ini dikarenakan pada program Arduino mempunyai fungsi-fungsi yang bisa langsung digunakan untuk berkomunikasi dengan mobul Bluetooth. pengiriman dan penerimaan data yang dilakukan antara Arduino dan Android dapat dijalankan dengan benar. Berikut ini adalah data yang dikirim oleh Android dan diterima oleh Arduino Uno dan data yang dikirim Arduino Uno diterima oleh Android ditunjukan pada tabel 4.3 dan tebel 4.4.

Tabel 4.3 Pengiriman dari Android ke Arduino Uno Data yang dikirim dari

Android(character)

Data yang diterima oleh Arduino(character)

a a

b b

c c

d d

e e

f f

Tabel 4.4 Pengiriman dari Arduino Uno ke Android Data yang dikirim dari

Arduino Uno(character)

Data yang diterima oleh Android(character)

a a

b b

c c

d d

e e

f f

Seperti pada tabel 4.3 dan tabel 4.4 data yang diterima oleh Arduino Uno ditampilkan pada serial monitor, sedangkan data yang diterima oleh Android ditampilkan langsung pada handphone. Data yang didapat oleh Arduino Uno diproses untuk mengontrol pintu garasi dan lampu 220 volt. Feedback yang didapat dari limit switch dan LDR akan dikirim ke Android.


(51)

4.4. Hasil Perancangan Menggunakan Arduino

4.4.1. Pengujian Motor

Gambar 4.13 Program Pengendali motor dc searah jarum jam

Gambar 4.13 merupakan program pengendali motor dc. Pin 6 pada Arduino Uno disambungkan ke kaki 5 pada L298 dan pin 7 pada Arduino Uno disambungkan ke kaki 7 pada L298. Dengan memberi logika tinggi pada pin 7 dan logika rendah pada pin 6 akan menghasilakn putaran searah jarum jam di motor dc.

Gambar 4.14 Program pengenadali motor dc berlawana arah jarum jam

Gambar 4.14 merupaka program pembailk putaran. Jika pin 7 diberi logika rendah dan pin 6 diberi logika tinggi maka akan menghasilkan putaran yang berlawanan arah jarum jam.

4.4.2. Pengujian Lampu

Gambar 4.15 Program pengendali lampu

Nyala matinya lampu diatur menggunakan relay. NO (normally open ) akan menutup apabila pin In1 diberi logika rendah. Pin ln1 disambungkan pada pin 8 Arduino Uno. Sehingga untuk mengaktifkan relay diberi program seperti pada gambar 4.15.


(52)

4.4.3. Pengujian Sensor

Pengujian pada perancangan ini ditampilkan pada serial monitor dan besarnya tegangan yang diperoleh. Pengujian yang dilakukan melibatkan limit switch dan LDR. Hasil pengujian akan ditampilkan pada tabel 4.5 dan tabel 4.6.

4.4.3.1. Pengujian

Limit switch

Kaki C pada limit switch disambungkan di pin 6 pada Arduino Uno, kaki NO disambungkan ke ground. Apabila limit switch tidak ditekan, data yang masuk ke Arduino akan ditampilkan pada serial monitor seperti gambar 4.16.

Gambar 4.16 Serial monitor untuk limit switch tidak ditekan

Apabila limit switch sudah ditekan maka data yang masuk ke Arduino logika rendah dan ditampilkan pada serial monitor seperti gambar 4.17.

Gambar 4.17 Serial monitor untuk limit switch sudah ditekan

Dari hasil tersebut nilai yang dihasilkan dari percobaan limit switch sesuai dengan perancangan. Tabel 4.5 menunjukan hasil tegangan dan serial monitornya :

Tabel 4.5 Hasil pengujian limit switch keadaan dari limit switch

atas dan bawah

Tegangan (volt)

Dibaca serial monitor

Tidak terkena 5,021 1


(53)

4.4.3.2 pengujian LDR

Berdasarkan perancangan apabila LDR diberikan cahaya maka LDR akan memberikan logika rendah ke pin 2 pada Arduino Uno. Logika rendah pada Arduino Uno ditampilkan pada serial monitor seperti gambar 4.18.

Gambar 4.18 Serial monitor LDR dengan cahaya

Jika LDR tidak diberi cahaya maka memberikan logika tinggi ke pin 2 pada Arduino Uno. Hasil ditampilkan pada serial monitor seperti gambar 4.19.

Gambar 4.19 Serial monitor LDR tanpa cahaya

Dari pengujian dengan dan tanpa cahaya didapatkan bahwa kluaran LDR sesuai dengan perancangan. Tabel 4.6 menunjukan hasil dari tegangan dan serial monitornya.

Tabel 4.6 Hasil pengujian LDR Keadaan dalam

pengujian pada LDR

Tegangan (volt)

Serial monitor

Tidak terkena cahaya 3,045 1

Terkena cahaya 0,155 0

4.5. Pengujian Sistem

4.5.1.

connected

Ketika tombol connect ditekan maka akan mencari nama Bluetooth yang sesuai pada program. Sesudah nama Bluetooth sesuai dengan nama Bluetooth pada program maka yang selanjutnya adalah mepersiapkan UUID yang digunakan untuk bisa mengolah data menggunakan modul Bluetooth. UUID yang digunakan adalah UUID universal yang bisa digunakan oleh modul Bluetootth lainya seperti gambar 4.20.


(54)

Gambar 4.20 List program connected 179. caca5.setOnClickListener(new OnClickListener() { 180.

181. @Override

182. public void onClick(View v) {

183. // TODO Auto-generated method stub

184.

185. Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();

186. if(pairedDevices.size() > 0) 187. {

188. for(BluetoothDevice device : pairedDevices) 189. {

190. if(device.getName().equals("HC-05")) //Note, you will 191. //need to change this to match the name of your device

192. {

193. mmDevice = device;

194. Toast.makeText(getApplicationContext(), "Connected", Toast.LENGTH_SHORT).show();

195. 196. break; 197. } 198. } 199. }

200.//* UUID universal yang digunakan

201. UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb"); 202. //Standard SerialPortService ID

203.

204. try {

205. mmSocket =

mmDevice.createRfcommSocketToServiceRecord(uuid);

206. } catch (IOException e) {

207. // TODO Auto-generated catch block

208. e.printStackTrace();

209. }

210.

211. try {

212. mmSocket.connect();

213. } catch (IOException e) {

214. // TODO Auto-generated catch block

215. e.printStackTrace();

216. }

217.

218. try {

219. mmOutputStream =

mmSocket.getOutputStream();

220. } catch (IOException e) {

221. // TODO Auto-generated catch block

222. e.printStackTrace();

223. }


(55)

225. try {

226. mmInputStream =

mmSocket.getInputStream();

227. } catch (IOException e) {

228. // TODO Auto-generated catch block

229. e.printStackTrace();

230. }

231. //beginListenForData();

232. send="e"; // data yang dikirim dalam char

233. try {

234. SendData(send); 235. terimaData(); 236. } catch (IOException e) {

237. //TODO Auto-generated catch block 238. e.printStackTrace();

239. }

240. Toast.makeText(getApplicationContext(), "data di terima", Toast.LENGTH_SHORT).show();

241. }

242. }); 243.

Gambar 4.20 List program connected (lanjutan)

Setelah UUID dipersiapkan, langkah selanjutnya adalah menjalankan program SendData(). Isi dari fungsi SendData() dapat dilihat pada gambar 4.21.

49. //* mengirim data dari android

50. void SendData(String data)throws IOException{ 51. mmOutputStream.write(data.getBytes()); 52. mmOutputStream.flush();

53. }

Gambar 4.21 List fungsi SendData()

Di dalam fungsi SendData digunakan untuk mengirim data dari Android ke Arduino Uno. Pada program connected data “e”(dalam bentuk char) dikirimkan dari Android ke Arduino Uno. Data tersebut diterima dan diproses oleh Arduino Uno. Pada Arduino terdapat listing program seperti gambar 4.22.

38. if (kata==101) // cek awal ) // decimal ASCI ‘e’ 39. {

40. cek_awal(); 41. kata=0; 42. //delay(3000); 43. }

44. else if (kata==97) // decimal ASCI ‘a’ 45. {

46. buka_pintu(); 47. }


(56)

48. else if (kata==98) ) // decimal ASCI ‘b’ 49. {

50. tutup_pintu(); 51. }

52. else if (kata==99) ) // decimal ASCI ‘c’ 53. {

54. hidup_lampu(); 55. }

56. else if(kata==100) ) // decimal ASCI ‘d’ 57. {

58. matikan_lampu(); 59. }

60. }

Gambar 4.22 List program Arduino(lanjutan)

Data “e” yang diterima oleh Arduino Uno kemudian diterjemahkan menjadi desimal ASCI dan masuk pada fungsi cek_awal(). Isi dari fungsi cek_awal() adalah seperti gambar 4.23.

62. void cek_awal() 63. {

64. lam=digitalRead(2); 65. gar1=digitalRead(3);//LSA 66. gar2=digitalRead(4);//LSB 67. if (lam==1)//mati lampu 68. {

69. lampu="L0"; 70. }

71. else if (lam==0)//hidup lampu 72. {

73. lampu="L1"; 74. }

75. if ((gar1==1)&&(gar2==0))//tutup pintu 76. {

77. garasi="G0"; 78. }

79. else if ((gar1==0)&&(gar2==1))//buka pintu 80. {

81. garasi="G1"; 82. }

83. else if((gar1==1)&&(gar2==1)) 84. {

85. garasi="G2"; 86. }

87. BTSerial.print(lampu); // data yang dikirim untuk tombol hidup dan mati lampu 88. BTSerial.print(garasi); // data yang dikirim untuk tombol buka dan tutup 89. BTSerial.write("\r\n");

90. kata=0; 91. delay(1000); 92. }


(57)

Di dalam fungsi cek_awal() terdapat perintah untuk mengecek setiap sensornya. Untuk hasil dari sensor LDR disimpan pada variabel ‘lampu’, sedangkan untuk pintu garasi

disimpan dengan variabel ‘garasi’. Kemudian data dikirimkan ke Android satu paket dengan

“\r\n”. Data yang dikirim dari Arduino Uno akan diterima oleh Android dan diolah pada fungsi terimaData(). Berikut fungsi terimaData() seperti gambar 4.24.

55. void terimaData() 56. {

57. final Handler handler = new Handler(); 58. final byte delimiter = 10;

59. stopWorker = false; 60. readBufferPosition = 0; 61. readBuffer = new byte[1024];

62. workerThread = new Thread(new Runnable() { 63. public void run() {

64. while(!Thread.currentThread().isInterrupted() && !stopWorker) { 65. try

66. {

67. int bytesAvailable = mmInputStream.available(); 68. if(bytesAvailable > 0)

69. {

70. byte[] packetBytes = new byte[bytesAvailable]; 71. mmInputStream.read(packetBytes);

72. for(int i=0;i<bytesAvailable;i++) 73. {

74. byte b = packetBytes[i]; 75. if(b == delimiter) 76. {

77. byte[] encodedBytes = new byte[readBufferPosition];

78. System.arraycopy(readBuffer, 0, encodedBytes, 0, encodedBytes.length); 79. kalimat = new String(encodedBytes, "US-ASCII");

80. readBufferPosition = 0; 81. //*feedback yang dimunculkan setelah menerima data. 82. handler.post(new Runnable() { 83. public void run()

84. {

85. apa=kalimat.substring(0, 1);

86. String lampu=kalimat.substring(1, 2); 87. String garasi=kalimat.substring(3, 4); 88. char lampu1=lampu.charAt(0); 89. char garasi1=garasi.charAt(0); 90. char apa1=apa.charAt(0);

91. final Button caca=(Button)findViewById(R.id.button1); 92. final Button caca2=(Button)findViewById(R.id.button2); 93. final Button caca3=(Button)findViewById(R.id.button3); 94. final Button caca4=(Button)findViewById(R.id.button4); 95. final Button caca5=(Button)findViewById(R.id.connect);

96. Toast.makeText(getApplicationContext(), apa, Toast.LENGTH_SHORT).show(); 97. if(lampu1=='1'){

98. caca4.setBackgroundColor(Color.GREEN); 99. caca3.setBackgroundColor(Color.GRAY); 100. }


(58)

101. else if(lampu1=='0'){

102. caca3.setBackgroundColor(Color.RED);

103. caca4.setBackgroundColor(Color.GRAY); 104. }

105. if(garasi1=='1'){

106. caca.setBackgroundColor(Color.GREEN);

107. caca2.setBackgroundColor(Color.GRAY); 108. }

109. else if(garasi1=='0'){

110. caca2.setBackgroundColor(Color.RED);

111. caca.setBackgroundColor(Color.GRAY); 112. }

113. else if(garasi1=='2'){

114. caca2.setBackgroundColor(Color.RED);

115. caca.setBackgroundColor(Color.GREEN); 116. }

117. if(apa1=='a'){ 118.

119. caca.setBackgroundColor(Color.GREEN); 120. caca2.setBackgroundColor(Color.GRAY);} 121. else if(apa1=='b'){

122. caca2.setBackgroundColor(Color.RED); 123. caca.setBackgroundColor(Color.GRAY); 124. }

125. else if(apa1=='c'){

126. caca4.setBackgroundColor(Color.GREEN); 127. caca3.setBackgroundColor(Color.GRAY); 128. }

129. else if(apa1=='d'){

130. caca3.setBackgroundColor(Color.RED); 131. caca4.setBackgroundColor(Color.GRAY); 132. }

133. else if (apa1=='f'){

134. caca2.setBackgroundColor(Color.RED);

135. caca.setBackgroundColor(Color.GREEN); 136. }

137. else if (apa1=='g'){

138. caca3.setBackgroundColor(Color.RED); 139. caca4.setBackgroundColor(Color.GREEN); 140. }

141. } 142. }); 143. } 144. else 145. {

146. readBuffer[readBufferPosition++] = b; 147. }

148. } 149. } 150. }

151. catch (IOException ex) 152. {

153. stopWorker = true; 154. }

155. } 156. } 157. });

158. workerThread.start(); 159. }


(59)

Pada fungsi terimaData() digunakan untuk menerima paket data yang dikirim oleh Android dan nantinya akan dijadikan indikator feedback sesuai dengan paket data yang diterima. Feedback akan dimunculkan seperti gambar 4.25.

Gambar 4.25 GUI feedback dari connect

4.5.2. Garasi

Sistem ini berkaitan dengan 2 tombol yaitu tombol buka dan tombol tutup. Tombol

buka akan mengirimkan data ‘a’(dalam bentuk char) ke Arduino Uno seperti pada gambar 4.26.

244.caca.setOnClickListener(new OnClickListener() { 245. @Override

246. public void onClick(View v) { 247.

248. send = "a"; // data yang dikirim dalam bentuk char

249. try {

250.

251. SendData(send);

252. Toast.makeText(getApplicationContext(), "a", Toast.LENGTH_SHORT).show();

253. terimaData(); 254. } catch (IOException e) {

255. // TODO Auto-generated catch block 256. e.printStackTrace();

257.

258. }

259. }

260. });


(60)

Nilai ‘a’ akan dikirimkan ke Arduino Uno menggunakan fungsi SendData() seperti gambar 4.21. Setelah data diterima oleh Arduino Uno, maka data tersebut akan diolah sesuai dengan desimal ASCI pada gambar 4.22. Proses yang kemudian dilakukan adalah memanggil fungsi buka_pintu() seperti gambar 4.27.

94. void buka_pintu() 95. {

96. int a=0;

97. unsigned long i=0; 98. gar1=digitalRead(3);//LSA 99. //gar2=digitalRead(4);//LSB 100. gar3=7;

101. gar4=6; 102. pwm=5;

103. digitalWrite(gar3,HIGH); 104. digitalWrite(gar4,LOW); 105. analogWrite(pwm,225); 106. while((gar1!=0)&&(a==0)) 107. {

108. gar1=digitalRead(3); 109. i++;

110. if(i==800000){a=1;} 111. }

112. digitalWrite(gar3,LOW); 113. digitalWrite(gar4,LOW); 114. analogWrite(pwm,0); 115. if (a==1)

116. {

117. BTSerial.write("fxxx\r\n"); // paket data untuk feedback error 118. kata=0;

119. delay(200); 120. a=0; 121. } 122. else 123. {

124. BTSerial.write("axxx\r\n"); // paket data untuk feedback buka 125. kata=0;

126. delay(200); 127. }

128.}

Gambar 4.27 List fungsi buka_pintu()

Dalam fungsi buka_pintu() motor dc bekerja berlawanan arah jarum jam. Apabila limit switch atas tertekan maka akan mengirimkan paket data yang natinya akan diolah pada fungsi terimaData() di Android sebagai feedback indikator seperti gambar 4.24. Feedback indikator yang muncul seperti gambar 4.28.


(61)

Gambar 4.28 GUI feedback indikator buka

Jika tombol tutup akan mengirimkan ‘b’(dalam bentuk char) seperti gambar 4.29 yang selanjutnya akan dikirim dengan fungsi SendData seperti gambar 4.21.

Gambar 4.29 List tombol tutup

Arduino akan mengolah data dan diterjemahkan menjadi desimal ASCI seperti gambar 4.22. Setelah data diolah masuk dalam fungsi tutup_pintu() seperti gambar 4.30.

130.void tutup_pintu() 131.{

132. int a=0;

133. unsigned long i=0; 134. gar2=digitalRead(4);//LSB 135. gar4=6;

136. gar3=7; 137. pwm=5;

138. digitalWrite(gar4,HIGH); 139. digitalWrite(gar3,LOW); 140. analogWrite(pwm,225);

Gambar 4.30 List fungsi tutup_pintu() 262. caca2.setOnClickListener(new OnClickListener() {

263. @Override

264. public void onClick(View v) {

265. // TODO Auto-generated method stub 266.

267. send="b";// data yang dikirim dalam bentuk char

268. try {

269. SendData(send); 270. terimaData(); 271. } catch (IOException e) {

272. // TODO Auto-generated catch block 273. e.printStackTrace();

274. }

275. }


(62)

Gambar 4.30 List fungsi tutup_pintu()(lanjutan)

Dalam fungsi tutup_pintu() motor akan bekerja searah jarum jam. Jika limit switch bawah terkena maka akan mengirimkan paket data yang nantinya diolah di fungsi terimaData() pada Android seperti pada gambar 4.24. Feedback indikator ini akan muncul seperti gambar 4.31.

Gambar 4.31 GUI feedback indikator tutup

4.5.3. Lampu

Pengontrolan lampu mengunakan 2 tombol pada GUI yaitu tombol hidup dan mati. Apabila tombol hidup ditekan maka mengolah program seperti gambar 4.32.

141.while((gar2!=0)&&(a==0)) 142. {

143. gar2=digitalRead(4); 144. i++;

145. if (i==800000){a=1;} 146. }

147. digitalWrite(gar4,LOW); 148. digitalWrite(gar3,LOW); 149. analogWrite(pwm,0); 150. if (a==1)

151. {

152. BTSerial.write("fxxx\r\n"); // paket data feedback error yang dikirim 153. kata=0;

154. delay(200); 155. a=0; 156. } 157. else 158. {

159. BTSerial.write("bxxx\r\n"); // paket data feedback indikator tutup 160. kata=0;

161. delay(200); 162. }


(63)

292. caca4.setOnClickListener(new OnClickListener() { 293. public void onClick(View v) {

294. // TODO Auto-generated method stub

295. send="c"; // data yanag dikirim dalam bentuk char 296. try {

297. SendData(send);

298. terimaData();

299. } catch (IOException e) {

300. // TODO Auto-generated catch block 301. e.printStackTrace();

302. }

303. } 304. }); 305. 306. }}

Gambar 4.32 List progam hidup

Data yang dikirim adalah ‘c’(dalam bentuk char). Fungsi yang digunakan untuk

mengirim adalah fungsi SendData() seperti gambar 4.21. Data tersebut diterjemahkan menjadi desimal ASCI oleh Arduino Uno kemudian diolah pada program seperti gamabr 4.22. Pemanggilan fungsi hidup_lampu() seperti gambar 4.33

1. void hidup_lampu() 2. {

3. unsigned long i=0; 4. int a=0;

5. lam1=8;

6. lam=digitalRead(2); 7. Serial.println(lam); 8. digitalWrite(lam1,LOW); 9. while((lam!=0)&&(a==0)) 10. {

11. lam=digitalRead(2); 12. i++;

13. if (i==800000){a=1;} 14. }

15. if (a==1) 16. {

17. BTSerial.write("gxxx\r\n"); // feedback jika error terjadi 18. kata=0;

19. delay(200); 20. a=0; 21. } 22. else {

23. BTSerial.write("cxxx\r\n"); // paket data yg dikirim unutk indikator feedback hidup 24. kata=0;

25. delay(200); 26. }

27. }


(64)

Fungsi hidup_lampu() digunakan untuk mengaktifkan relay. Setelah LDR terkena cahaya akan mengirimkan paket data yang diolah pada fungsi terimaData() pada Android seperti gambar 4.24. Feedback yang muncul dapat dilihat seperti gambar 4.34.

Gambar 4.34 GUI feedback indikator hidup

Pada tombol mati maka akan dikirim data ‘d’(dalam bentuk char) seperti gambar 4.35.

278. caca3.setOnClickListener(new OnClickListener() { 279. public void onClick(View v) {

280. // TODO Auto-generated method stub 281.

282. send="d"; // data yang dikirim dalam bentuk char

283. try {

284. SendData(send); 285. } catch (IOException e) {

286. // TODO Auto-generated catch block 287. e.printStackTrace();

288. }

289. }

290. });

Gambar 4.35 List program tombol mati

Data tersebut kemudian dikirim menggunakan fungsi SendData() seperti gambar 4.21. Data yang diterima oleh Arduino Uno diterjemahkan menjadi desimal ASCI-nya dan dimasukan dalam program seperti gambar 4.22. data yang diterima kemudian masuk dalam fungsi mati_lampu() pada Arduino Uno seperti gambar 4.36.


(65)

193.void matikan_lampu() 194.{

195. unsigned long i=0; 196. int a=0;

197. lam1=8;

198. lam=digitalRead(2); 199. Serial.println(lam); 200. digitalWrite(lam1,HIGH); 201. while((lam!=1)&&(a==0)){ 202. lam=digitalRead(2); 203. i++;

204. if (i==800000){a=1;} 205. }

206. if (a==1) 207. {

208. BTSerial.write("gxxx\r\n"); // data kesalahan yang dikirim 209. kata=0;

210. delay(200); 211. a=0; 212. } 213. else 214. {

215. BTSerial.write("dxxx\r\n"); // data untuk feedback mati 216. kata=0;

217. delay(200); 218. }

219.}

Gambar 4.36 List fungsi mati_lampu()

Fungsi mati_lampu() digunakan untuk mematikan relay. Apabila LDR tidak mendapat cahaya maka mengirimkan paket data yang nantinya akan diolah di fungsi terimaData() seperti gambar 4.24. Feedback indikator dapat dilihat seperti gambar 4.37.


(66)

4.5.4. Pengujian

Feedback Error

Seperti pada perancangan, akan ditambahkan progam untuk mengatasi apabila ada keadaan tidak terduga pada alat. Keadaan tidak terduga yang dimaksud adalah keadaan dimana pintu garsi tidak tertutup dengan sempurna dan apabila lampu yang digunakan telah rusak. Feddback error pada pintu garasi terjadi apabila ketika menjalankan fungsi buka_pintu() seperti gambar 4.27 limit switch atas maupun bawah tidak tertekanena. Seperti fungsi buka_pintu() pada gambar 4.27 dan tutup_pintu() pada gambar 4.30 maka akan mengirimkan paket data ke Android. Nantinya di Android akan diproses pada fungsi terimaData() seperti gambar 4.24 dan dibaca sebagai feedback error. Indikator feedbacknya ditunjukan seperti gambar 4.38.

Gambar 4.38 GUI feedback indikator error pintu garasi

Untuk feedback error yang terjadi pada lampu apabila ketika menjalankan fungsi hidup_lampu() seperti gambar 4.33 namun LDR tidak mendapatkan cahaya maka akan mengirimkan data ke Android. Data itu disebut juga sebagai data dari feedback error. Indikator yang ditampilkan feedback seperti gambar 4.39.


(1)

22 Telephony (Cordless telephony, Modem, Headset service,…) 23 Information (WEB-server, WAP- server,…)

TABLE 1.2:MAJOR SERVICE CLASSES

[Ref #1 As defined in See Generic Access Profile, Bluetooth SIG]

2. MAJOR DEVICE CLASSES

The Major Class segment is the highest level of granularity for defining a Bluetooth Device. The main function of a device is used for determining the major Class grouping. There are 32 different possible major classes. The assignment of this Major Class field is defined in Table1.3.

1 2 1 1 1 0 9 8 Major Device Class 0 0 0 0 0 Miscel laneous [Ref #2]

0 0 0 0 1 Computer (desktop, notebook, PDA, organizers,…) 0 0 0 1 0 Phone (cellular ,cordless ,payphone, modem,…) 0 0 0 1 1 LAN/Network Access point

0 0 1 0 0 Audio/Video (headset, speaker, stereo, video display, vcr …) 0 0 1 0 1 Periphereal (mouse, joystick, keyboards.…)

0 0 1 1 0 Imaging (printing, scanner, camera, display,…) 1 1 1 1 1 Uncategorized, specific device code not specified X X X X All other values reserved

TABLE 1.3: MAJOE DEVICE CLASSES

[Ref #2:Used where a more specific Major Device Class is not suited (but only as specified as in this document) .Devices that do not have a major class assigned can use the all-1 code until’ classified’]

3. THE MINOR DEVICE CLASS FIELD

The’ Minor Device Class field’ (bits 7 to 2 in the CoD ), are to be interpreted only in the context of the Major Device Class (but interpreted of the Service Class field). Thus the meaning of the bits may change, depending on the value of the ’ Major Device Class field’. When the Minor Device Class field indicates a device class ,then the


(2)

primary decvice class should be reported, e. g . a cellular phone that can work as a cordless handset should

4. MINOR DEVICE CLASS FIELD–COMPUTER MAJOR CLASS Minor Device Class

7 6 5 4 3 2 bit no of CoD

0 0 0 0 0 0 Uncategorized, code for device not assigned 0 0 0 0 0 1 Desktop workstation

0 0 0 0 1 0 Server-class computer 0 0 0 0 1 1 Laptop

0 0 0 1 0 0 Handheld PC/PDA(clam shell) 0 0 0 1 0 1 Palm sized PC/PDA

0 0 0 1 1 0 Wearable computer (Watch sized) X X X X X X All other values reserved

TABLE 1.4: SUB DEVICE CLASS FIELD FOR THE’ COMPUTER ’MAJOR CLASS

5. MINOR DEVICE CLASS FIELD – PHONE MAJOR CLASS Minor Device Class

7 6 5 4 3 2 bit no of CoD

0 0 0 0 0 0 Uncategorized, code for device not assigned 000001 Cellular

0 0 0 0 1 0 Cordless 0 0 0 0 1 1 Smart phone

0 0 0 1 0 0 Wired modem or voice gateway 0 0 0 1 0 1 Common ISDN Access

0 0 0 1 1 0 Sim Card Reader

X X X X X X All other values reserved

TABLE1.5: SUB DEVICE CLASSES FOR THE’PHONE’ MAJOR CLASS


(3)

CLASS

Minor Device Class 7 6 5 bit no of CoD 0 0 0 Fully available 0 0 1 1 – 17% utilized 0 1 0 1 7 - 33% utilized 0 1 1 3 3 – 50% utilized 1 0 0 5 0 – 67% utilized 1 0 1 6 7 – 83% utilized 1 1 0 8 3 – 99% utilized

1 1 1 No service available [REF #3] XXX All other values reserved

TABLE1.6: THE LAN/NETWORK ACCESS POINE LOAD FACTOR FIELD

[Ref #3: Device is fully utilized and cannot accept additional connections at this time, please retry later ]

The exact loading formula is not standardized. It is up to each LAN/Network Access Point implementation to determine what internal conditions to report as a utilization of communication requirement is that the box .As a recommendation, a client that locates multiple LAN/Network Access Points should attempt to connect to the one reporting the lowest load.

Minor Device Class 4 3 2 bit no of CoD

0 0 0 Uncategorized (use this value if no other apply ) XXX All other values reserved

TABLE1.7:RESERVED SUB-FIELD FOR THE LAN/NETWORK ACCESS POINE

7. MINOR DEVICE CLASS FIELD – AUDIO/VIDEO MAJOR CLASS Minor Device Class

7 6 5 4 3 2 bit no of CoD


(4)

0 0 0 0 0 1 Device conforms to the Headset profile 000010 Hands-free

0 0 0 0 1 1 (Reserved ) 0 0 0 1 0 0 Microphone 0 0 0 1 0 1 Loudspeaker 0 0 0 1 1 0 Headphones 0 0 0 1 1 1 Portable Audio 0 0 1 0 0 0 Car audio 0 0 1 0 0 1 Set-top box

0 0 1 0 1 0 HiFi Audio Device 001011 VCR

0 0 1 1 0 1 Camcorder 0 0 1 1 1 0 Video Monitor

0 0 1 1 1 1 Video Display and Loudspeaker 0 1 0 0 0 0 Video Conferencing

0 1 0 0 0 1 (Reserved)

0 1 0 0 1 0 Gaming/Toy [Ref #4]

X X X X X X All other values reserved

[Ret #4: Only to be used with a Gaming/Toy device that makes audio/video capabilities available via Bluetooth]

TABLE 1.8: SUB DEVICES FOR THE ’AUDIO/VIOEO’MAJOR CLASS

8. MINOR DEVICE CLASS FIELD – PERIPHERAL MAJOR CLASS Minor Device Class

7 6 bit no of CoD 0 1 Keyboard 1 0 Pointing device

1 1 Combo keyboard /pointing device X X X All other values reserved


(5)

FIELD

Bits 6 and 7 independently specify mouse, keyboard or combo mouse/keyboard devices. These may be combined with the lower bits in a multifunctional device.

Minor Device Class 5 4 3 2 bit no of CoD

0 0 0 0 Uncategorized device 0 0 0 1 Gamepd

0 0 1 1 Remote control 0 1 0 0 Sensing device 0 1 0 1 Digitizer tablet

X X X X All other values reserved

TABLE1.10: RESERVED SUB-FIELD FOR THE DEVICE TYPE

9. MINOR DEVICE CLASS FIELD – IMAGING MAJOR CLASS Minor Device Class

7 6 5 4 bit no of CoD X X X 1 Display X X 1 X Camera X 1 X X Scanner 1 X X X Printer

X X X X All other values reserved

TABLE 1.11: THE TMAGING MAJOR CLASS BITS 7 TO 7

Bits 4 to 7 independently specify bi splay, camera, scanner or printer. These may be combined in a multifunctional device.

Minor Device Class 3 2 bit no of CoD

0 0 Uncategorized, default X X All other values reserved

TABLE 1. 12: THE IMAGING MAJOR CLASS BITS 2 AND 3 Bits 2 and 3 are reserved


(6)

Appendix 3: (The Inquiry Access Codes)

The General-and Device-Specific Inquiry Access Codes (DIACs)

The Inquiry Access Code is the first level of filtering when finding Bluetooth devices. The main purpose of defining multiple IACs is to limit the number of responses that are received when scanning devices within range.

0. 0x9E8B33 ---- General/Unlimited Inquiry Access Code(GIAC) 1. 0x9E8B00 ---- Limited Dedicated Inquiry Access Code(LIAC) 2. 0x9E8B01 ~ 0x9E8B32 RESERVED FOR FUTURE USE 3. 0x9E8B34 ~ 0x9E8B3F RESERVED FOR FUTURE USE

The Limited Inquiry Access Code(LIAC)is only intended to be used for limited time periods in scenarios where both sides have been explicitly caused to enter this state, usually by user action. For further explanation of the use of the LIAC, please refer to the Generic Access Profile.

In contrast it is allowed to be continuously scanning for the General Inquiry Access Code (GIAC)and respond whenever inquired.