• Tidak ada hasil yang ditemukan

Smart Home Security Berbasis Arduino Mega 2560

N/A
N/A
Protected

Academic year: 2021

Membagikan "Smart Home Security Berbasis Arduino Mega 2560"

Copied!
54
0
0

Teks penuh

(1)

1 1

Smart Home Security

Smart Home Security

berbasis Arduino

berbasis Arduino

Mega 2560

Mega 2560

Smart home security adalah system pengamanan rumah berbasis Arduino Mega 2560,

Smart home security adalah system pengamanan rumah berbasis Arduino Mega 2560,

system pengamanan ini dikontrol dan terkoneksi ke sebuah aplikasi yang dapat

system pengamanan ini dikontrol dan terkoneksi ke sebuah aplikasi yang dapat

mengontrol aktifitas sensor, konfigurasi sensor, dan lain-lain. System ini memiliki

mengontrol aktifitas sensor, konfigurasi sensor, dan lain-lain. System ini memiliki

beberapa system pengamanan, yaitu pengamanan di pintu dan pengamanan di

beberapa system pengamanan, yaitu pengamanan di pintu dan pengamanan di

ruangan. Adapun pengamanan di pintu mencakupi : membuka pintu menggunakan

ruangan. Adapun pengamanan di pintu mencakupi : membuka pintu menggunakan

deteksi wajah melalui aplikasi, membuka pintu menggunakan keypad dan ketukan, dan

deteksi wajah melalui aplikasi, membuka pintu menggunakan keypad dan ketukan, dan

system pengamanan menggunakan laser apabila pintu dirusakkan atau di dobrak pada

system pengamanan menggunakan laser apabila pintu dirusakkan atau di dobrak pada

saat pintu dalam keadaan terkunci. Untuk pengamanan di ruangan mencakupi

saat pintu dalam keadaan terkunci. Untuk pengamanan di ruangan mencakupi

pemantau suhu dan pemantau kadar gas/asap di udara, merekam gambar/video, dan

pemantau suhu dan pemantau kadar gas/asap di udara, merekam gambar/video, dan

mendeteksi apabila ada objek yang bergerak di sekitar camera dan mengirim gambar

mendeteksi apabila ada objek yang bergerak di sekitar camera dan mengirim gambar

tersebut ke pengguna.

tersebut ke pengguna.

2012

2012

Muammar Khadafi & Amrullah

(2)

DAFTAR ISI

DAFTAR ISI

DAFTAR

DAFTAR ISI ISI ... ii

BAB

BAB I I ... .... 11 PENDAHULUAN

PENDAHULUAN ... ... 11 1.1.

1.1. Latar Latar Belakang Belakang ... ... 11 1.2. 1.2. Sasaran Sasaran ... ... 22 1.3. 1.3. Tujuan...Tujuan... ... 22 1.4. 1.4. Pengenalan Pengenalan ... ... 22 BAB BAB II ...II ... ... 55 PEMBAHASAN PEMBAHASAN ... ... 55 2.1.

2.1. Perlengkapan Perlengkapan dan dan Peralatan yang Peralatan yang digunakan digunakan ... ... 55 2.2.

2.2. Software Software yang yang digunakan digunakan ... ... 88 2.3.

2.3. Pembuatan Pembuatan ... ... 88 2.4.

2.4. Pemograman Pemograman ... ... 1717 2.5.

2.5. Perintah-perintah Arduino dan aplikasi...Perintah-perintah Arduino dan aplikasi... ... 3939 2.6.

2.6. Pembuatan Pembuatan aplikasi aplikasi Smart-home Smart-home Security Security ... ... 4242 BAB

BAB III III ... 45... 45 PENUTUP

PENUTUP ... ... 4545 3.1.

3.1. Kesimpulan...Kesimpulan... ... 4545 Daftar

Daftar Pustaka Pustaka ... 47... 47 APPENDICES

APPENDICES ... ... 4949 Arduino

(3)

DAFTAR ISI

DAFTAR ISI

DAFTAR

DAFTAR ISI ISI ... ii

BAB

BAB I I ... .... 11 PENDAHULUAN

PENDAHULUAN ... ... 11 1.1.

1.1. Latar Latar Belakang Belakang ... ... 11 1.2. 1.2. Sasaran Sasaran ... ... 22 1.3. 1.3. Tujuan...Tujuan... ... 22 1.4. 1.4. Pengenalan Pengenalan ... ... 22 BAB BAB II ...II ... ... 55 PEMBAHASAN PEMBAHASAN ... ... 55 2.1.

2.1. Perlengkapan Perlengkapan dan dan Peralatan yang Peralatan yang digunakan digunakan ... ... 55 2.2.

2.2. Software Software yang yang digunakan digunakan ... ... 88 2.3.

2.3. Pembuatan Pembuatan ... ... 88 2.4.

2.4. Pemograman Pemograman ... ... 1717 2.5.

2.5. Perintah-perintah Arduino dan aplikasi...Perintah-perintah Arduino dan aplikasi... ... 3939 2.6.

2.6. Pembuatan Pembuatan aplikasi aplikasi Smart-home Smart-home Security Security ... ... 4242 BAB

BAB III III ... 45... 45 PENUTUP

PENUTUP ... ... 4545 3.1.

3.1. Kesimpulan...Kesimpulan... ... 4545 Daftar

Daftar Pustaka Pustaka ... 47... 47 APPENDICES

APPENDICES ... ... 4949 Arduino

(4)

BAB I

BAB I

PENDAHULUAN

PENDAHULUAN

1.1.

1.1. Latar BelakangLatar Belakang

Memasuki era saat ini banyak hal yang dilakukan dengan bantuan alat-alat yang Memasuki era saat ini banyak hal yang dilakukan dengan bantuan alat-alat yang canggih dan berkembang terus-menerus dengan baik. Perkembangan terjadi dalam berbagai canggih dan berkembang terus-menerus dengan baik. Perkembangan terjadi dalam berbagai aspek termasuk kehidupan, informasi transportasi, arsitektur kesehatan, dan banyak lainnya. aspek termasuk kehidupan, informasi transportasi, arsitektur kesehatan, dan banyak lainnya. Peralatan-peralatan canggih pada saat ini mengintegrasikan mikroprosessor atau Peralatan-peralatan canggih pada saat ini mengintegrasikan mikroprosessor atau mikrokontroller dengan bermacam-macam alat yang di kendalikan olehnya. Alat yang paling mikrokontroller dengan bermacam-macam alat yang di kendalikan olehnya. Alat yang paling kongkrit yang dapat kita lihat pada zaman sekarang ini adalah komputer. Hampir semua kongkrit yang dapat kita lihat pada zaman sekarang ini adalah komputer. Hampir semua  pekerjaan-pekerjaan

 pekerjaan-pekerjaan dalam dalam berbagai berbagai aspek aspek dikerjakan dikerjakan oleh oleh komputer komputer yang yang didalamnyadidalamnya mengontrol hampis semua jenis-jenis alat-alat produksi dalam perusahaan. Komputer adalah mengontrol hampis semua jenis-jenis alat-alat produksi dalam perusahaan. Komputer adalah  penggabungan

 penggabungan system system dan dan perangkat-perangkat perangkat-perangkat lainnya lainnya yang yang dikendalikan dikendalikan oleh oleh satu satu pusatpusat system pengendali yaitu mikroprosessor atau sering disebut prosessor.

system pengendali yaitu mikroprosessor atau sering disebut prosessor.

 Namun

 Namun hampir hampir semua semua peralatan-peralatan peralatan-peralatan elektronik, elektronik, seperti seperti perangkat perangkat automasi,automasi, sistem control mobil, perangkat medis, remote control, peralatan listrik, dan mainan sistem control mobil, perangkat medis, remote control, peralatan listrik, dan mainan menggunakan mikrokontroller sebagai pengendalikanya. Mikrokontroller lebih mudah dan menggunakan mikrokontroller sebagai pengendalikanya. Mikrokontroller lebih mudah dan lebih murah dalam implementasinya. Mikrokontroller adalah versi mini dan untuk aplikasi lebih murah dalam implementasinya. Mikrokontroller adalah versi mini dan untuk aplikasi khusus dari Mikrokomputer atau Komputer. Mikrokontroller sudah tertanam didalamnya khusus dari Mikrokomputer atau Komputer. Mikrokontroller sudah tertanam didalamnya memori (RAM), peripheral output-input, EEPROM, ALU, dan ROM dalam satu chip. Ini memori (RAM), peripheral output-input, EEPROM, ALU, dan ROM dalam satu chip. Ini membuat mikrokontroller mudah digunakan dibandingkan mikroprosessor yang memerlukan membuat mikrokontroller mudah digunakan dibandingkan mikroprosessor yang memerlukan  perangkat-perangkat external untuk mengimplementasikanny

 perangkat-perangkat external untuk mengimplementasikannya.a.

