PIN-Based Security Automation System With AT89C51 and Keypad 3x4
PIN-Based Security
Automation System With AT89C51 and Keypad 3x4
Kelompok 1 – RE 2D
Disusun Oleh:
Filqi Ulwa (4.34.24.3.11) (filqi.43424311@mhs.polines.ac.id)
Muhammad
Abdussalamilatif (4.34.24.3.13) (abdus.43424313@mhs.polines.ac.id)
Muhammad Raka
Harvestya Kautsar (4.34.24.3.18) (raka.43424318@mhs.polines.ac.id)
Ramadhan
Ardiansyah (4.34.24.3.21) (ardan.43424321@mhs.polines.ac.id)
Program
Studi Teknologi Rekayasa Elektronika Politeknik Negeri Semarang
Jl.
Prof.Sudarto,Tembalang, Kec. Tembalang, Kota Semarang, Jawa Tengah 50275
Telp. (024)
7472396 , Situs web: www.polines.ac.id ,
Email: sekretariat@polines.ac.id
Abstrak
Keamanan brankas merupakan aspek
penting dalam melindungi barang berharga dari akses yang tidak sah. Penelitian
ini membahas perancangan dan implementasi sistem keamanan brankas berbasis
password dengan menggunakan keypad sebagai media input dan mikrokontroler
ATmega 8051 sebagai pusat pengendali sistem. Password yang dimasukkan melalui
keypad akan diproses oleh mikrokontroler untuk menentukan hak akses pengguna,
di mana sistem hanya akan membuka brankas apabila password yang dimasukkan
sesuai dengan data yang telah disimpan. Jika password tidak sesuai, maka akses
akan ditolak dan brankas tetap dalam kondisi terkunci. Hasil pengujian
menunjukkan bahwa sistem mampu bekerja dengan baik dan memberikan tingkat
keamanan yang lebih efektif dibandingkan dengan sistem kunci mekanis
konvensional. Dengan demikian, sistem keamanan brankas berbasis mikrokontroler
ini diharapkan dapat menjadi solusi yang praktis, aman, dan mudah digunakan
dalam meningkatkan keamanan brankas.
Abstract
Safe security is an important aspect
of protecting valuable items from unauthorized access. This study discusses the
design and implementation of a password-based safe security system using a
keypad as the input medium and the ATmega 8051 microcontroller as the main
control unit. The password entered via the keypad is processed by the
microcontroller to determine user access rights, where the system will only
unlock the safe if the entered password matches the stored data. If the
password is incorrect, access is denied and the safe remains locked. The test
results show that the system operates properly and provides a higher level of
security compared to conventional mechanical lock systems. Therefore, this
microcontroller-based safe security system is expected to be a practical,
secure, and easy-to-use solution for improving safe security.
Kata
Kunci : Sistem
keamanan brankas, Password, Keypad, Mikrokontroler ATmega 8051, Sistem Tertanam.
BAB I
PENDAHULUAN
1.1 Latar Belakang
Keamanan merupakan kebutuhan penting
dalam kehidupan sehari-hari, terutama dalam melindungi barang-barang berharga
seperti uang, dokumen penting, dan aset lainnya. Brankas sering digunakan
sebagai media penyimpanan yang dianggap aman, namun pada umumnya masih banyak
brankas yang menggunakan sistem penguncian mekanis konvensional. Sistem kunci
mekanis memiliki beberapa kelemahan, seperti risiko kehilangan kunci, duplikasi
kunci, serta tingkat keamanan yang relatif rendah apabila kunci berhasil
dibobol.
Perkembangan teknologi elektronika
dan sistem tertanam (embedded system) memberikan peluang untuk meningkatkan
sistem keamanan brankas agar menjadi lebih aman, praktis, dan efisien. Salah
satu penerapan teknologi tersebut adalah penggunaan sistem keamanan berbasis
password dengan memanfaatkan keypad sebagai media input. Sistem ini
memungkinkan pengguna untuk mengakses brankas tanpa menggunakan kunci fisik,
sehingga dapat mengurangi risiko kehilangan atau penyalahgunaan kunci.
Mikrokontroler ATmega 8051 dipilih sebagai
pusat kendali sistem karena memiliki kemampuan pemrosesan yang andal, mudah
diprogram, serta banyak digunakan dalam aplikasi sistem kendali sederhana.
Dengan memanfaatkan mikrokontroler ini, proses verifikasi password dapat
dilakukan secara otomatis dan terintegrasi dengan mekanisme pengunci brankas.
Password yang dimasukkan melalui keypad akan diproses oleh mikrokontroler untuk
menentukan apakah akses dapat diberikan atau ditolak.
Berdasarkan permasalahan tersebut,
diperlukan suatu sistem keamanan brankas yang lebih modern dan efektif dengan
memanfaatkan teknologi mikrokontroler. Oleh karena itu, penelitian ini
difokuskan pada perancangan dan implementasi sistem keamanan brankas berbasis
password menggunakan keypad dan mikrokontroler ATmega 8051, dengan harapan
dapat meningkatkan tingkat keamanan serta memberikan kemudahan dalam penggunaan
brankas.
1.2 Rumusan Masalah
Berdasarkan latar belakang yang telah
diuraikan, maka rumusan masalah dalam penelitian ini adalah sebagai berikut:
1. Bagaimana
perancangan sistem keamanan brankas berbasis password dengan memanfaatkan
keypad dan mikrokontroler ATmega 8051 sebagai pengendali utama?
2. Bagaimana
mekanisme kerja sistem verifikasi password pada brankas yang dikendalikan oleh
mikrokontroler ATmega 8051 dalam menentukan akses buka dan tutup brankas?
3. Seberapa
efektif sistem keamanan brankas berbasis password berbasis mikrokontroler
ATmega 8051 jika dibandingkan dengan sistem kunci mekanis konvensional dari
sisi keamanan dan kepraktisan?
1.3 Tujuan
Adapun tujuan dari penelitian ini
adalah sebagai berikut:
- Merancang dan mengimplementasikan sistem keamanan brankas berbasis password dengan memanfaatkan keypad sebagai perangkat input dan mikrokontroler ATmega 8051 sebagai unit pengendali utama, yang mencakup perancangan perangkat keras dan perangkat lunak secara terintegrasi, sehingga sistem mampu melakukan proses input password, pengolahan data, verifikasi, serta pengendalian mekanisme pengunci brankas secara tepat dan andal.
- Menganalisis cara kerja serta kinerja sistem verifikasi password pada brankas yang dikendalikan oleh mikrokontroler ATmega 8051, khususnya dalam proses pembacaan input dari keypad, penyimpanan dan pengolahan data password, serta proses pencocokan password yang dimasukkan dengan password yang telah ditentukan, sehingga sistem dapat menentukan pemberian atau penolakan akses secara akurat.
- Menghasilkan dan mengevaluasi
sistem keamanan brankas yang memiliki tingkat keamanan, kepraktisan, dan
kemudahan penggunaan yang lebih baik dibandingkan dengan sistem kunci
mekanis konvensional, dengan memanfaatkan teknologi mikrokontroler sebagai
solusi alternatif yang lebih fleksibel, efisien, serta berpotensi untuk
dikembangkan lebih lanjut pada sistem keamanan elektronik di masa
mendatang.
BAB II
TINJAUAN PUSTAKA
2.1 Keypad 3x4
Modul keypad 3x4 merupakan suatu
modul keypad berukuran 3 kolom x 4 baris seperti ditunjukkan pada Gambar 2.1.
Modul ini dapat difungsikan sebagai input dalam aplikasi seperti pengaman
digital, absensi, pengendali kecepatan motor, robotik, dan sebagainya.
Penggunaan keypad dilakukan dengan cara menjadikan tiga buah kolom sebagai
output scanning dan empat buah baris sebagai input scanning.
2.2 Atmel 8051
Mikrokontroler
8051 adalah chip terintegrasi 40 pin yang dilengkapi dengan CPU dan periferal
lainnya seperti I/O, timer, counter, RAM, dan ROM. Teknologi ini banyak
digunakan dalam sistem tertanam, elektronik konsumen, sistem otomotif,
robotika, dan kamera keamanan. Mikrokontroler 8051 telah menempati posisi
terkemuka di pasar berkat ketersediaan, biaya rendah, dan fleksibilitas
operasionalnya.
2.3 Motor DC
Motor
DC merupakan perangkat yang dapat mengubah energi listrik menjadi energi
kinetik atau gerakan. Motor DC memiliki dua terminal atau kabel, yaitu power
dan ground. Motor ini memerlukan tegangan DC agar dapat bergerak. Biasanya
digunakan pada perangkat elektronik yang menggunakan sumber listrik DC seperti
kipas pendingin komputer dan mobil remote control.Motor DC menghasilkan
sejumlah putaran per menit atau biasa dikenal dengan istilah RPM (revolutions
per minute) dan dapat berputar searah jarum jam maupun berlawanan arah jarum
jam sehingga tergantung polaritas listrik yang diberikan.
2.4 Buzzer
Buzzer
adalah komponen yang mengubah sinyal listrik menjadi suara atau bunyi,
berfungsi sebagai indikator audio (peringatan, notifikasi, alarm) pada
perangkat elektronik seperti bel pintu, jam alarm, atau timer oven, dengan
prinsip kerja utama melalui getaran elektromagnetik (kumparan dan diafragma)
atau piezoelektrik (disk kristal yang bergetar) untuk menghasilkan suara di
udara. Terdapat dua jenis utama, aktif (memiliki osilator internal, cukup
diberi daya DC) dan pasif (memerlukan sinyal frekuensi/PWM dari mikrokontroler
untuk menghasilkan nada beragam).
2.5 LCD 16x2
LCD 16×2 adalah modul tampilan kristal cair (Liquid Crystal Display) yang digunakan untuk menampilkan data dalam bentuk karakter alfanumerik sebanyak 2 baris dengan masing-masing baris terdiri dari 16 karakter. Modul ini umumnya menggunakan pengendali internal seperti HD44780 atau yang kompatibel, dan berkomunikasi dengan mikrokontroler melalui antarmuka paralel. Dalam pengoperasiannya, LCD 16×2 memerlukan beberapa jalur kontrol dan jalur data, yaitu pin Register Select (RS) untuk menentukan jenis data yang dikirim (perintah atau data), Read/Write (RW) untuk memilih mode baca atau tulis, serta Enable (E) sebagai sinyal pemicu agar data dapat diproses oleh LCD.
Pengiriman data pada LCD 16×2 dapat dilakukan dalam
mode 8-bit atau 4-bit. Pada mode 8-bit, delapan jalur data digunakan untuk
mengirimkan satu byte data secara bersamaan, sedangkan pada mode 4-bit hanya
empat jalur data (D4–D7) yang digunakan secara bergantian untuk mengirimkan
data dalam dua tahap (nibble). Mode 4-bit lebih sering digunakan karena
dapat menghemat penggunaan pin pada mikrokontroler tanpa mengurangi fungsi
utama LCD. Selain itu, LCD 16×2 juga dilengkapi dengan pengaturan kontras
melalui pin V0 serta sistem pencahayaan latar (backlight) yang
memungkinkan tampilan karakter terlihat jelas dalam berbagai kondisi
pencahayaan.
BAB III
PERANCANGAN ALAT
3.1 Daftar Komponen
- Keypad 3x4
- Atmel 8051
- Motor DC
- Buzzer
- LCD 16x2
3.2 Cara Kerja
Pada fase pertama, sistem dimulai
dengan dengan inisialisasi port mikrokontroler Atmel 8051, keypad 3x4, motor
DC, Buzzer, dan LCD 16x2. Sistem kemudian beroperasi dengan menampilkan pesan
awal untuk meminta pengguna memasukkan PIN berupa kombinasi angka melalui
keypad 3x4 sesuai dengan PIN yang tersimpan di sistem. Apabila PIN yang
dimasukkan benar, maka motor DC akan berputar ke kiri untuk mengibaratkan bahwa
pintu keamanan membuka. Dan kemudian motor DC akan berputar ke kana untuk
mengibaratkan bahwa pintu keamanan menutup kembali. Kemudian sistem akan
kembali ke kondisi awal lagi dan menampilkan pesan untuk memasukkan PIN pada
pengguna.
Pada fase kedua, sistem ini dilengkapi dengan fitur pembatasan dalam mencoba kombinasi PIN sebanyak 3 kali. Fitur ini dimaksudkan apabila seseorang yg hendak masuk melalui pintu keamanan adalah seorang pencuri yang hendak membobol sistem keamanan. Jadi, fitur ini akan memberikan batasan untuk mencoba kombinasi PIN sebanyak 3 kali kesalahan. Apabila sudah terjadi kesalahan selama 3 kali, maka sistem keamanan akan berhenti atau lock, dan kemudian alarm dari buzzer akan berdengung yang menandakan adanya pembobol atau pencuri. Dengungan buzzer akan tetap berbunyi hingga dimatikan secara manual oleh pemilik dari sistem keamanan tersebut.
3.3 Blok Diagram
3.4 Flowchart
3.5 Skematik Rangkaian
3.6 Kode Program Assembly
$MOD51
;------------------
PORT & BIT DEFINITIONS -------------------
LCD EQU P2
RS BIT P3.5
RW BIT P3.6
EN BIT P3.7
R1 BIT P1.4
R2 BIT P1.3
R3 BIT P1.2
R4 BIT P1.
C1 BIT P1.5
C2 BIT P1.6
C3 BIT P1.7
USER_SW
BIT P1.0
MOTOR1
BIT P3.0
MOTOR2
BIT P3.1
ALARM BIT P3.4
EXTINT
BIT P3.2
;------------------
DATA MEMORY ------------------------------
DSEG
AT 30H
ALARM_TRIG:
DS 1
ALPHA: DS 6
;------------------
CODE SEGMENT -----------------------------
CSEG
ORG
0000H
LJMP MAIN
ORG
0003H ; External Interrupt 0
LJMP EX0_ISR
;------------------
INTERRUPT SERVICE ------------------------
EX0_ISR:
SETB EXTINT
CLR ALARM
RETI
;------------------
MAIN PROGRAM -----------------------------
MAIN:
ACALL INIT_SYS
ACALL CLASS_INIT
HERE:
SJMP HERE
;------------------
INITIALIZATION ---------------------------
INIT_SYS:
CLR RW
CLR RS
SETB EN
ACALL DELAY_50MS
MOV LCD, #038H ; LCD 2 line
ACALL S_LATCH
MOV LCD, #00FH ; Display ON
ACALL S_LATCH
CLR MOTOR1
CLR MOTOR2
CLR ALARM
SETB IT0 ; INT0 falling edge
SETB EX0
SETB EA
RET
;------------------
LCD ROUTINES -----------------------------
S_LATCH:
SETB EN
ACALL DELAY_50MS
CLR EN
RET
CLR_LCD:
ACALL DELAY_LONG
CLR RS
MOV LCD, #01H
ACALL S_LATCH
RET
LINE1:
CLR RS
MOV LCD, #80H
ACALL S_LATCH
SETB RS
RET
LINE2:
CLR RS
MOV LCD, #0C0H
ACALL S_LATCH
SETB RS
RET
;------------------
DELAY ROUTINES ---------------------------
DELAY_50MS:
MOV TMOD, #01H
MOV TH0, #4BH
MOV TL0 #0FDH
SETB TR0
WAIT1:
JNB TF0, WAIT1
CLR TR0
CLR TF0
RET
DELAY_LONG:
MOV R7, #30
DL1: ACALL DELAY_50MS
DJNZ R7, DL1
RET
;------------------
CLASS INIT -------------------------------
CLASS_INIT:
SETB USER_SW
MOV ALARM_TRIG, #00H
GREET_LOOP:
ACALL LINE1
MOV DPTR, #MSG_G1
ACALL PRINT_STR
JNB USER_SW, EXIT_GREET
ACALL LINE2
MOV DPTR, #MSG_G2
ACALL PRINT_STR
JNB USER_SW, EXIT_GREET
ACALL CLR_LCD
SJMP GREET_LOOP
EXIT_GREET:
ACALL CLR_LCD
ACALL LINE1
MOV DPTR, #MSG_NP1
ACALL PRINT_STR
ACALL LINE2
MOV DPTR, #MSG_NP2
ACALL PRINT_STR
ACALL USER_INIT
RET
;------------------
USER INIT --------------------------------
USER_INIT:
INC ALARM_TRIG
ACALL CLR_LCD
ACALL LINE1
MOV A, ALARM_TRIG
CJNE A, #04, ASK_PASS
SETB ALARM ; alarm after 3 wrong tries
HALT:
SJMP HALT
ASK_PASS:
MOV DPTR, #MSG_PASS
ACALL PRINT_STR
ACALL LINE2
ACALL READ_KEYPAD ; read 6 digits into ALPHA
ACALL CHECK_PASS
RET
;------------------
KEYPAD 4x3 FULL --------------------------
;
Key map:
;
Col1 Col2 Col3
; 1
2 3
; 4
5 6
; 7
8 9
; *
0 #
READ_KEYPAD:
MOV
R0, #00 ; index alpha[0..5]
KP_LOOP:
; set columns high, rows low
SETB C1
SETB C2
SETB C3
CLR R1
CLR R2
CLR R3
CLR R4
JNB C1, COL1
JNB C2, COL2
JNB C3, COL3
SJMP KP_LOOP
;
-------- COLUMN 1 --------
COL1:
SETB R1
SETB R2
SETB R3
SETB R4
CLR C1
JNB R1, KEY_1
JNB R2, KEY_4
JNB R3, KEY_7
JNB R4, KEY_STAR
SJMP KP_LOOP
KEY_1: MOV A, #'1' SJMP STORE_KEY
KEY_4: MOV A, #'4' SJMP STORE_KEY
KEY_7: MOV A, #'7' SJMP STORE_KEY
KEY_STAR: MOV A, #'*' SJMP STORE_KEY
;
-------- COLUMN 2 --------
COL2:
SETB R1
SETB R2
SETB R3
SETB R4
CLR C2
JNB R1, KEY_2
JNB R2, KEY_5
JNB R3, KEY_8
JNB R4, KEY_0
SJMP KP_LOOP
KEY_2: MOV A, #'2' SJMP STORE_KEY
KEY_5: MOV A, #'5' SJMP STORE_KEY
KEY_8: MOV A, #'8' SJMP STORE_KEY
KEY_0: MOV A, #'0' SJMP STORE_KEY
;
-------- COLUMN 3 --------
COL3:
SETB R1
SETB R2
SETB R3
SETB R4
CLR C3
JNB R1, KEY_3
JNB R2, KEY_6
JNB R3, KEY_9
JNB R4, KEY_HASH
SJMP KP_LOOP
KEY_3: MOV A, #'3' SJMP STORE_KEY
KEY_6: MOV A, #'6' SJMP STORE_KEY
KEY_9: MOV A, #'9' SJMP STORE_KEY
KEY_HASH: MOV A, #'#' SJMP STORE_KEY
;
-------- STORE & DISPLAY KEY --------
STORE_KEY:
MOV ALPHA(R0), A ; save key
SETB RS
MOV LCD, A ; show on LCD
ACALL S_LATCH
WAIT_REL:
JNB R1, WAIT_REL
JNB R2, WAIT_REL
JNB R3, WAIT_REL
JNB R4, WAIT_REL
INC R0
CJNE R0, #06, KP_LOOP; wait until 6 digits
entered
RET
KEY2:
MOV ALPHA(R0), #'2'
INC R0
CJNE R0, #06, KP_LOOP
RET
KEY3:
MOV ALPHA(R0), #'3'
INC R0
CJNE R0, #06, KP_LOOP
RET
;------------------
PASSWORD COMPARE -------------------------
CHECK_PASS:
MOV R0, #00 ; index
MOV DPTR, #DEF_PASS
CMP_LOOP:
MOV A, ALPHA(R0)
MOVC B, @A+DPTR
CJNE A, B, PASS_FAIL
INC R0
INC DPTR
CJNE R0, #06, CMP_LOOP
;
-------- PASSWORD OK --------
PASS_OK:
ACALL CLR_LCD
ACALL LINE1
MOV DPTR, #MSG_OK
ACALL PRINT_STR
;
motor open door
SETB MOTOR1
CLR MOTOR2
ACALL DELAY_DOOR
;
motor close door
CLR MOTOR1
SETB MOTOR2
ACALL DELAY_DOOR
;
stop motor
CLR MOTOR1
CLR MOTOR2
RET
;
-------- PASSWORD FAIL --------
PASS_FAIL:
ACALL CLR_LCD
ACALL LINE1
MOV DPTR, #MSG_FAIL
ACALL PRINT_STR
ACALL LINE2
MOV DPTR, #MSG_RETRY
ACALL PRINT_STR
ACALL USER_INIT
RET
;------------------
PRINT STRING -----------------------------
PRINT_STR:
CLR A
PS1:
MOVC A, @A+DPTR
JZ PS_END
SETB RS
MOV LCD, A
ACALL S_LATCH
INC DPTR
CLR A
SJMP PS1
PS_END:
RET
;------------------
DOOR DELAY -------------------------------
DELAY_DOOR:
MOV R7, #100
DD1:
ACALL DELAY_50MS
DJNZ R7, DD1
RET
;------------------
CONSTANT STRINGS -------------------------
DEF_PASS:
DB '1','2','3','4','5','6'
MSG_OK: DB 'Ok',0
MSG_FAIL:
DB 'Pass mismatch!',0
MSG_RETRY:DB
'Pls try again.',0
MSG_G1: DB 'Hey there,',0
MSG_G2: DB 'Welcome!',0
MSG_NP1:
DB 'I need ur',0
MSG_NP2:
DB 'pass pls...',0
MSG_PASS:DB
'Enter pass.',0
END
BAB IV
KESIMPULAN
4.1 Keismpulan
Berdasarkan hasil perancangan,
implementasi, dan pengujian yang telah dilakukan, dapat disimpulkan bahwa
sistem keamanan brankas berbasis password menggunakan keypad dan mikrokontroler
ATmega 8051 mampu bekerja sesuai dengan tujuan yang telah ditetapkan. Sistem
ini berhasil mengintegrasikan keypad sebagai media input, LCD 16×2 sebagai
media penampil informasi, motor DC sebagai aktuator pengunci, serta buzzer
sebagai indikator peringatan, di mana mikrokontroler berperan sebagai pusat
pengendali seluruh proses. Mekanisme verifikasi password berjalan dengan baik
melalui proses pembacaan input, pencocokan data password, serta pengambilan keputusan
untuk memberikan atau menolak akses, termasuk penerapan pembatasan percobaan
sebanyak tiga kali yang diikuti dengan aktivasi alarm sebagai upaya peningkatan
keamanan. Secara keseluruhan, sistem ini dinilai lebih praktis, fleksibel, dan
memiliki tingkat keamanan yang lebih baik dibandingkan dengan sistem kunci
mekanis konvensional, sehingga dapat dijadikan sebagai alternatif solusi
keamanan brankas berbasis teknologi mikrokontroler yang modern dan mudah
digunakan.
DAFTAR PUSTAKA
Atmel Corporation. (2008). 8-bit Microcontroller
with 4K Bytes Flash: AT89C51 Datasheet. Diambil dari https://www.microchip.com/en-us/product/AT89C51
Dachniar. (2019). Implementasi Sistem Pengunci
Pintu Otomatis Menggunakan Keypad dan Selenoid Door Lock Berbasis
Mikrokontroler. Jurnal Teknik Elektro, Universitas Negeri Makassar.
Electronic Wings. (2020). Interfacing 4x4 Keypad
with 8051 Microcontroller. Diambil dari https://www.electronicwings.com/8051/keypad-interfacing-with-8051
Microchip Technology. (2021). 8051 Architecture
Instruction Set. Diambil dari https://onlinedocs.microchip.com/
LAMPIRAN
- PPT
-
Video
https://drive.google.com/file/d/1x9IjA4Y4BcI5LCmSlbi_cjKKxrAKguUW/view?usp=sharing
https://youtu.be/nmIx9vu9t4M?si=8-0EdaeVG8VO60Rx

Komentar
Posting Komentar