NAMA : WIRATMOKO
NIM : 12.11.0002
KELAS : TI 11 SORE
Disusun untuk memenuhi tugas mata kuliah Praktikum Mikroprosessor dengan pengampu Bapak Arif Johar .
Daftar tugas mahasiswa lain : http://kalong11.blogspot.com/
APLIKASI MIKROKONTROLER AT89C51 UNTUK KEAMANAN
RUANGAN
PADA RUMAH CERDAS
STMIK AMIKOM PURWOKERTO
2014
I. PENDAHULUAN
1.1 Latar Belakang
Rumah
merupakan salah satu dari kebutuhan yang harus dipenuhi oleh setiap manusia.
Untuk mewujudkan sebuah rumah yang aman maka diperlukan sistem keamanan yang
mampu memberikan jaminan keamanan dan kenyamanan bagi pemiliknya baik saat
berada di rumah maupun di luar rumah. Sistem keamanan terpadu yang diterapkan
pada rumah tersebut diharapkan akan mampu mengantisipasi terjadinya hal-hal
yang tidak diinginkan oleh pemilik rumah, seperti pencurian dan sebagainya,
secara efektif dan efisien. Dalam Project ini digunakan sistem pengendali
berbasis mikrokontroler AT89C51 untuk sistem keamanan ruangan dalam rumah.
Mikrokontroler AT89C51 ini telah banyak digunakan dalam dunia pendidikan dan
industri. Selain mudah didapat dan harganya yang relative murah, kinerja
mikrokontroler AT89C51 juga dapat diandalkan seperti
mikrokontroler-mikrokontroler lainnya.
1.2 Tujuan
Tujuan yang hendak dicapai dalam Project ini adalah membuat
sebuah plant prototip rumah dengan sistem otomatisasi pada pintu dan
detektor gerakan manusia pada ruangan sebagai sistem keamanannya. Dengan
demikian diharapkan mampu memberikan kontribusi positif bagi sebuah desain
rumah yang lebih modern dan terjamin keamanan dan kenyamanannya.
1.3 Pembatasan Masalah
Batasan masalah dalam Project ini adalah:
- Alat yang dibuat merupakan simulasi sistem
keamanan rumah berupa otomatisasi pintu dengan menggunakan modul
sensor kartu, kunci elektronik dan motor penggerak, dan pendeteksi gerakan dalam
ruangan.
- Sensor pendeteksi gerakan yang digunakan adalah
sensor inframerah pasif pyroelectric dengan asumsi bahwa
temperatur ruangan relatif stabil, gerakan udara relatif tenang dan tidak ada
sumber energy atau panas dalam ruangan tersebut.
II. DASAR TEORI
2.1 Detektor Fotodioda
Sambungan pn dari beberapa jenis dioda sensitive terhadap radiasi
elektromagnetik yang mengenai sambungan. Kepekaan ini biasanya dalam bentuk karakteristik
I-V dari sambungan yang mengubah arus pembawa (current carriers). Dioda
khusus yang memungkinkan sambungan pn bereaksi saat dikenai radiasi elektromagnetik
digunakan sebagai detektor cahaya. Pada umumnya, sambungan tersebut sangat
kecil dan membutuhkan penggunaan lensa untuk memfokuskan radiasi ke sambungan
dioda. Keuntungan yang paling penting dari dioda ini adalah pada respon waktu
yang cepat. Sebagian besar fotodioda memiliki konstanta waktu mendekati 1 µs,
tapi beberapa jenis fotodioda umumnya mempunyai konstanta waktu yang kurang
dari 1 ns.
Gambar 2.1 Fotodioda.
2.2 Sensor Inframerah
Radiasi inframerah tidak dapat dilihat tetapi dapat dideteksi.
Obyek-obyek yang menghasilkan panas juga menghasilkan radiasi inframerah dan
obyek-obyek tersebut meliputi antara lain hewan dan tubuh manusia. Sensor
inframerah mendeteksi beda energi yang dipancarkan tubuh dengan lingkungan.
Keluaran sensor akan diolah oleh pengkondisi sinyal sehingga dapat diterima oleh
pengontrol setelah terlebih dahulu melalui pengubah sinyal analog ke sinyal
digital. Hasil olah data oleh pengontrol dipakai untuk mengendalikan alarm.
Pada perancangan Project ini, digunakan detektor untuk
mendeteksi gearakan tubuh manusia, yaitu sensor inframerah pasif pyroelectric.
Sensor ini memiliki beberapa kelebihan antara lain adalah tidak
mengeluarkan cahaya, sehingga dalam operasinya tidak diketahui oleh orang yang
terdeteksi, harga sensor relatif rendah, konsumsi daya rendah sehingga dapat dioperasikan
dengan catu baterai.
2.3 Solenoida
Gambar 2.2. memperlihatkan kontruksi solenoida.
Gambar 2.2 Solenoida.
Pada inti besi dari solenoida tersebut akan timbul induksi
magnetik yang menyebabkan adanya gaya yang menggerakkan inti besi tersebut.
2.4 Motor DC
Prinsip dasar dari motor arus searah adalah kalau sebuah kawat
berarus diletakkan antara kutub magnet (U-S), maka pada kawat itu akan bekerja
suatu gaya yang menggerakkannya.
Gambar 2.3 menunjukkan sketsa sederhana dari motor dc.
Gambar 2.3 (a) Belitan berarus terletak dalam medan magnet, (b) Arah putaran pada kumparan berarus dalam medan magnet.
2.5 Sistem Kontrol ON-OFF
Pada sistem kontrol ON-OFF, elemen pembangkit hanya memiliki dua
posisi tertentu yaitu ON dan OFF. Kontrol ON-OFF memiliki karakteristik sinyal
keluaran dari kontroler u(t) tetap pada salah satu nilai maksimum atau minimum
tergatung apakan sinyal pembangkit kesalahan positif atau negatif. Diagram blok
kontroler ON-OFF yang memiliki masukan e(t) dan keluaran u(t), ditunjukkan pada
Gambar 2.4.
Gambar 2.4 Diagram blok kontroler ON-OFF.
Aksi kontrol ON-OFF ditunjukkan pada persamaan
Persamaan (2.1) memiliki nilai U1 dan U2 yang konstan. Nilai minimum U2 dapat sebasar nol atau - U1. Pada sistem kontrol ikal tertutup (close loop), sinyal
e(t) merupakan sinyal kesalahan aktuasi (error) sebesar selisih antara
sinyal input dengan sinyal umpan balik.
2.6 Mikrokontroler AT89C51
Mikrokontroler AT89C51 adalah sebuah sistem mikrokontroler 8 bit
dan memiliki 4 Kbyte flash Programmable and Erasable Read Only Memory (PEROM).
Instruksi–instruksi maupun pin-nya kompatibel dengan standar MCS51. Dengan jenis
memori flash memudahkan memori program untuk diprogram ulang sistem. AT89C51
memiliki beberapa kelebihan antara lain: 4 Kbyte flash memory, RAM 256 byte, 32
jalur inputoutput, dua timer 16 bit, lima vector interupsi 2 level, port serial
dua arah, rangkaian detak (clock), dan osilator internal.
2.6.1 Organisasi Memori
Semua mikrokontroler Atmel memiliki ruang alamat (addres space)
memori program dan memori data yang terpisah, seperti pada Gambar 2.5.
Gambar 2.5 Struktur memori mikrokontroler AT89C51.
Gambar 2.6 Memori program.
Pada Gambar 2.6 ditunjukkan alokasi bagian paling bawah memori
program. Lokasi-lokasi interupsi yang disediakan menepati ruang dengan interval
8 byte, interupsi eksternal 0 adalah 0003H, timer 0 pada 000BH, interupsi internal
1 pada 0013H, timer 1 pada 001BH dan seterusnya. Apabila sebuah interupsi cukup
banyak, maka rutin bisa diletakkan dalam interval 8 byte. Untuk rutin yang
panjang dapat menggunakan instruksi JUMP untuk melompat ke lokasi-lokasi
interupsi.
Gambar 2.7 menunjukan ruang memori data internal. Ruang memori
dibagi menjadi tiga bagian, yaitu 128 byte bawah (lower 128 byte), 128
byte atas (upper 128 byte), dan ruang memori SFR (Special Function
Register).
Gambar 2.7 Peta memori data internal.
2.6.2 Fungsi Pin Mikrokontroler AT89C51
Port 0, merupakan Port open drain
input/output 8 bit 2 arah, bila difungsikan sebagai output, dapat dibebani ke 8
input TLL.
Port 1, merupakan port
input/output 8 bit dengan pullup internal. Bufer output Port 1 dapat diberi
beban 4 input TLL
Port 2, merupakan port
input/output 8 bit dengan pullup internal. Bufer output Port 2 dapat
dibebankan 4 input TTL.
Port 3, merupakan port
input/output 8 bit dengan pullup internal. Bufer output Port 3 dapat
dibebankan 4 input TLL. Port 3 juga menyediakan bermacam fungsi khusus AT89C51
seperti diperlihatkan pada Table 2.1.
Tabel 2.1 Fungsi Alternatif Port 3
Tabel 2.1 Fungsi Alternatif Port 3
ALE/PROG, pulsa output Address
Latch Enable (ALE) untuk memberikan jalan byte rendah dari suatu alamat
dalam mengakses memori ekternal. Pin ini juga sebagai input pulsa program
selama pemrograman flash.
PSEN (Program Store Enable),
strobe untuk membaca memori program ekstrnal. Bila AT89C51 mengeksekusi
kode dari memori program ekternal, PSEN diaktifkan setiap 2 kali siklus mesin.
EA/VPP (External Access Enable),
EA harus dihubungkan ke GND agar piranti bisa mengambil kode dari memori
program eksternal dengan lokasi awal 0000H sampai FFFFH. EA harus dihubungkan
ke VCC untuk eksekusi program internal. Pin ini juga menerima tegangan 12 volt
selama pemrograman flash
2.7 Bahasa Rakitan (Assembly)
Bahasa rakitan (assembly) memiliki hubungan yang dekat
dengan bahasa tingkat rendah, yaitu bahasa mesin. Bahasa ini berisi instruksi
dengan kode-kode mnemonic seperti MOV, JMP, ADD dan sebagainya, yang
dirakit menjadi seperangkat instruksi. Kelebihan dari bahasa ini adalah
kemampuan akses ke perangkat keras yang relative cepat daripada bahasa tingkat
tinggi. Kelemahannya adalah terlalu rumit untuk menghitung dengan variabel yang
sangat kompleks bila dibandingkan dengan bahasa tingkat tinggi.
Bahasa rakitan yang digunakan adalah bahasa assembler ALDS
Versi 3.21. Perangkat instruksi ini mengacu pada perangkat instruksi
mikrokontroler keluarga MCS-51, yang dibagi dalam 5 kelompok, yaitu: instruksi transfer
data, instruksi aritmetika, instruksi logika dan manipulasi bit, instruksi
percabangan dan instruksi stack, I/O dan kontrol.
III. PERANCANGAN PERANGKAT KERAS DAN PERANGKAT LUNAK
3.1 Perancangan Perangkat Keras (Hardware)
Blok diagram sistem secara keseluruhan pada perancangan alat ini
dapat dilihat pada Gambar 3.1.
Gambar 3.1 Blok diagram sistem secara keseluruhan.
3.1.1 Perancangan Pintu Otomatis
Perancangan pintu otomatis diperlihatkan pada Gambar 3.2.
Gambar 3.2 Perancangan pintu otomatis dilihat dari dalam rumah.
Solenoida seperti terlihat pada gambar digunkan sebagai kunci
elektronik. Pintu otomatis ini digerakkan oleh motor dc yang berputar dalam dua
arah, yaitu arah putar ke kiri untuk membuka pintu, sedangkan arah putar ke
kanan untuk menutupnya. Limit switch digunakan untuk menghentikan
gerakan motor sesuai dengan pergeseran pintu.
3.1.2 Modul Sensor Kartu
Desain dan rangkaian modul sensor kartu diperlihatkan pada Gambar
3.3 dan 3.4
Gambar 3.3 Desain modul sensor kartu.
Modul sensor kartu terdiri dari 8 sensor fotodioda yang
digabungkan menjadi satu sebagai pembaca kode kartu dan satu sensor fotodioda
yang digunakan sebagai saklar otomatis untuk menyalakan LED pada rangkaian
pembaca kode kartu saat ada kartu yang masuk. Modul ini memiliki 8 buah
keluaran sehingga memiliki 28 – 1 konfigurasi yang dapat digunakan sebagai kode.
Gambar 3.4 Rangkaian modul sensor kartu.
3.1.3 Keypad
Keypad yang digunakan adalah tipe
matrik 3x4 yang dihubungkan ke Port 1 (Gambar 3.5). Cara kerja di dalam pemrograman
yaitu salah satu jalur dipakai sebagai input dan lainnya sebagai output atau
sebaliknya. Di sini penulis memakai kolom sebagai input dan baris sebagai output.
Pada keypad jenis ini, metode yang digunakan adalah metode scanning.
Gambar 3.5 Konstruksi keypad 4x3.
3.1.4 Liquid Crystal Display (LCD)
LCD yang digunakan dalam perancangan Project ini adalah LCD
matrix 2x20 seperti diperlihatkan pada Gambar 3.6.
Gambar 3.6 Antarmuka LCD matrix 2x20.
Antarmuka ini menggunakan mode antarmuka 4 bit. Mode ini selain
lebih menghemat I/O juga mempermudah proses pembuatan PCB yang lebih ringkas.
3.1.5 Solenoida Sebagai Aktuator Kunci Elektronik
Solenoida pada perancangan ini digunakan sebagai aktuator pada
kunci elektronik. Konstruksi solenoida yang digunakan sebagai aktuator kunci
elektronik ini diperrlihatkan pada Gambar 3.7.
Gambar 3.7 Konstruksi solenoida sebagai aktuator kunci elektronik
3.1.6 Sensor Inframerah Pyroelectric
Pada perancangan Project ini, digunakan sensor untuk
mendeteksi gerakan tubuh. Sensor ultrasonic dan inframerah biasa tidak
bisa membedakan antara manusia atau makhluk hidup dengan benda mati yang lewat didepannya.
Sensor ini akan aktif bila ada sembarang benda yang menghalanginya. Pada sensor
inframerah biasa daerah jangkauannya juga tidak luas karena arahnya lurus, dan pemakaiannya
tidak fleksibel karena diperlukan pemancar dan penerima. Penggunaan sensor
inframerah pyroelectric menghilangkan kelemahan-kelemahan tersebut,
tetapi memerlukan ruangan yang relatif stabil temperaturnya, gerakan udara
relatif tenang dan tidak ada sumber energy atau panas dalam ruangan tersebut.
Hal ini diatasi dengan pengaturan suhu ruangan, mempersedikit jendela, dan
tidak ada pemanas dalam ruangan. Apabila suhu ruangan relative stabil, maka
tidak diperlukan pengaturan suhu.
Sensor inframerah pyroelectric dibuat dari Kristal yang
membangkitkan permukaan muatan listrik saat dihasilkan panas dalam bentuk
radiasi inframerah. Saat sejumlah radiasi masuk ke kristal, kristal mengalami perubahan,
jumlah muatan juga berubah, dan kemudian akan dapat mengaktifkan FET yang
berada dalam sensor.
Gambar 3.8 Sensor inframerah pyroelectric
3.1.7 Sistem Minimum Mikrokontroler AT89C51
Disini mikrokontroler AT89C51 dirancang sebagai single chip (Gambar
3.9), sehingga dalam perancangannya cukup dibutuhkan rangkaian
pembangkit clock (crystal dan kapasitor), rangkaian reset, rangkaian power
supply, dan juga dilengkapi kapasitor bypass dan resistor pull-up
sebagai penaik tegangan dari input maupun ke output. Pada pin EA /Vpp diberikan tegangan Vcc.
Hal ini dimaksudkan agar program yang dijalankan berasal dari memori program
internal. Sedangkan Port 0, Port 1, Port 2 dan Port 3 cukup dibuat jumper yang
akan dihubungkan ke rangkaian lainnya sperti terlihat pada Tabel 3.2.
Gambar 3.9 Sistem minimum mikrokontroler AT89C51.
Fungsi dari masing-masing pin pada AT89C51 dapat dilihat pada
Tabel 3.1.
Tabel 3.1 Penggunaan port-port AT89C51
3.1.8 Driver
3.1.8.1 Rangkaian Driver Solenoida
Rangkaian driver untuk solenoida diperlihatkan pada Gambar
3.10.
Gambar 3.10 Rangkaian driver solenoida.
Pengontrolan rangkaian driver solenoida dilakukan oleh Port
3 pin P3.5 µC AT89C51.
3.1.8.2 Rangkaian Driver Motor DC
Rangkaian driver untuk menggerakkan motor diperlihatkan
pada Gambar 3.11.
Gambar 3.11 Rangkaian driver motor DC.
Pengontrolan rangkaian driver motor dilakukan oleh Port 3 pin P3.6 dan P3.7 µC
AT89C51.
3.1.8.3 Rangkaian Driver Alarm
Rangkaian driver untuk solenoida diperlihatkan pada Gambar
3.12.
Gambar 3.12 Rangkaian driver alarm.
Pengontrolan rangkaian driver solenoida dilakukan oleh Port
3 pin P3.4 µC AT89C51.
3.2 Perancangan Perangkat Lunak (Software)
3.2.1 Program Utama
Dalam Gambar 3.13 diperlihatkan diagram alir program utama dalam
perancangan project ini.
Gambar 3.13 Diagram alir program utama.
Kerja dari perangkat lunak ini secara garis besar adalah setelah
eksekusi program maka mikrokontroler akan menginisialisasi terlebih dahulu
sistem. Inisialisasi digunakan untuk mengaktifkan atau menentukan konfigurasi
port, register maupun komponen pendukung yang digunakan dalam perancangan
perangkat lunak pada project ini. Setalah selesai melakukan inisialisasi sistem,
mikrokontroler akan melaksanakan secara berurutan instruksi-instruksi yang
diberikan, seperti menampilkakan tampilan pada LCD, memeriksa sensor pyroelectric,
memeriksa push button dan keypad dan memeriksa kartu dan password.
3.2.2 Pemrograman Sensor Gerakan PIR
Diagram alir untuk pemrograman sensor gerakan diperlihatkan pada
Gambar 3.14.
Gambar 3.14 Diagram alir pemrograman sensor gerakan dan alarm.
3.2.3 Pemrograman Cek Tombol
Diagram alir untuk pemrograman cek tombol tombol yang digunakan
sebagai input diperlihatkan pada Gambar 3.15, 3.16, 3.17 dan 3.18.
Gambar 3.18 Diagram alir pemrograman cek keypad setelah
pintu terbuka.
3.2.4 Pemrograman Cek Kartu dan Password
Diagram alir pemrograman untuk memeriksa kartu melalui modul
sensor kartu yang menjadi masukan Port 2 diperlihatkan pada Gambar 3.19.
Sedangkan Gambar 3.20 memperlihatkan diagram alir algoritma untuk pemrograman password
melalui keypad pada Port 1.
Gambar 3.19 Diagram alir pemrograman cek kartu.
3.2.5 Pemrograman Interupsi Komunikasi Serial dengan Komputer
Jika ada interupsi serial dari komputer, program akan terhenti
sesaat, melayani interupsi tersebut dengan menjalankan program yang berada pada
alamat yang ditunjukkan oleh vektor dari interupsi yang terjadi, yaitu alamat
23H, hingga selesai dan kembali meneruskan program yang terhenti oleh interupsi
tadi. Diagram alir pemrograman interupsi komunikasi serial dengan computer diperlihatkan
pada Gambar 3.21.
Gambar 3.21 Diagram alir pemrograman interupsi komunikasi serial.
Untuk komunikasi serial dengan komputer ini, mikrokontroler akan
mengirimkan data jika diminta oleh komputer. Data yang dikirimkan dan
ditampilkan pada layar monitor komputer adalah data status alarm (on/off),
data status sensor gerakan PIR (enable/disable) dan kode kartu yang
terdeteksi oleh sensor modul kartu.
IV. PENGUJIAN DAN ANALISA
4.1 Pengujian Modul Sensor Kartu
Pengukuran tegangan keluran dari modul sensor kartu dilakukan saat
cahaya LED pada transmiter menyala dangan ada dan tidaknya penghalang
antara LED pada transmiter dan fotodioda pada receiver. Rangkaian
pengujian modul sensor kartu ini diperlihatkan pada Gambar 4.1, sedangkan hasil
pengujiannya diperlihatkan pada Tabel 4.1.
Gambar 4.1 Rangkaian uji modul sensor kartu.
Keluaran modul sensor kartu yang merupakan input bagi Port 2
mikrokontroler AT89C51 adalah berlogika low jika antara LED pada transmiter
dan fotodioda pada receiver tidak terhalang, dan berlogika high jika
terhalang. Dengan demikian, kode pada kartu berupa lubang menghasilkan logika
1, sedangkan kode tidak berlubang menghasilkan logika 0, sehingga variasi
konfigurasi lubang 8 dan kode hitam pada kartu akan membentuk suatu deretan kode biner
yang akan dibaca mikrokontroler melalui Port 2.
Tabel 4.1 Hasil pengujian modul sensor kartu.
4.2 Pengujian Modul Sensor Inframerah Pyroelectric
Pengujian modul sensor inframerah pyroelectric dilakukan
dengan cara mengukur tegangan keluaran modul didalam ruangan. Dalam hal ini,
sensor dirangsang dengan gerakan tubuh manusia. Hasil pengujian pada Tabel 4.2.
Tabel 4.2 Hasil pengujian modul sensor inframerah pyroelectric.
Dari hasil pengujian, sensor akan mendeteksi adanya rangsangan
berupa gerakan obyek (tubuh). Keluaran modul sensor pyroelectric ini
adalah berupa logika high atau low berdasarkan ada atau tidak
adanya gerakan obyek dalam ruangan, yang merupakan masukan bagi mikrokontroler AT89C51
Port 0 pin P0.2. Dari Tabel 4.2 diketahui bahwa gerakan tubuh akan terdeteksi
apabila terjadi pada arah antara 0o sampai sekitar 60o dari arah muka sensor (0o = arah tegak lurus bidang muka sensor).
Dari hasil pengujian dapat dibuktikan bahwa sensor pyroelectric
mendeteksi perubahan energi yang disebabkan oleh obyek (manusia) yang
bergerak.
4.3 Pengujian Sistem
Pada pengujian ini sistem secara keseluruhan diterapkan sesuai
dengan aplikasi, yaitu sistem keamanan ruangan.
Uji coba 1: Dalam keadaan tanpa
ada kartu yang benar (yang dikenali program) yang dimasukkan ke dalam modul
sensor kartu, pada ruangan plant dicoba dirangsang dengan gerakan tangan
melintas.
Saat ada gerakan obyek terdeteksi oleh sensor inframerah pasif pyroelectric,
maka keluaran modul sensor pyroelectric akan high yang
merupakan masukan bagi pin P0.2 Mikrokontroler AT89C51. Selanjutnya
mikrokontroler akan mengeluarkan logika high pada pin P3.4 yang akan mengaktifkan
driver alarm sehingga alarm berbunyi. Mikrokontroler akan melakukan looping
(alarm terus berbunyi) selama P3.2 berlogika high. Pin P3.4 akan
kembali low (alarm mati) dan tampilan LCD kembali ke tampilan
awal setelah pin P3.2 mendapat masukkan low melalui penekanan push
button ALARM RESET.
Uji coba 2: Pada modul sensor
kartu dicoba dimasukkan kartu dengan kode-kode yang tidak dikenali oleh program
dalam mikrokontroler.
Saat ada kartu berkode dimasukkan kedalam modul sensor kartu, bit bAdaKartu
(3H) akan set kemudian mikrokontroler akan membaca
kode-kode pada kartu tersebut dan membandingakannya dengan nilai-nilai konstanta:
00010100B (14H), 10101010B (AAH) dan 01101101B (6DH). Jika tidak sesuai, maka
mikrokontroler akan menolaknya dengan mengeluarkan tampilan pada LCD yang
menunjukkkan bahwa kartu yang dimasukkan tidak dikenali dan meminta untuk
dikeluarkan kembali. Mikrokontroler akan tetap menampilkan tampilan tersebut selama
bit bAdaKartu (3H) set yang berarti
bahwa modul sensor kartu masih mendeteksi ada kartu dengan kode yang tidak
dikenali oleh program mikrokontroler.
Uji coba 3: Pada modul sensor
kartu dicoba dimasukkan kartu dengan kode-kode yang dikenali oleh program dalam
mikrokontroler.
Dalam uji coba 3 ini, karena kode kartu yang terbaca oleh
mikrokontroler sesuai dengan nilai-nilai kode yang benar, yaitu: 00010100B
(14H), 10101010B (AAH) dan 01101101B (6DH), maka mikrokontroler akan menunggu (looping)
dimasukkan password selama bit bAdaKartu (2H) masih set (kartu masih dalam modul sensor kartu). Jika
kartu diambil, maka bit bAdaKartu (2H)
akan clear dan tampilan LCD akan kembali ke tamplan awal. Jika tidak
diambil dan password dimasukkan melalui keypad, maka
mikrokontroler akan memeriksa password tersebut.
Setiap kali dilakukan penekanan satu tombol pada keypad, alamat
KEYDATA (26H) diisi dengan nilai
sesuai dengan angka yang tertera pada tombol yang ditekan. Empat kali penekanan
tombol keypad berarti empat kali pengisian KEYDATA
secara bergantian. Setiap isi KEYDATA ini merupakan data masukan password yang berturut-turut dikirim
ke alamat PASSWORD1 (2CH), PASSWORD2
(2DH), PASSWORD3 (2EH)
dan PASSWORD4 (2FH), kemudian masing-masing
dibandingkan atau dicocokkan dengan isi alamat D1_PASS (28H), D2_PASS (29H),
D3_PASS (2AH) dan D4_PASS
(2BH). Alamat-alamat ini sebelumnya diisi dengan
konstanta-konstanta yang merupakan nilai-nilai password sesuai dengan
kode kartu yang terbaca oleh mikrokontroler. Jika hasil pembandingan ini
ternyata tidak cocok, maka password yang
dimasukkan adalah salah sehingga mikrokontroler akan menolak langkah
selanjutnya dan menampilkan tampilan pada LCD yang mengisaratkan bahwa password
yang dimasukkan adalah salah.
Selanjutnya, mikrokontroler akan menunggu pengulangan masukan password
selama bit bAdaKartu (2H) masih set.
Setiap kali masukan password diulang maka 9 isi alamat counter
(25H), yang telah diisi dengan konstanta 3, berkurang satu,
sehingga jika pengulangan masukan password tetap salah sampai tiga kali,
maka isi alamat counter (25H)
adalah nol. Jika isi alamat counter (25H) adalah nol, maka mikrokontroler akan mengeluarkan logika high
pada pin P3.4 yang menyebabkan alarm berbunyi dan menampilkan tampilan pada
LCD untuk mengindikasikan bahwa alarm sedang berbunyi. Alarm akan mati (pin
P3.4 low) dan LCD akan kembali kepada tampilan awal jika pin P3.2
mendapat masukkan low melalui penekanan tombol push button ALARM
RESET.
Uji coba 4: Hampir sama dengan
uji coba 3 tetapi password yang dimasukkan melalui keypad adalah password
yang benar. Karena password yang dimasukkan adalah cocok, maka
mikrokontroler meng-clear-kan pin P3.4 yang
menyebabkan driver alarm tidak aktif dan mengeluarkan tampilan
pada LCD yang mengisaratkan bahwa password yang dimasukkan adalah benar
dan alarm dalam keadaan mati, kemudian tampilan yang meminta kartu dikeluarkan dari
modul sensor kartu. Mikrokontroler melakukan looping sampai kartu
dikeluarkan dari modul sensor kartu. Setelah kartu dikeluarkan dari modul, bit bAdaKartu
(2H) menjadi clear, kemudian mikrokontroler akan memeriksa
bit bPintuTerbuka (4H), jika clear (pintu
tertutup), maka mikrokontroler men-set bit bAdaOrang
(2H) yang menandai modul sensor PIR tidak aktif (disable),
kemudian mengeluarkan tampilan LCD yang mengisaratkan bahwa sensor gerakkan PIR
telah dinonaktifkan (disable). Selanjutnya mikrokontroler mengeluarkan
logika high pada pin P3.5 yang menyebabkan driver solenida aktif
sehingga kunci pintu terbuka, kemudian mikrokontroler mengeluarkan logika low
pada pin P3.6 yang mengaktifkan driver motor untuk membuka pintu.
Putaran motor berhenti setelah pin P0.3 mendapat masukan low yang
disebabkan oleh tertekannya limit switch oleh pergeseran pintu yang meng-ground-kan
pin P0.3 tersebut. Pada kondisi ini bit bPintuTerbuka (4H) menjadi set.
Karena modul sensor PIR tidak aktif (disable), rangsangan
gerakan tangan melintas pada ruangan tempat sensor PIR dipasang tidak
berpengaruh apa-apa terhadap sensor, atau tidak menyebabkan alarm berbunyi.
Saat push button OPEN/CLOSE (INDOOR) ditekan pin P3.3
mendapat masukan low. Hal ini menyebabkan mikrokontroler memeriksa
kembali bit bPintuTerbuka (4H).
Karena dalam kondisi ini bit bPintuTerbuka (4H) dalam keadaan set, maka mikrokontroler mengeluarkan
logika low pada pin P3.7 yang mengakibatkan driver motor kembali
aktif sehingga motor berputar tetapi dengan arah putaran yang berlawanan dengan
arah putaran sebelumnya. Dengan demikian pintu kembali bergeser untuk menutup.
Putaran motor berhenti setelah mengenai limit switch (P0.3 = low),
sama halnya seperti saat pintu bergeser untuk membuka, dilanjutkan dengan meng-clear-kan
pin P3.5 yang meng-off-kan driver solenoida untuk mengunci
kembali pintu. Setelah pintu tertutup dan terkunci bit bPintuTerbuka
(4H) clear, bit bAdaOrang (2H) set, sedangkan bit bAktivasiPIR clear.
Uji Coba 5: Dari kondisi akhir uj
coba 4 tombol OPEN/CLOSE (INDOOR) ditekan lagi, untuk mensimulasikan orang yang
ada di dalam rumah membuka pintu untuk keluar. Selanjutnya, tombol '#' pada keypad
ditekan untuk menutup kembali pintu yang terbuka tanpa mengaktifkan (enable)
sensor gerakan PIR (dengan asumsi, misalnya, didalam rumah masih ada penghuni
atau pemegang kartu yang lainnya).
Saat pin P3.3 low (tombol OPEN/CLOSE (INDOOR) ditekan)
mikrokontroler akan memeriksa kembali bit bPintuTerbuka (4H) apakah set atau clear. Karena dalam kondisi
saat ini bit bPintuTerbuka (4H) adalah
clear (pintu tertutup), maka selanjutnya mikrokontroler akan men-set bit
bAdaOrang (2H),
kemudian langkah selanjutnya sama seperti saat membuka pintu pada
uji coba 4.
Dalam keadaan pintu terbuka (bit bPintuTerbuka (4H) high) mikrokontroler akan melakukan scanning pada
tombol-tombol keypad. Setiap penekanan tombol pada keypad mikrokontroler
akan membandingkan isi alamat KEYDATA (26H) dengan isi nilai konstanta 23H (kode ASCII untuk karakter
'#'). Jika tombol '#' ditekan, maka isi alamat KEYDATA (26H) adalah 23H sehingga hasil perbandingan adalah cocok.
Selanjutnya adalah langkah-langkah menutup pintu yang sama dengan langkah-langkah
menutup pintu pada uji coba 4. Dengan demikian modul sensor PIR tetap dalam
keadaan tidak aktif (disable), sehingga rangsangan gerakan tangan pada ruangan
yang dilakukan pada uji coba ini tidak dideteksi oleh sensor PIR.
Uji coba 6: Setelah pintu terbuka
pada Uji coba 5, selanjutnya kartu dengan kode yang dikenali oleh program dimasukkan
ke dalam modul sensor kartu kemudian dimasukkan password yang benar
dimasukkan melalui keypad, untuk mensimulasikan penghuni rumah atau pemegang
kartu keluar rumah sambil mengaktifkan (enable) kembali sensor PIR
(dengan asumsi didalam rumah tidak ada lagi pemegang kartu lainnya).
Setelah kartu dengan kode dan password yang benar
dikeluarkan dari modul sensor kartu, mikrokontroler akan memeriksa bit bPintuTerbuka
(4H). Karena dalam uji coba 6 ini pintu dalam keadaan terbuka,
maka bit bPintuTerbuka (4H) dalam kondisi set,
sehingga mikrokontroler akan men-set bit bAktivasiPIR
(5H) dan mengeluarkan logika low pada pin P3.7 yang
menyebabkan driver motor aktif untuk menutup pintu. Putaran motor berhenti
setelah mengenai limit switch (P0.3 = low), sama halnya seperti
saat pintu bergeser untuk membuka, dilanjutkan dengan meng-clear-kan pin
P3.5 yang meng-offkan driver solenoida untuk mengunci kembali
pintu. Selanjutnya mikrokontroler memeriksa kembali bit bAktivasiPIR
(5H). Karena bit bAktivasiPIR (5H) telah di-set sebelumnya, maka mikrokontroler akan mengclear
bit bAdaOrang (2H) dan bit bAktivasiPIR
(5H). Dengan demikian modul sensor PIR akan aktif kembali (enable),
sehingga mikrokontroler akan mendeteksi jika ada gerakan obyek (tubuh) dalam
ruangan dengan mengaktifkan alarm dan menampilkan indikasi pada LCD.
Uji coba 7: Merupakan pengujian
interupsi serial pada mikrokontroler oleh komputer dan pengiriman data serial
dari mikrokontroler ke komputer. Uji coba ini menggunakan program pengujian
yang telah dibuat dengan pemrograman delphi, seperti terlihat pada Gambar 4.2.
Mikrokontroler akan mengirimkan data serial melalui pin P3.1/TXD
jika terjadi interupsi dengan adanya masukan data serial yang terkirim dari
komputer melalui pin P3.0/RXD. Mode operasi port serial yang digunakan adalah Mode
UART (Universal Asyncrchronous Receiver/Transmitter) 8 bit dengan baud
rate 9600 bps.
Gambar 4.2 Tampilan program pengujian komunikasi serial antara mikrokontroler
dengan komputer.
Komputer melakukan interupsi serial pada mikrokontroler dengan
mengirimkan data 00H. Penerimaan data ini dilakukan oleh mikrokontroler dengan
mendeteksi adanya perubahan kondisi dari logika high ke logika low pada
kaki RXD. Perubahan kondisi tersebut merupakan bit start. Selanjutnya,
data serial akan digeser masuk ke dalam SBUF dan bit stop ke dalam RB8.
Bit RI akan set setelah 1 byte data diterima ke dalam SBUF. Bit RB8 dan
RI ini keduanya terletak pada register SCON.
Setelah bit RI set, pengiriman data oleh mikrokontroler
mulai dilakukan. Pengiriman data dilakukan dengan menuliskan data yang akan
dikirim ke Register SBUF. Data serial akan digeser keluar dawali dengan dengan
bit start dan diakhiri dengan bit stop, dimulai dari bit yang
berbobot terendah (LSB) hingga bit berbobot tertinggi (MSB). Bit TI (pada
Register SCON) akan set setelah bit stop keluar melalui kaki TXD
yang menandakan bahwa proses pengiriman data telah selesai. Bit ini harus diclear
oleh perangkat lunak setelah pengiriman data selesai. Pengiriman data oleh
mikrokontroler dilakukan sebanyak empat kali setiap ada interupsi serial. Data
yang dikirim berturut-turut adalah: data status alarm, data ststus sensor PIR,
data high nibble kode kartu, kemudian data low nibble kode kartu.
V. KESIMPULAN
Setelah dilakukan perancangan, pembuatan, serta pengujian dan
analisa pada Project ini, dapat diambil kesimpulan sebagai berikut :
1. Sensor inframerah pyroelectric
hanya mendeteksi adanya gerakan obyek yang mengeluarkan panas yang berada
pada posisi dengan sudut sekitar kurang dari 60o dari arah tegak lurus muka sensor. Mikrokontroler akan mengaktifkan
alarm jika sensor mendeteksi adanya gerakan obyek tersebut.
. 2.
Hanya kartu dengan kode dan password
yang dikenali program yang bisa digunakan untuk mengakses sistem keamanan
sehingga mikrokontroler dapat menjadikan enable/disable sensor
inframerah pyroelectric, menampilkan indikator pada LCD, mengaktifkan/menonaktifkan
driver solenoida untuk membuka/menutup kunci, serta mengaktifkan driver
motor dc untuk membuka/menutup pintu.
3. Mikrokontroler mengirimkan
data secara serial ke komputer yang berisi informasi status alarm, status sensor
inframerah pyroelectric dan kode kartu yang terbaca pada modul sensor
kartu setiap kali menerima interupsi serial dari komputer.
4. Secara keseluruhan sistem
keamanan yang telah diimplementasikan dapat berjalan dengan cukup baik sesuai
dengan yang diharapkan pada Project ini.
DAFTAR PUSTAKA
[1] Adi Susanto, Data Akuisisi Untuk Proses Perpindahan Panas,
Pusat Antar Universitas – Ilmu Teknik UGM, 1988/1989.
[2] Malvino, Albert Paul, Prinsip-prinsip Elektronika,
Edisi Kedua, Erlangga Jakarta,1994.
[3] Moh. Ibnu Malik, Anistardi, Bereksperimen dengan Mikrokontroler
8031, Elek Media Komputindo, Jakarta, 1997.
[4] Ogata, Katsuhiko, Teknik Kontrol Automatik, alih bahasa
Edi Laksono, Erlangga, Jakarta, 1997.
[5] Paulus Andi Nalwan, Panduan Praktis Teknik Antarmuka dan
Pemrograman Mikrokontroler AT89C51, PT Elex Media Komputindo, Jakarta,
2003.
[6] Putra, Agfianto Eko, Belajar Mikrokontroler AT89C51/52/55
(Teori dan Aplikasi), Penerbit Gava Media, Yogyakarta, 2002.
[7] Rio S.R., Iida M., Fisika dan Teknologi Semikonduktor, P.T.
Pradnya Paramita, Jakarta, 1982. Rio S.R., Iida M., Fisika dan Teknologi
Semikonduktor, P.T. Pradnya Paramita, Jakarta, 1982.[8] Sumanto, Mesin
Arus Searah, Penerbit Andi Offset, Yogyakarta, 1991.
[9] Sutrisno, Elektronika: Teori Dasar dan Penerapannya, Penerbit
ITB, Bandung, 1986.
[10] Hayt, William H., Jr., Elektromagnetika Teknologi,
Edisi Kelima, Penerbit Erlangga, Jakarta, 1991.
[11] www.atmel.com/8051/at89c51
[12] www.caltron.co.id
[13]
_________, Infrared Parts Manual, URL: http://www.glolab.com,
Glolab Corporation, 2002.SUMBER : TUGAS AKHIR - UTIS SUTISNA ( MAHASISWA S-1 ) ANGKATAN 1999 JURUSAN TEKNIK ELEKTRO - FAKULTAS TEKNIK - UNIVERSITAS DIPONEGORO