Tingginya angka kriminalitas khususnya pencurian yang sering terjadi saat ini Tingginya angka kriminalitas khususnya pencurian yang sering terjadi saat ini

(5)

tidak sempat untuk melakukanya sendiri. Oleh karena itu dibutuhkan suatu perangkat sistem tidak sempat untuk melakukanya sendiri. Oleh karena itu dibutuhkan suatu perangkat sistem keamanan yang dapat menjaga keamanan setiap waktu bahkan melindungi asset dan privasi keamanan yang dapat menjaga keamanan setiap waktu bahkan melindungi asset dan privasi yang di miliki.

yang di miliki.

Dengan mengaplikasian sistem keamanan tersebut maka dapat memberikan rasa aman Dengan mengaplikasian sistem keamanan tersebut maka dapat memberikan rasa aman dan nyaman. Selain hal tersebut tentunya dengan pengaplikasian sistem keamanan tersebut dan nyaman. Selain hal tersebut tentunya dengan pengaplikasian sistem keamanan tersebut maka dapat menekan angka kriminalitas yang terjadi di masyarakat khususnya tindak maka dapat menekan angka kriminalitas yang terjadi di masyarakat khususnya tindak kejahatan pencurian.

kejahatan pencurian. Karena mobilitas manusia yang Karena mobilitas manusia yang semakin cepat akibat dari aktifitas ysemakin cepat akibat dari aktifitas yangang mereka lakukan di era globalisasi sekarang ini menjadikan mereka memerlukan sebuah mereka lakukan di era globalisasi sekarang ini menjadikan mereka memerlukan sebuah teknologi keamanan yang canggih dan mudah digunakan.

teknologi keamanan yang canggih dan mudah digunakan.

1.2.

1.2. SasaranSasaran

Sasaran dari projek ini dalah membuat sebuah system yang bisa mengontrol atau Sasaran dari projek ini dalah membuat sebuah system yang bisa mengontrol atau mengendalikan sistem keamanaan rumah untuk mencegah terjadinya aksi-aksi criminal yang mengendalikan sistem keamanaan rumah untuk mencegah terjadinya aksi-aksi criminal yang sering terjadi dirumah-rumah seperti pencurian, perampokan, dan lain-lain. System ini juga sering terjadi dirumah-rumah seperti pencurian, perampokan, dan lain-lain. System ini juga memungkin pengguna mengontrol keadaan rumah menggunakan kamera dan memungkin pengguna mengontrol keadaan rumah menggunakan kamera dan meninformasikan pengguna pembacaan data dari setiap sensor-sensor yang terpasang meninformasikan pengguna pembacaan data dari setiap sensor-sensor yang terpasang didalamnya.

didalamnya. 1.3.

1.3. TujuanTujuan

Tujuan pembuatan dari projek ini adalah untuk melindungi rumah dari hal-hal yang Tujuan pembuatan dari projek ini adalah untuk melindungi rumah dari hal-hal yang tidak diinginkan seperti kebakaran, pencurian, dan perampokan. Semua aktifitas didalam tidak diinginkan seperti kebakaran, pencurian, dan perampokan. Semua aktifitas didalam rumah di rekam oleh system sehingga pengguna bisa memantau kejadian-kejadian yang rumah di rekam oleh system sehingga pengguna bisa memantau kejadian-kejadian yang terjadi didalam rumah, seperti memantau suhu ruangan, pendeteksian kebocoran gas, dan terjadi didalam rumah, seperti memantau suhu ruangan, pendeteksian kebocoran gas, dan  pemantau aktifitas ruangan melalui kamera.

 pemantau aktifitas ruangan melalui kamera. 1.4.

1.4. PengenalanPengenalan

Smart home security adalah system pengamanan rumah berbasis Microcontroller Smart home security adalah system pengamanan rumah berbasis Microcontroller ATMega 2560 sebagai pengontrol setiap sensor and penggerak didalamnya. System ini ATMega 2560 sebagai pengontrol setiap sensor and penggerak didalamnya. System ini memungkinkan pengguna untuk mengontrol system sensor dan mengetahui informasi memungkinkan pengguna untuk mengontrol system sensor dan mengetahui informasi  beberapa

(6)

sebuah aplikasi pengontrol yang harus diinstal di sebuah PC. Diantara kelebihan-kelebihan sebuah aplikasi pengontrol yang harus diinstal di sebuah PC. Diantara kelebihan-kelebihan yang dimiliki system Smart home security ini adalah sebagai berikut:

yang dimiliki system Smart home security ini adalah sebagai berikut:

 Membaca suhu ruangan dan menampilkan ke monitor Membaca suhu ruangan dan menampilkan ke monitor PC.PC. 

 Membaca dan mendeteksi gas/asap, ditampilkan kemonitor dan mengirim sebuahMembaca dan mendeteksi gas/asap, ditampilkan kemonitor dan mengirim sebuah

 pesan peringatan ke telpon genggam

 pesan peringatan ke telpon genggam pengguna yang sudah pengguna yang sudah terdaftar.terdaftar.

 Membuka pintu menggunakan keypad dan knock recognition (pedeteksi ketukan).Membuka pintu menggunakan keypad dan knock recognition (pedeteksi ketukan). 

 Pengamanan pintu menggunakan laser apabila pintu dirusakkan secara sengajar.Pengamanan pintu menggunakan laser apabila pintu dirusakkan secara sengajar. 

 Lampu indikasi, Merah(warning), Kuning(proses), Hijau (Aktif).Lampu indikasi, Merah(warning), Kuning(proses), Hijau (Aktif). 

 Memungkinkan untuk memantau keadaan rumah menggunakan kamera yang bisaMemungkinkan untuk memantau keadaan rumah menggunakan kamera yang bisa

dikontrol dari PC, dan Mobile (Handphone) melalui jaringan. dikontrol dari PC, dan Mobile (Handphone) melalui jaringan.

 Mendeteksi gerakan dan menyimpan gambar, dan juga menampilkan Mendeteksi gerakan dan menyimpan gambar, dan juga menampilkan hasil gambarhasil gambar

yang ditangkap menggunakan camera ke software

yang ditangkap menggunakan camera ke software monitoring.monitoring.

 Menampilkan informasi pada LCD display.Menampilkan informasi pada LCD display. 

 Face recognition untuk membuka pintu dan mengaktifkan keypad dan knockFace recognition untuk membuka pintu dan mengaktifkan keypad dan knock

recognition. (Bisa register beberapa jenis wajah) recognition. (Bisa register beberapa jenis wajah)

 Motion detection, mendeteksi dan merekam sebuah objek yang bergerak didepanMotion detection, mendeteksi dan merekam sebuah objek yang bergerak didepan

kamera dan mengirimkannya ke handphone pengguna. kamera dan mengirimkannya ke handphone pengguna.

(7)
(8)

BAB II

PEMBAHASAN

Dibawah ini adalah gambar koneksi perangkat-perangkat yang digunakan untuk membuat system ini.

2.1. Perlengkapan dan Peralatan yang digunakan

Adapun perlengkapan dan peralatan yang digunakan dalam pembuatan projek in adalah sebagai berikut :

Tabel 1 Peralatan yang digunakan  No

.

Gambar Nama Total Penggunaan

1 Arduino Mega 2560 1 Sensor Controller

(9)

3 Servo 1 Pengerak kunci pintu 4 Temperature Sensor (LM35Z) 1 Pendeteksi suhu ruangan 5 Gas/Smoke Sensor (QM-NG1) 1 Pendeteksi Gas/asap

6 Laser Diode 1 Lampu laser

7 LDR Sensor Cahaya

Untuk Laser

8 Character Display 16x2 1 Menampilkan

informasi

9 Piezo Disk 1 Pendeteksi ketukan

10 Webcam 2 Pendeteksi wajah.

11 IP Camera Foscam

FI8908W

1 Memantau, merekam gambar ruangan, kamera ini dapat mendeteksi sebuah object yang bergerak di depannya.

(10)

12 Modem USB 1 Sebagai pengirim SMS dan MMS

13 Xbee Pro 63Mw 2 Media komunikasi

Arduino dan PC

14 Adaptor 12 V 1 Penyuplai Daya

15 Xbee USB Adapter

(185.000)

1 Pemogram Xbee

16 Mega IO Expansion

Shield For Arduino Mega V1.2

(120.000)

1 IO shield untuk Xbee, IO koneksi

(11)

2. 4x4 keypad 1 Rp. 45.000 3. Servo 1 Rp. 50.000 4. Temperature Sensor (LM35Z) 1 Rp.12.000 5. Gas/Smoke Sensor (QM-NG1) 1 Rp. 75.000 6. Laser Diode 1 Rp.10.000 7. LDR 1 Rp.2.000 8. Character Display 16x2 1 Rp.45.000 9. Piezo Disk 1 Rp. 5.000 10. Webcam 1 Rp.50.000

11. IP Camera Foscam FI8908W 1 Rp. 700.000

12. Modem USB 1 Rp. 200.000

13. Xbee Pro 63Mw 2 Rp. 550.000

14. Adaptor 12 V 1 Rp. 40.000

15. Xbee USB Adapter 1 Rp. 185.000

16. Mega IO Expansion Shield For Arduino Mega V1.2

1 Rp. 120.000

Total : Rp. 2.844.000

2.2. Software yang digunakan

Dalam pembuatan projek ini, diperlukan beberapa software yang digunakan untuk mendukung pembuatan system smart home security. Adapun software yang digunakan adalah sebagai berikut :

1. AVRStudio 5

2. Microsoft Visual Studio 2010 VB.Net 3. Software Arduino (Untuk testing) 2.3. Pembuatan

Berikut ini adalah cara  –   cara pembuatan system smart home security, pembuatan system ini dibagi dua tahap, tahap pertama adalah pembuatan/pemograman hardware dan tahap kedua adalah pembuatan software pendukung hardware system ini yang diinstall di PC. Berikut adalah Langkah-langkap pembuatan hardware dan juga pennjelasan dari setiap

(12)

1. Koneksi LCD dan Arduino 2560

Bagan dibawah ini adalah pin mapping dari LCD display 16x2.

Bagan 2.1 LCD Pin Mapping

Bagan 2.2 Skema koneksi Arduino dan LCD Tabel 2.1 Tabel koneksi Arduino dan LCD

Pin Number Pin Name Arduino Mega

2560 Atmega 2560 1 VSS (Power supply, ground (0v) - -2 VDD (Positive power -

(13)

-Control) 6 E (Data enable) 34 PC3 7 DB0 (input) - -8 DB1 (input) - -9 DB2 (input) - -10 DB3 (input) - -11 DB4 (input) 33 PC4 12 DB5 (input) 32 PC5 13 DB6 (input) 31 PC6 14 DB7 (input) 30 PC7

15 BLA (Power + Light) -

-16 BLK (Power - Light) -

-2. Koneksi Temperature Sensor dan Arduino

(14)

Bagan 2.3 LM35Z pin

Bagan 2.4 Skema koneksi LM35Z dan Arduino Tabel 2.2 Tabel koneksi LM35Z dan Arduino

Pin Number Pin Name Arduino Mega

2560

Atmega 2560

1 +VS -

-2 Vout A1 PF1 (ADC1)

(15)

-3. Koneksi sensor Gas/asap dengan Arduino

Sensor gas Analog merupakan produk dari Perusahaan DFRobot. Sensor gas ini juga memiliki tiga pin keluar, dimana pin 1 adalah sinyal output yang terhubung ke pin 2 Arduino. Gambar dibawah ini menunjukkan gambar pin dari sensor Analog Gas/Smoke.

Bagan 2.5Sensor Gas/Smoke pin mapping

Bagan 2.6 Skema koneksi Sensor gas/smoke dengan Arduino Tabel 2.3 Tabel koneksi sensor gas/smoke dengan Arduino

Pin Number Pin Name Arduino Mega

2560

Atmega 2560

1 Signal Output A2 PF2(ADC2)

2 GND -

(16)

-4. Koneksi keypad dengan Arduino

Untuk keypad yang digunakan adalah keypad 4 x 4 untuk memasukkan kunci pada akses pintu (mengunci / membuka pintu). Keypad ini memiliki 8 pin, di mana satu pin untuk daya dan yang lainnya tujuh adalah untuk input data.

Bagan 2.7 Keypad

Gambar dibawah menunjukkan hubungan pin antara keypad dan Arduino, dan rincian konfigurasi pin dapat dilihat pada Tabel. Dalam tabel, tujuh pin data tombol yang terhubung ke tujuh pin input digital atau Arduino.

(17)

Bagan 2.8 Skema koneksi keypad dengan Arduino 2560

Tabel 2.4 Tabel koneksi keypad dengan Arduino

Pin Number Pin Name Arduino Mega

2560 Atmega 2560 1 VSS (Power Supply) - -2 Data1 22 PA0 3 Data2 23 PA1 4 Data3 24 PA2 5 Data4 25 PA3 6 Data5 26 PA4 7 Data6 27 PA5 8 Data7 28 PA6

5. Laser dan LDR Sensor

Laser dan sensor LDR digunakan dalam fitur laser keamanan tripwire. Hubungan antara sensor dan Arduino hardware diperlihatkan pada gambar dan tabel dibawah ini yang menunjukkan rincian konfigurasi pin di koneksi hardware.

(18)

Bagan 2.9 Skema senso LDR, Laser dan Arduino Tabel 2.4 Table skema Laser

Pin Number Pin Name Arduino 328 Atmega 328

1 VCC (+5V) -

-2 Ground -

-Tabel 2.5 -Tabel Koneksi sensor LDR dan Arduino

Pin Number Pin Name Arduino 328 Atmega 328

1 PIN1 GND GND

2 PIN2 A3 PF3 (ADC3)

6. Koneksi sensor ketukan dengan Arduino

Untuk mendeteksi  ketukan, sensor yang digunakan adalah sensor piezo.Sensor ini mendeteksi getaran di atasnya.Hubungan antara sensor dan Arduino ditunjukkan pada Gambar di bawah ini.

(19)

Bagan 2.10 Skema koneksi sensor piezo dan Arduino Detail konfigurasi pin ini yang ditampilkan dalam tabel berikut ini.

Tabel 2.6 Tabel koneksi sensor piezo dan Arduino

Pin Number Pin Name Arduino 328 Atmega 328

1 +VS -

-2 Ground A0 PF0 (ADC0)

7. Koneksi Kamera dengan PC

Pada kasus ini, smart-home security menggunakan IP camera sebagai kamera  pemantau yang di hubungkan menggunakan kabel LAN dan juga bisa dihubungkan

menggunakan WIFI ataupun LAN.

Tabel 2.7 Tabel koneksi Kamera ke PC

Pin Number Pin Name PC

(20)

2.4. Pemograman

Penerapan pemograman dalam projek ini menggunakan AVR Studio 5 dan Visual Studio VB.Net 2010. AVR studio 5 digunakan untuk memogram Arduino Mega 2560 dan Visual Studio VB.Net 2010 digunakan untuk memogram aplikasi desktop dari projek ini.Dalam pemograman Arduino, bahasa pemograman yang digunakan adalah C dan Assembly, dimana C dan Assembly digabung menjadi satu pemograman Arduino. Kelebihan menggunakan pemograman ini dibandingkan program Arduino sendiri adalah jumlah byte  program yang relative kecil karena penulis membuatnya semua programnya dari awal,

sehingga program dibuat sesuai kebutuhan saja. Keuntungan lainnya adalah penulis data mengubah instruksi-instruksi sesuai kebutuhan dan instruksi-instruksi yang diproses menjadi lebih cepat. Kekurangan dari pemograman memakai bahasa C dan Assembly adalah proses  pengembangannya yang sedikit memerlukan waktu dibandingkan program Arduino sendiri. Program Arduino sendiri menggunakan bahasa pemograman C++. Berikut cuplikan syntax dari pemograman Arduino Mega 2560 berserta penjelasannya :

(21)

1. Keypad

Keypad memerlukan 7 pin yang akan dikoneksikan ke Arduino Mega, dimana 4 pin memetakan ke kolum dan 3 pin memetakan baris pada keypad. Port yang digunakan adalah PORT A, Port A memiliki 7 pin yaitu terdapat pada pin (PORTA0)/22  –  (POARTA6)/28 pada Arduino. Gambar 2.12 adalah gambar pin dari keypad yang memetakan ke pin Arduino (22-28)/PORTA.

Bagan 2.12 Keypad I/O koneksi matrix

Bagaimana keypad berkerja sama dengan cara switch berkerja, yang terkoneksi ke kolum dan baris dari keypad. Jika tombol “1” ditekan, maka kolum 1 terkoneksi de ngan baris 1, jika tombol “2” ditekan maka kolum 2 terkoneksi dengan baris 1, dan seterusnya. Berikut tabel koneksi detik dari setiap pin yang terkoneksi ke kolum dan baris.

(22)

Tabel 2.8 Tabel binari keypad

Berikut adalah sintax koneksi dari keypad dan Arduino yang ditulis ke dalam Keypad.S. .S menandakan file yang ditulis dalam bentuk assembly dan akan dipanggil nantinya di C.

;***********************************; ; Header INITILIAZATION ; ;***********************************; #include "avr/io.h" ;***********************************; ; Variable INITILIAZATION ; ;***********************************; workreg = 16 workreg2 = 17

pKeyOut = PORTA ; Output and Pull-Up-Port pKeyInp = PINA ; read keypad input

pKeyDdr = DDRA ; data direction register of the port .extern hexaKeys

.extern temp

;***********************************; ; PORT INITILIAZATION ;

;***********************************;

.global InitPortKeypad ;make accesible globally

InitPortKeypad:

ldi workreg,0b11110000 ;

out _SFR_IO_ADDR(pKeyDdr),workreg ; set direction register ldi workreg,0b00001111 ;

(23)

; Identify the key pressed ; .global ReadKey .func ReadKey ReadKey: ldi r30, lo8((hexaKeys)) ldi r31, hi8((hexaKeys)) ldi workreg,0b01111111 ; PB6 = 0 out _SFR_IO_ADDR(pKeyOut),workreg

in workreg,_SFR_IO_ADDR(pKeyInp) ; read input line ori workreg,0b11110000 ; mask upper bits

cpi workreg,0b11111111 ; a key in this column pressed? brne KeyRowFound ; key found

adiw r30,4 ; column not found, point Z one row down ; read column 2

ldi workreg,0b10111111 ; PB5 = 0 out _SFR_IO_ADDR(pKeyOut),workreg

in workreg,_SFR_IO_ADDR(pKeyInp) ; read again input line ori workreg,0b11110000 ; mask upper bits

cpi workreg,0b11111111 ; a key in this column? brne KeyRowFound ; column found

adiw r30,4 ; column not found, another four keys down ; read column 3

ldi workreg,0b11011111 ; PB4 = 0 out _SFR_IO_ADDR(pKeyOut),workreg

in workreg,_SFR_IO_ADDR(pKeyInp) ; read again input line ori workreg,0b11110000 ; mask upper bits

cpi workreg,0b11111111 ; a key in this column? brne KeyRowFound ; column found

adiw r30,4 ; column not found, another four keys down ; read column 4

ldi workreg,0b11101111 ; PB4 = 0 out _SFR_IO_ADDR(pKeyOut),workreg

in workreg,_SFR_IO_ADDR(pKeyInp) ; read again input line ori workreg,0b11110000 ; mask upper bits

cpi workreg,0b11111111 ; a key in this column?

breq NoKey ; unexpected: no key in this column pressed KeyRowFound: ; column identified, now identify row

lsr workreg ; shift a logic 0 in left, bit 0 to carry brcc KeyFound ; a zero rolled out, key is found

adiw r30,1 ; point to next key code of that column rjmp KeyRowFound ; repeat shift

ret .endfunc

(24)

Tabel 2.9 Syntax keypad dalam bentuk Assembly

Syntax pada gambar 2.13 di bawah ini adalah method/fungsi yang dipanggil dari Keypad.S file yang telah dibuat sebelumnya menggunakan bahasa assembly.

externvoidInitPortKeypad(void); externcharReadKey(void);

Bagan 2.13 Initialisasi fungsi keypad dari Assembly di C

Syntax pada gambar 2.14 adalah deklarasi variable dalam bentuk array yang akan memetakan tombol pada keypad, variable ini akan dipanggil ke file Keypad.S untuk diproses.

unsignedchar hexaKeys[4][4]PROGMEM={ {'D','#','0','*'}, {'B','6','5','4'}, {'A','3','2','1'}, {'C','9','8','7'} }

Bagan 2.14 Variabel pemetaan tombol pada keypad Pada gambar 2.15 adalah fungsi untuk membaca tombol yang ditekan.

charRead_Keypad() { key=ReadKey(); //delay_ms(100); if(currentKey!=key) { presval=0; } if(key!=NO_KEY&&presval==0) { currentKey=key; presval=1; returncurrentKey; }else { returnNO_KEY; } returnNO_KEY; }

(25)

Pada gambar 2.16 adalah fungsi untuk mengkonfigur kalau pengguna tidak memasukkan / menekan tombol lain setelah memasukkan tombol sebelumnya untuk di hapus atau timeout.Time out yang diset adalah setiap 2000ms/2s apabile pengguna tidak menekan tombol lagi setelah menekan tombol sebelumnya.

//Keypad Timeout nowtime=millis(); if(nowtime-updateTime>2000&&counter!=0) { counter=0; LCDTOROW2();

lcd_putstring( "Time out... "); sbi(PORTB,redLED);

delay_ms(500); cbi(PORTB,redLED); }

Bagan 2.16 Keypad timeout fungsi

Syntax dibawah ini adalah syntax ketika tombol dibaca dan juga ditampilkan ke LCD display pada hardware. Syntax dibawah juga berfungsi untuk mengecek / mengavalidasi tombol yang ditekan oleh pengguna. Jika pengguna benar memasukkan kode kunci maka  pintu akan terbuka dan LCD akan memunculkan informasi “Correct” dan apabila pengguna

salah memasukkan kode kunci maka pintu tidak akan terbuka dan LCD memunculkan pesan error dan lampu indikasi yang berwarna merah berkedip.

customkey=Read_Keypad(); if(((customkey!=NO_KEY||ReadKey()!=currentKey)&&customkey!=NULL)&&counter<5) { updateTime=millis(); if(counter==0) { lcd_clear();

lcd_putstring( "Home Security."); LCDTOROW2(); lcd_putstring( "_____"); } lcd_gotoxy(counter,2); inputArray[counter]=customkey; //LCDTOROW2(); lcd_putchar('*'); uart_putchar(customkey); //s = s + customkey;

(26)

counter++; delay_ms(100); cbi(PORTB,yellowLED); } if(inputArray[0]==currentPassword[0]&&inputArray[1]==currentPassword[1]&&inputArray[2] ==currentPassword[2]&&inputArray[3]==currentPassword[3]&&inputArray[4]==currentPasswor d[4]) { LCDTOROW2(); lcd_putstring( "Correct.");

sbi(PORTB,yellowLED);//turn on registerPin led delay_ms(1000); if(LOCKSTATES==LOCK) { doorUnlock(); }elseif(alarmIsActive==TRUE) { alarmIsActive==FALSE;

lcd_putstring( "ALARM NON ACTIVE. "); } else { doorLock(); } cbi(PORTB,yellowLED); }else{ LCDTOROW2(); lcd_putstring( "Incorrect.");

sbi(PORTB,redLED);//turn on registerPin led delay_ms(1000);

cbi(PORTB,redLED); }

(27)

Bagan 2.17 Syntax proses dan validasi kode kunci pada keypad

(28)

Bagan 2.18 Pesan ketika benar memasukkan kode kunci

Bagan 2.19 pesan ketika salah memasukkan kode kunci

Bagan 2.20 pesan ketika membuka pintu

(29)

Bagan 2.22 Indikasi warning 2. LCD

Penulis menemukan referensi untuk menginitialisasikan LCD pada proram, syntax ditulis dalam bentuk bahasa Assembly, konfigurasi dan settingannya hanya pada PORT, DATA, dan PIN. Syntax ini juga akan dipanggil di C. Syntaxnya ditulisa dalam file Lcd.S. Berikut adalah cuplikan syntax dari konfigurasi LCD.Untuk syntax lengkapnya bisa di unduh bersamaan dengan karya tulis ini.

;***********************************; ; Header INITILIAZATION ; ;***********************************; #include "avr/io.h" ;***********************************; ; Variable INITILIAZATION ; ;***********************************; ;--- Define LCD parameters

---LCDPORT = _SFR_IO_ADDR(PORTC) ; Change to port you're

using

LCDDDR = _SFR_IO_ADDR(DDRC) ; Use PIN[4-7] as data pins LCDPIN = _SFR_IO_ADDR(PINC) ; Connect these to pins DB[4-7] of LCD

RSPIN = 1 ; RS pin on LCDPORT

RWPIN = 2 ; RW pin on LCDPORT

EPIN = 3 ; E pin on LCDPORT

lcdn = 1 ; Number of lines; n=1: 2 lines,

n=0: 1 line

lcdch = 16 ; Number of characters per row

lcdavrspd = 3 ; AVR speed; mess around with this

value

lcdc = 0 ; Cursor on/off at startup; c=1: on,

c=0: off

lcdb = 0 ; Cursor blink on/off at startup; b=1: on, b=0: off

;--- LCD controll, Nothing needs changing beyond this line ----LCDLOAD: ; - Do not execute file when it is only included

rjmp LCDEND …

(30)

Bagan 2.24 Step-step initialisasi pada LCD

Gambar diatas adalah step-step yang harus dilalui ketika menginitialisasi LCD. LCD dapat diinitialisasi dengan 7-bit pin dan 4-bit pin. Penulis memakai metode 4-bit pin untuk menghemat pin yang digunakan dalam koneksi.

Berikut adalah syntax untuk menginitialisasi command/perintah LCD.

//LCD INITIALIZATION

/* instruction register bit positions, see HD44780U data sheet */

#defineLCD_CLR0/* DB0: clear display #defineLCD_HOME1/* DB1: return to home position

#defineLCD_ENTRY_MODE2/* DB2: set entry mode

(31)

#defineLCD_MOVE_DISP3/* DB3: move display (0->

#defineLCD_MOVE_RIGHT2/* DB2: move right (0-> left) ? */

#defineLCD_FUNCTION5/* DB5: function set */

#defineLCD_FUNCTION_8BIT4/* DB4: set 8BIT mode (0->4BIT mode) */ #defineLCD_FUNCTION_2LINES3/* DB3: two lines (0->one line) */ #defineLCD_FUNCTION_10DOTS2/* DB2: 5x10 font (0->5x7 font) */ #defineLCD_CGRAM6/* DB6: set CG RAM address */

#defineLCD_DDRAM7/* DB7: set DD RAM address */

#defineLCD_BUSY7/* DB7: LCD is busy */

Bagan 2.25 Initialiasi command LCD

Bagan 2.26 Kode instruksi pada LCD

Kode instruksi diatas dapat digunakan untuk keperluan dalam penggunaan LCD.Kode diatas di eksekusi dengan mengirim perintah ke LCD. Berikut pada gambar 2.27 adalah method-method yang dipanggil dari file header assembly, file yang berisi konfigurasi dari LCD ke Arduino. externvoidLCDINIT(void); externvoidLCDPRTCHAR(charval); externvoidLCDCLEAR(void); externvoidLCDSENDCMD(uint8_tval); externvoidLCDTOROW1(void); externvoidLCDTOROW2(void); externvoidLCDCURSORON(void); externvoidLCDBLINKON(void); externvoidLCDTOCOL1(void); externvoidLCDBACKSPACE(void);

(32)

Bagan 2.27 Fungsi LCD yang dipanggil dari Lcd.S voidlcd_putchar( charc) { LCDPRTCHAR(c); } voidlcd_putstring(char*s) { while(*s) lcd_putchar(*s++); } voidlcd_init() { LCDINIT(); delayMicroseconds(3000); } voidlcd_gotoxy(uint8_tx,uint8_ty) { if(y==0) LCDSENDCMD((1<<LCD_DDRAM)+LCD_START_LINE1+x); else LCDSENDCMD((1<<LCD_DDRAM)+LCD_START_LINE2+x); } voidlcd_returnHome() {

LCDSENDCMD(LCD_RETURNHOME);// set cursor position to zero delayMicroseconds(1000);// this command takes a long time! }

voidlcd_clear() {

LCDCLEAR();

delay_ms(50);// this command takes a long time! }

Bagan 28 Fungsi-fungsi LCD dalam C

Instruksi diatas adalah fungsi-fungsi yang dideklarasi dalam file Lcd.h, fungsi ini dapat dipanggil dalam file utama.

(33)

Sensor suhu memerlukan converter ADC dari mikrokontroller.ADC converter melakukan konversi sinyal analog ke sinyal digital pada mikrokontroller.Dibawah ini adalah langkah dari konversi sinyal analog ke digital.

Bagan 2.30 Proses konversi sinyal analog ke digital

Secara umum, konversi sinyal dilakukan dengan 3 langkah, pertama pada dunia nyata, sensor akan merasakan / mendeteksi seperti gas, suhu, asap dan lain-lain. Kemudian sinyal akan mengkonversi ke sinyal listrik dan kemudian sinyal tersebut akan di konversi ke digital oleh mikrokontroller menggunakan ADC.

Ini adalah formula yang digunakan untuk mengkonversi sinyal, sinyal dibaca dalam  bentuk daya listrik dan kemudian akan dikonversi dengan formula tersebut sehingga menghasilkan nilai pada mikrokontroller. Arduino mega 2560 mempunyai referensi daya sebesar 5v, jadi segala sensor yang terkoneksi dengan daya yang dikeluarkan arduino mempunyai referensi pada 5v. Untuk mendapatkan daya voltage pada millivolts (mV) maka kita akan kalikan dengan 1000, jadi formulanya menjadi :

(34)

karena sensor LM35Z membutuhkan daya 10mV setiap 1 derajat. Untuk mendapatkan hasil suhu, maka:

tempC=((Vin)/1023.0)*500); //tempC adalah derajat celcius

ADC memerlukan initialisasi untuk mengkonfigurasi nilai presisi.Berikut cuplikan syntax dalam bahasa assembly untuk menginitialisasikan penggunaan ADC pada Arduino.

;***********************************; ; ADC INITILIAZATION ; ;***********************************; .global ADC_Init .func ADC_Init ADC_Init: cli ldi r16, _BV(REFS0) sts ADMUX, r16 ldi r16, _BV(ADEN)|_BV(ADPS2)|_BV(ADPS1)|_BV(ADPS0) sts ADCSRA, r16 lds r16, ADCSRA // Read ori r16, _BV(ADSC) // Modify sts ADCSRA, r16 // Write

ret .endfunc

;***********************************; ; Read ADC Value ;

;***********************************; .global read_adc

.func read_adc read_adc:

//Clear the older channel that was read LDS R25,ADMUX

ANDI R25,0xF0 STS ADMUX,R25

//Defines the new ADC channel to be read LDS R25,ADMUX

OR R25,R24 STS ADMUX,R25

//Starts a new conversion LDS R24,ADCSRA

ORI R24,(1<<ADSC) STS ADCSRA,R24

//Wait until the conversion is done L: LDS R24,ADCSRA

SBRC R24,ADSC RJMP L

//Returns the ADC value of the chosen channel LDS R24,0x78

(35)

Bagan 2.31 Initialisasi dan pembacaan sensor

Syntax diatas disimpan dalam ADC.S dalam satu project, nantinya fungsi-fungsi dalamnya kan dipanggil di kelas fungsi utama. Dibawah ini dalah initialisasi fungsi untuk  pemanggilan fungsi pada file ADC.S.

externvoidADC_Init(void);

externuint16_tread_adc(uint8_tchannel);

Bagan 2.32 Initialisasi fungsi ADC dari Assembly

if(TempSensorIsActive==TRUE) { for(i=0;i<=7;i++){ tempsamples[i]=(500.0*read_adc(tempPin))/1024.0; tempC=tempC+tempsamples[i]; }

tempC=tempC/8.0; // better precision }

else {

tempC=0; }

Bagan 2.33 Pembacaan sensor suhu

Syntax diatas adalah syntax untuk membaca suhu, pada syntax tersebut pembacaan dilakukan selama 8 kali selanjutnya nilai akan dibagai 8 untuk mendapatkan nilai yang sedikit akurat dibanding dengan pembacaan Cuma 1 kali. Hasil pembacaan dari sensor akan ditampilkan ke aplikasi seperti pada gambar 2.34 dibawah ini.

(36)

Bagan 34 Informasi suhu ditampilkan pada aplikasi smart home

4. Servo (Buka dan Tutup kunci pintu)

Untuk membuka dan menutup kunci pintu, semua tugas buka dan tutup kunci digerakkan oleh servo. Kunci akan terbuka pada point 0 derajat dan akan tertutup  pada poin 90 derajat servo.

(37)

Untuk dapat mengontrol motor servo kita perlu memberikan pulsa high dan pulsa low dengan lebar tertentu. Frekuensi yang diperlukan servo ini adalah 50 Hz. Dengan melihat gambar diatas maka dapat disimpulkan:

- 0 derajat -> 1000us - 90 derajat -> 1500us - 180 derajat -> 2000us

voidpulse_servo(uint8_t portVAlue,uint8_t pin,int angle) {

pwm=(angle*11)+500;//konversi sudut ke Microsecond PORTL=(1<<pin);

delayMicroseconds(pwm); PORTL=(0<<pin);

delay_ms(20); }

Bagan 2.35 Syntax untuk menggerakkan servo

for(i=0;i<5;i++){ sbi(PORTB,yellowLED); delay_ms(100); cbi(PORTB,yellowLED); delay_ms(100); } for(i=90;i>10;i--) { sbi(PORTB,yellowLED); pulse_servo(servoport,door_servo3,i); } cbi(PORTB,yellowLED); LOCKSTATES=UNLOCK;

Bagan 2.36 Syntax untuk membuka kunci pintu dengan servo

for(i=0;i<5;i++){ sbi(PORTB,yellowLED); delay_ms(100); cbi(PORTB,yellowLED); delay_ms(100); } for(i=10;i<90;i++) { pulse_servo(PORTH,door_servo3,i); sbi(PORTB,yellowLED); } cbi(PORTB,yellowLED); LOCKSTATES=LOCK;

(38)

Bagan 2.37 Syntax untuk mengunci pintu dengan servo

Masing-masing servo memeliki nilai pulsa yang sedikit berbeda. Tapi secara umum hampir sama. Pada servo yang penulis gunakan, memerlukan pulsa 10x11 + 500 = 650 untuk menggerakkan servo pada posisi 0.Jadi pulsa 650 untuk servo ini memetakan servo pada posisi awal yaitu 0 derajat. Selanjutnya servo akan bergerak ke 90 derajat dan 180 derajat dengan menambahkan nilai pulsa.

5. Laser

Konsep yang penulis terapkan dalam pengamanan pintu dengan laser ini adalah mudah, cahaya laser ditembakkan langsung ke sensor cahaya (LDR).Kemudian Arduino di konfigurasikan untuk pembacaan cahaya dari sensor, pada nilai tertentu (treshold) menandakan cahaya redup artinya ada sesuatu objek yang bergerak didepan laser sehingga membuat cahaya laser menjadi terputus.Untuk pembacaan sensor digunakan ADC seperti penggunaan pada sensor suhu. Nilainya hasil konversi akan mencapai 1023 apabila cahaya terang diatas sensor, dan menurun apabila cahaya redup. Nilai threshold yang digunakan adalah 750, artinya sensor akan terus membaca diatas 750 jika laser terus memberikan cahaya. Apabila cahaya berkurang maka  pembacaan sensor akan menurun dibawah 750. Selajutnya Arduino mengirimkan  pesan warning dan mengaktifkan alarm.

ldrval=read_adc(3);

if(ldrval<laserTresholdVal) {

uart_putstring("Object Detected In laser Tripwire,TRUE"); uart_putchar('\n');

alarmIsActive=TRUE; }

Bagan 2.38 Pembacaan sensor cahaya dan laser 6. Ketukan

Sensor ketukan menggunakan sensor Piezoelectric yang bisa mendeteksi setiap getaran padanya. Sensor ini disamping untuk mengeluarkan bunyi, sensor ini juga

(39)

converter (ADC) untuk mendeteksi nilai yang dihasilkan.Ada nilasi threshold untuk mengatur sensibilatas dari pembacaan ketukan. Ketika sensor bergetar, sensor akan menghasilkan nilai tegangan yang kemudian dikonversi menjadi sinyal digital oleh Arduino. Sehingga nilai bisa dikomparasi dengan nilai threshold. Berikut adalah syntax untuk membaca sensor piezo.

knockSensorValue=read_adc(knockSensor); if(knockSensorValue>=threshold){

listenToSecretKnock(); }

Bagan 2.39 Syntax untuk membaca ketukan

Berikut ada cuplikan syntax untuk melakukan proses record. Proses ini akan dilakukan selama ketukan tidak lebih dari 20 dan dalam jangka waktu tertentu.

do{

//listen for the next knock or wait for it to timeout. knockSensorValue=read_adc(knockSensor); if(knockSensorValue>=threshold){ uart_putstring("Knocking...\n"); lcd_gotoxy(0,1); lcd_write_int(counterNumber+1,1); now=millis(); knockReadings[counterNumber]=now-startTime; counterNumber++; startTime=now; cbi(PORTB,greenLED); if(programButtonPressed==1){ cbi(PORTB,redLED); } delay_ms(150); sbi(PORTB,greenLED); if(programButtonPressed==1){ sbi(PORTB,redLED); } } now=millis(); }while((now-startTime<knockComplete)&&(counterNumber<maximumKnocks));

Bagan 2.40 Syntax untuk membaca dan menyimpan ketukan

Proses validasi akan dieksekusi jika dalam jangka waktu tertentu pengguna tidak mengetuk lagi dan ketukan sudah mencapai 20.

Int validateKnock(){ inti=0; LCDTOROW2(); lcd_putstring( "Validating... "); currentKnockCount=0; secretKnockCount=0; intmaxKnockInterval=0; for(i=0;i<maximumKnocks;i++){

(40)

currentKnockCount++; } if(secretCode[i]>0){ secretKnockCount++; } if(knockReadings[i]>maxKnockInterval){ maxKnockInterval=knockReadings[i]; } } if(programButtonPressed==1){ LCDTOROW2(); lcd_putstring( "Saving... ");

for(i=0;i<maximumKnocks;i++){// normalize the times

secretCode[i]=mapValue(knockReadings[i],0,maxKnockInterval,0,100); } cbi(PORTB,greenLED); cbi(PORTB,redLED); delay_ms(1000); sbi(PORTB,greenLED); sbi(PORTB,redLED); delay_ms(50); for(i=0;i<maximumKnocks;i++){ cbi(PORTB,greenLED); cbi(PORTB,redLED); if(secretCode[i]>0){ unsignedintsrpteValue=mapValue(secretCode[i],0,100,0,maxKnockInterval); delay_ms(srpteValue);sbi(PORTB,greenLED); sbi(PORTB,redLED); } delay_ms(50); } return0; } if(currentKnockCount!=secretKnockCount){ return0; } totaltimeDifferences=0; timeDiff=0;

for(i=0;i<maximumKnocks;i++){// Normalize the times

knockReadings[i]=mapValue(knockReadings[i],0,maxKnockInterval,0,100); timeDiff=abs(knockReadings[i]-secretCode[i]); if(timeDiff>rejectValue){return0; } totaltimeDifferences+=timeDiff; }

Bagan 2.41 Syntax untuk memvalidasi ketukan

Syntax diatas juga digunakan untuk menyimpan ketukan yang akan divalidasi.

(41)

sensor mendeteksi sebuah kebocoran gas/asap membuat tegangan dari sensor tersebut menjadi tinggi. if(gasSensorIsActive==TRUE) { gasVal=read_adc(2); } else { gasVal=0; } if(gasVal>gasThresholdVal) { if(gascountWarning<1) { uart_putstring("WarningSmoke,TRUE"); uart_putchar('\n'); gaswarning=TRUE; } gascountWarning++; alarmIsActive=TRUE; }elseif(gaswarning==TRUE) { gascountWarning=0; alarmIsActive=FALSE; } itoa(gasVal,buffer,10); uart_putstring("Smoke,"); uart_putstring(buffer); uart_putchar('\n'); gasVal=0;

Bagan 2.42 Syntax untuk membaca sensor gas, menampilkan, dan mengirim pesan warning

Selanjutnya Arduino mengirim pesan warning ke computer, dan aplikasi memproses data yang diterima dan mengirim pemberitahuan ke pengguna.

(42)

Bagan 2.44 Tampilan status warning pada aplikasi

Bagan 45 Pesan SMS yang dikirim oleh Aplikasi saat menerima pesan warning dari sensor gas

2.5. Perintah-perintah Arduino dan aplikasi

Arduino dan aplikasi smart home security yang sudah diinstall di computer saling  berkomunikasi satu sama lain. Untuk melaksanan suatu perintah yang dikirimkan aplikasi, maka perlu di setting perintah khusus di dalam Arduino untuk aksi tertentu. Begitu juga dengan aplikasi. Aplikasi membaca suatu pesan/perintah yang dikirimkan arduino, selanjutnya proses ini akan melakukan suatu aksi seperti menampilkan data, mengirim pesan, dan lain-lain. Berikut table-tabel berisi perintah-perintah dari Arduino dan aplikasi yang saling berkomunikasi untuk melakukan subuah aksi tertentu.

Tabel 2.9 Tabel perintah dari aplikasi ke Arduino

Command Action

6 Set knock programmer button is “On”

7 Set alarm “Inactive”

8 Set alarm “Active”

a Set keypad “Inactive”

 b Set keypad “Active”

d Set Knock sensor “Inactive” e Set Knock sensor “Active” f Set temperature sensor “Inactive” g Set temperature sensor “Active” h Set laser tripwire sensor “Inactive”

(43)

n Set 2n level of security “On” o Set 2n level of security “Off”

Dibawah ini adalah daftar perintah-perintah yang dikirim oleh Arduino ke aplikasi untuk melakukan sebuah aksi sesuai keinginan pembuatnya.

Tabel 2.10 Table perintah dari Arduino ke aplikasi Command Description

T,”value” Menerima nilai dari sensor suhu dan menampilkan ke

monitor

Smoke,”value” Menerima nilai dari sensor gas dan menampilkan ke

monitor

WarningSmoke Menerima status warning dari sensor gas dan

mengirim sms ke  pengguna melalui aplikasi Object Detect In

laser Tripwire

Menerima pesan warning dari sensor laser dan

mengirim sms ke  pengguna melalui aplikasi Alarm,True Alarm aktif

Setelah semuanya selesai, selanjutnya tiba pada proses upload program ke Arduino. Untuk upload program ke arduino, penulis menggunakan program Uploader. Avrdude membutuhkan .hex file untuk diupload ke Arduino mega. .hex file akan terbuat jika kita sudah sukses membuild sebuah projek seperti gambar dibawah ini.

(44)

Bagan 2.46 Folder Project pada Pemograman Arduino menggunakan AVR Studio 5

Bagan 2.47 Aplikasi yang digunakan untuk upload program Arduino Mega 2560 Program uploader yang penulis gunakan untuk mengunduh program dalam bentuk

(45)

2.6. Pembuatan aplikasi Smart-home Security

Smart home security dikontrol oleh aplikasi yang sudah disebutkan sebelumnya, oleh karena itu, system ini tidak akan jalan jika aplikasinya tidak aktif. Aplikasinya sendiri dibuat menggunakan VB.Net 2010 berserta komponen lainnya. Penulis akan memaparkan sedikit sintax dari aplikasi ini. Dikarenakan syntaxnya sedikit banyak, jadi penulis hanya memaparkan sintax untuk melakukan koneksi dan memproses setiap data yang diterima aplikasi. Berikut adalah potongan syntax untuk melakukan koneksi ke serial :

PublicFunction connectSerial(ByVal port AsString, ByVal baudrate AsString) If port = ""Or baudrate = ""Then

MessageBox.Show("Port or Baudrate is Null", "Error") Else serialPort.Close() With serialPort .BaudRate = CInt(baudrate) .PortName = port .Parity = IO.Ports.Parity.None .DataBits = 8 .StopBits = IO.Ports.StopBits.One .Handshake = IO.Ports.Handshake.None .Encoding = System.Text.Encoding.ASCII EndWith 'serialPort.Open() If serialPort.IsOpen Then serialPort.Close() EndIf EndFunction

Bagan 2.48 Syntax untuk melakukan koneksi serial

Fungsi dibawah ini adalah fungsi ketika aplikasi menerima kiriman serial data dari Arduino dan kemudian diproses untuk masing-masing aksi yang diinginkan.

PublicDelegateSubmyDelegate() PublicSub doAction() Dim tempStr AsString Dim sa() AsString tempStr = serialPortNew.ReadLine sa = Split(tempStr, ",") TxtBoxSerialMon.AppendText(tempStr) TxtBoxSerialMon.AppendText(Environment.NewLine) If sa(0) = "T"Then MainForm.SetTempValue() = sa(1)

(46)

InsertToDbHistory("2", sa(1)) EndIf If sa(0) = "Smoke"Then MainForm.SetGasValue() = sa(1) InsertToDbHistory("3", sa(1)) EndIf If sa(0) = "WarningSmoke"Then

sendMessage(GetPhoneNumber(), "Smoke / Gas Leaked was detected on sensor -Gas/smoke sensor")

EndIf

If sa(0).Contains("Object Detected In laser Tripwire") Then

sendMessage(GetPhoneNumber(), "Unknown Object was detected on sensor -Laser tripwire sensor")

' My.Forms.CamMonitoring.sendmms = "TRUE" EndIf

If sa(0).Contains("Door UnLocked") Then

My.Forms.FormMain.LabelBarStatus.Caption = "Door is UnLocked" EndIf

If sa(0).Contains("DoorLock") Then

My.Forms.FormMain.LabelBarStatus.Caption = "Locking the door ..." EndIf

If sa(0).Contains("Unlocking") Then

My.Forms.FormMain.LabelBarStatus.Caption = "Unlocking the door..." EndIf

If sa(0).Contains("Door is Locked") Then

My.Forms.FormMain.LabelBarStatus.Caption = "Door is Locked" EndIf

If sa(0) = "M"Then

My.Forms.CamMonitoring.sendmms = "TRUE"

My.Forms.FormMain.LabelBarStatus.Caption = "Motion Detected : " EndIf If sa(0) = "ALARM"Then My.Forms.MCUSetting.SetAlarmActiveProperty = 3 My.Forms.FormMain.btnAlarmOff.Enabled = True My.Forms.FormMain.WarningBarStaticItem.Caption = "WARNING..." Else My.Forms.FormMain.WarningBarStaticItem.Caption = "" EndIf EndSub

(47)

PrivateSub DataReceived(ByVal sewnder AsObject, ByVal e As

System.IO.Ports. SerialDataReceivedEventArgs) Handles serialPortNew.DataReceived Try Me.Invoke(NewmyDelegate(AddressOf doAction), NewObject() {}) Catch ex AsException MessageBox.Show(ex.ToString) EndTry EndSub

Bagan 2.50 Syntax untuk menangani penerimaan data pada serial

Hasil akhir aplikasi smart home security yang telah dijalankan di PC. Aplikasi ini terkoneksi dengan ARduino Mega 2560 via Xbee Wireless.

(48)

BAB III

PENUTUP

3.1. Kesimpulan

Dengan perkembanganteknolog iinformasisaat ini sangat memudahkan manusia dalam menjalani kehidupannya. Salah satu contoh adalah perkebangan teknologi dalam hal kemanan juga sudah mulai mengadopsi system teknologi informasi. Seperti yang penulis  buat ini adalah Smart Home Security, yaitu sebuah system yang telah di integrasikan antara software dan hardware untuk keamanan. Pada projek ini penulis membuat sebuah system yang akan memantau keadaan rumah secara realtime. Adapun yang telah penulis buat adalah:

1. Room monitoring yang mengunakan sebuah kamera yang akan memantau keadaan didalam rumah. Kamera ini akan bergerak sesuai dengan motion yang ada dalam ruangan

2. Motion Detection, adalah sebuah modul yang digunakan untuk mendeteksi gerakan object dalam ruangan dan bila sensor medapati object yang bergerak maka system akan mencapture gambar tersebut dan akan mengirimkan sebuah pesan MMS (multimedia Message Service) kepada penghuni rumah.

3. Gas deteksi, disini penulis mengunakan sebuah sensor gas untuk menghindari hal-hal yang tidak diingikan seperti kebocoran gas didalam rumah yang akan berakibat fatal, maka dengan mengukan sesor ini pendeteksian bisa dilakukan yaitu alrm akan  berbunyi dan system akan mengirimkan sms kepada penguhuni rumah.

4. Door security, pada door security penulis telahmembuat 3( tiga) model keamaan yang akan di implementasikanpada door security yaitu :

(49)

a. Face recognition, untuk menghindari maling membuat kunci duplikat maka  penulis juga membuat security untuk membuka pintu dengan cara membaca wajah  penghuni rumah yang telah terdaftar pada system.

 b. Key password, adalah salah satu cara untuk membuka pintu rumah selain mengunakan facerecornation, penulis membuat keypassword ini untuk mengatasi  jika terjadi error pada facerecornation sehingga penghuni dapat masuk kedalam rumah. Dan jika dalam keadaan darurat kita bisa meminta tolong kepada orang lain untuk masuk kedalam rumah dengan cara menyebutkan password untuk dimasukan pada keypassword.

c. Knock, juga salah satu metode yang penulis buat untuk dapat membuka pintu rumah,dengan mengunkan Knock Door penghuni dapat membuka pintu dengan cara yang sanggat mudah,bahkan jika kita mebuka pintu rumah orang lain tidak tahu kalau ketukan itu adalah password,mungkin orang lain mengira kita sedang mengetuk pintu seperti biasa.

5. Laser Trip wire, adalah salah satu security tambahan yang mengunakan sinar laser yang diletakan tersembunyi dibelakang pintu. Modul ini sangat penting untuk keamanan sebuah rumah jika pintu dibuka paksa seperti didobrak dari luar sehingga security pintu jebol , dan pada saat masuk kedalam rumah akan melewati sinar laser tersebut maka system akan mengeluarkan suara bunyi alram dan juga akan di informasikan melalui sms kepada penghuni rumah.

6. Pemantau suhu adalah sebuah modul tambahan yang dibuat oleh penulis untuk mengetahui suhu didalam rumah, sehingga kita dapat selalu mengetahui berapa suhu ruangan yang kita diamin.

(50)

Daftar Pustaka

[1].Wikipedia, the free encyclopedia. (2011, November 7). Wikipedia. Retrieved November 13, 2011, from Microcontroller:

http://en.wikipedia.org/wiki/Microcontroller#Embedded_design

[2].Atmel. (2011). ATmega2560. Retrieved 11 13, 2011, from Atmel Corporation Website: http://www.atmel.com/dyn/products/product_card.asp?part_id=3632

[3].Atmel . (2011). Atmega2560 Preliminary . USA: Atmel Corporation.

[4]. Kurniawan, D. (2009). ATMega 8 dan aplikasinya. Jakarta: Elex Media Komputindo.

[5].Arduino. (2011). Arduino - Home. Retrieved 11 14, 2011, from Arduino: http://www.arduino.cc/

[6].Atmel Corporation. (2011, November). AVR Studio 5: Release 5.0. Orchard Parkway, San Jose, United States of Amerika.

[7].Atmel Corporation. (2010, July 10). 8-Bit AVR Instruction Set. Orchard Parkway, San Jose, United States of America.

[8] Anderson, J. (2006). Climate Change and Natural Disasters: Scientific evidence of a possible relation between recent natural disasters and climate chang.  Brussels: DG INTERNAL

POLICIES OF THE UNION .

[9] Antreakis. (2008, Maret 3). Global Warming & Climate Change. Retrieved December 19, 2011, from All Free Essays: http://www.allfreeessays.com/essays/Global-Warming-Climate-Change/7333.html

[10] AVRFreaks. (2011, June 24). ADC converter in assembly . Retrieved October 11, 2011, from AVR Freaks: http://8515.avrfreaks.net

[11] BEAMENT, E. (2011, May 9). Rise in climate change disasters. Retrieved December 19, 2011, from The Independent News:

http://www.independent.co.uk/environment/climate-change/rise-in-climate-change-disasters-2281160.html

[12] Electronics, C.-m. (n.d.). LCDinc, Assembly library for interfacing with Hitachi LCDs in 4-bit mode. Retrieved 08 12, 2011, from C-MONS Electronics:

http://home.deds.nl/~cmon/lcddrive.htm

[13] Hitachi. (1998). Dot Matrix Liquid Crystal Display Controller/Driver. Japan.

[14] Luxan. (n.d.). Detect and Recognize Faces with Luxand FaceSDK . (Luxand) Retrieved 12 23, 2011, from Luxand: http://www.luxand.com/facesdk/

(51)

[16] Savanah Nongnu. (n.d.). Inline Assembler Cookbook . Retrieved January 3, 2012, from AVR-Lib user manual: http://www.nongnu.org/avr-libc/user-manual/inline_asm.html

[17] Scienceprog. (2006, June 27). How to use inline ASM using WinAVR. Retrieved January 4, 2012, from Scienceprog: http://www.scienceprog.com/how-to-use-inline-asm-using-winavr/ [18] Soebhakti, H. (2007). Basic AVR Microcontroller Tutorial.

[19] Wikibooks. (2011, November 20). Embedded Systems/Mixed C and Assembly Programming. Retrieved January 4, 2012, from Wikibooks:

(52)

APPENDICES

- Pin Mapping Arduino - User Manual

(53)

Arduino Mega 2560 Pin Mapping

Berikut adalah arduino mega 2560 pin mapping yang diperlukan untuk pembuatan software Arduino menggunakan AVR Studio 5. Pin mapping ini sangat diperlukan dalam  proses pengembangan aplikasi ini.

(54)

Gambar

Tabel 1 Peralatan yang digunakan  No
Gambar dibawah menunjukkan hubungan pin antara keypad dan Arduino, dan rincian konfigurasi  pin  dapat  dilihat  pada  Tabel
Tabel 2.4 Tabel koneksi keypad dengan Arduino
Tabel 2.5 Tabel Koneksi sensor LDR dan Arduino
+7

Referensi

Dokumen terkait

Pada bagian ini ditunjukkan tampilan program dari hasil rancangan program website yakni Login Admin, Form Admin, Form Komoditas, Data Admin, Form Registrasi

Berdasarkan analisa yang dilakukan, distribusi spasial kawasan terhadap rekonstruksi Kerajaan Mataram Islam di Pleret dapat dilihat dengan menggunakan pendekatan sistem

Oleh sebab itulah penulis tertarik untuk melakukan penelitian tentang pentingnya budaya perusahaan dalam pencapaian tujuan perusahaan PTPN IV Unit Kebun Pabatu dan menyusunnya

Kurikulum di Universitas ‘Aisyiyah disusun berdasarkan Peraturan Presiden Republik Indonesia No 8 tahun 2012 tentang KKNI, Peraturan Menteri Pendidikan dan Kebudayaan RI No

Uji ini dilakukan untuk mengetahui apakah variabel independen didalam modal secara bersama-sama berpengaruh terhadap variabel dependen yang digunakan

Hasil uji BNJ 5% menunjukkan bahwa pengamatan berat buah cabai rawit pada panen pertama hingga panen ke empat pada umur 15-18 MST pemberian pupuk kandang

Rumah sakit pada dasarnya merupakan organisasi layanan ( Service Organization ) bidang kesehatan, yang memerlukan manajemen untuk keberlangsungan rumah sakit.. Penerapan

Berdasarkan hasil data statistik, tingkat stres remaja pada responden secara keseluruhan didapatkan tingkat stres sebelum diberikan senam aerobik paling banyak pada kategori