Sistem Keamanan dengan Password
LABORATORIUM MIKROKONTROLER I
SISTEM KEAMANAN DENGAN PASSWORD
Dosen Pengampu:
Dr. Samuel Beta K.,
Ing.Tech, M.T.
Disusun
Oleh :
Kelompok 5
1.
Arief Rahman
Hakim |
RE-2A |
(4.34.22.0.05) |
2. Elva Puspita Wardani |
RE-2A |
(4.34.22.0.08) |
3. M. Nur Afiq Pradana |
RE-2A |
(4.34.22.0.17) |
PROGRAM
STUDI TEKNOLOGI REKAYASA ELEKTRONIKA
JURUSAN
TEKNIK ELEKTRO
POLITEKNIK
NEGERI SEMARANG
2023
BAB I
PENDAHULUAN
1.1.
Latar Belakang
Keamanan pintu merupakan hal
yang paling utama dalam merancang keamanan ruangan, untuk menciptakan keamananan
yang baik. Ada beberapa percobaan yang dapat dikerjakan salah satunya yaitu
dengan memanfaatkan teknologi untuk merancang alat keamanan yang baik. Banyak
sekali terjadi kasus-kasus pencurian di rumah-rumah atau pun di berbagai
instansi karena banyak factor, salah satunya adalah pada sistem keamanan pintu
yang tidak terproteksi dengan baik. Salah satu solusi yang bisa diterapkan
untuk mengatasi permaslahan tersebut yaitu penggunaan sistem keamanan pintu
dengan kata sandi.
1.2.
Tujuan
Tujuan dari perancangan alat ini, yaitu:
1.
Menciptakan
sistem keamanan pintu dengan menggunakan konsep teknologi terkini.
2.
Mengurangi
dampak yang ditimbulkan akibat kerugian dalam terjadinya tindakan kriminal.
1.3.
Rumusan Masalah
Berdasarkan uraian di atas, maka ada beberapa rumusan
masalah yang harus diperhatikan, yaitu:
1.
Bagaimana
cara kita menjaga ruangan agar tetap aman?
2.
Bagaimana
merancang sistem keamanan dengan password berbasis ATMega 8535?
3.
Bagaiaman
acara mengganti password pada sistem kemananan tersebut?
BAB II
TINJAUAN PUSTAKA
2.1.
Mikrokontroler ATMega8535
Mikrokontroler merupakan
keseluruhan sistem computer yang dikemas menjadi sebuah chip dimana di dalamnya
sudah terdapat mikroprosesor, I/O, memori bahkan ADC. Berbeda dengan
mikroprosesor yang berfungsi sebagai pemroses data.
Mikrokontroler
AVR (Alf and Vegard Risc processor) memiliki arsitektur 8 bit, dimana semua
instruksi dikemas dalam kode 16-bit. Di sisi lain. sebagian besar instruksi
dieksekusi dalam 1 siklus clock atau dikenal dengan teknologi RISC (Reduced
Instruction Set Computing). Secara umum, AVR bisa dikelompokkan ke dalam 4
kelas, yaitu keluarga ATMega, keluarga AT90Sxx dan AT86RFxx. Pada
dasarnya yang membedakan masing-masing adalah peripheral, kapasitas
memori dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, mereka
bisa dikatakan hampir sama.
Gambar 2.1 ATMega8535
Konfigurasi Pin ATMega8535
Berikut
ini konfigurasi dan fungsi pin ATMega8535 :
1. VCC digunakan
sebagai input sumber tegangan positif (+)
2. GND digunakan
sebagai sumber tegangan negatif ground (-)
3. Port
A (PA7 - PA0) berfungsi sebagai input analog dari ADC (Analog to
Digital Converter) dan juga sebagai port I/O dua arah, jika ADC tidak digunakan
4. Port
B (PB7 - PB0) berfungsi sebagai port I/O dua arah. Port PB5, PB6 dan PB7
berfungsi sebagai MOSI, MISO dan SCK yang digunakan pada proses
downloading
5. Port
C (PC7 - PC0) berfungsi sebagai port I/O dua arah
6. Port
D (PD7 - PD0) berfungsi sebagai port I/O dua arah. Selain itu, port PD0
dan PD1 juga berfungsi sebagai RXD dan TXD yang digunakan untuk komunikasi
serial
7. RESET digunakan
sebagai input reset
8. XTAL1 digunakan
sebagai input ke amplifier inverting osilator dan input ke sirkuit clock
internal
9. XTAL2 digunakan
sebagai output dari amplifier inverting osilator
10. AVCC digunakan
sebagai input tegangan untuk Port A dan ADC
11. AREF digunakan
sebagai tegangan referensi untuk ADC
Arsitektur ATMega8535
Gambar 2.2 Blok
Diagram ATMega8535
Berdasarkan blok diagram di atas bisa dilihat
bahwa ATMega8535 memiliki bagian-bagian sebagai berikut:
1.
Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C
dan Port D
2.
ADC 8 channel 10 bit
3.
Tiga buah timer/counter dengan kemampuan pembanding
4.
CPU yang terdiri dari 32 buah register
5.
Watchdog timer dengan osilator internal
6.
SRAM 512 byte
7.
Memori Flash sebesar 8KB dengan kemampuan Read While
Write
8.
Interrupt internal dan eksternal
9.
Port antarmuka SPI (Serial Peripheral Interface)
10.
EEPROM 512 byte yang bisa diprogram ketika operasi
11.
Antarmuka komparator analog
12.
Port USART untuk komunikasi serial
2.2.
Keypad
Keypad numerik hanya berisi tombol
karakter angka, dari 0 – 9, sedangkan keypad alfanumerik sama dengan
keypad numeric dengan ditambahi karakter alphabet A – D. Kedua tipe keypad ini
dilengkapi dengan spesial karakter ‘*’ dan ‘#’.
Dengan demikian, sebuah keypad numerik akan
berisi 12 karakter (12 tombol), sedangkan keypad alfanumerik terdiri
dari 16 karakter (16 tombol). Inilah yang membedakannya dengan keyboard, yakni
sekumpulan tombol dengan karakter alfanumerik (plus spesial karakter) yang
lebih banyak variasinya sesuai dengan standar ASCII.
Gambar 2.3 Modul Keypad 3x4
Cara
kerja rangkaian Keypad 3x4:
1.
Apabila Kolom 1 diberi
logika ‘0’, kolom kedua dan kolom ketiga diberi logika ‘1’ maka program akan
mengecek tombol 1, 4, 7, dan *, sehingga apabila salah satu baris berlogika '0'
maka ada tombol yang ditekan.
2.
Apabila Kolom 2 diberi
logika ‘0’, kolom pertama dan kolom ketiga diberi logika ‘1’ maka program akan
mengecek tombol 2, 5, 8, dan 0, sehingga apabila salah satu baris berlogika '0'
maka ada tombol yang ditekan.
3.
Apabila Kolom 3 diberi
logika ‘0’, kolom pertama dan kolom kedua diberi logika ‘1’ maka program akan
mengecek tombol 3, 6, 9, dan #, sehingga apabila salah satu baris berlogika '0'
maka ada tombol yang ditekan.
4.
Kemudian kembali ke
semula, artinya program looping terus mendeteksi data kolom dan data baris,
cara ini disebut scaning atau penyapuan keypad untuk mendapatkan saklar mana
yang ditekan.
2.3.
LCD
Gambar 2.4 LCD 16x2
LCD
(Liquid Crystal Display) adalah suatu jenis media tampil yang menggunakan
kristal cair sebagai penampil utama.Adapun fitur yang disajikan dalam LCD ini
adalah:
·
Terdiri dari 16 karakter
dan 2 baris.
·
Mempunyai 192 karakter
tersimpan.
·
Terdapat karakter
generator terprogram.
·
Dapat dialamati dengan
mode 4-bit dan 8-bit.
·
Dilengkapi dengan back
light. Proses inisialisasi pin arduino yang terhubung ke pin LCD RS, Enable,
D4, D5, D6, dan D7, dilakukan dalam baris LiquidCrystal (2, 3, 4, 5, 6, 12 7),
dimana lcd merupakan variable yang dipanggil setiap kali intruksi terkait LCD
akan digunakan.
2.4.
Buzzer
Buzzer
adalah sebuah komponen elektronika yang berfungsi untuk mengubah getaran
listrik menjadi getaran suara. Pada dasarnya prinsip kerja buzzer hampir sama
dengan loud speaker, jadi buzzer juga terdiri dari kumparan yang terpasang pada
diafragma dan kemudian kumparan tersebut dialiri arus sehingga menjadi
elektromagnet, kumparan tadi akan tertarik ke dalam atau keluar, tergantung
dari arah arus dan polaritas magnetnya, karena kumparan dipasang pada diafragma
maka setiap gerakan kumparan akan menggerakkan diafragma secara bolak-balik
sehingga membuat udara bergetar yang akan menghasilkan suara. Buzzer biasa
digunakan sebagai indikator bahwa proses telah selesai atau terjadi suatu
kesalahan pada sebuah alat (alarm).
Gambar 2.5 Buzzer
2.5.
LED
Light
Emitting Diode atausering disingkat dengan LED adalah komponen
elektronika yang dapat memancarkan cahayamonokromatik ketika
diberikan tegangan maju. LED merupakan keluarga Dioda yang terbuatdari bahan
semikonduktor. Warna-warna Cahaya yang dipancarkan oleh
LED tergantung pada jenis bahan semikonduktor yang dipergunakannya.
LED juga dapat memancarkan sinar inframerah
yang tidak tampak oleh mata.
Gambar 2.6 LED
LED
merupakan keluarga dari Dioda yang terbuat dari semikonduktor. Cara
kerjanya pun hampir sama dengan Dioda yang memiliki dua kutub yaitukutub Positif (P) dan kutub Negatif (N). LED hanya akan
memancarkan cahaya apabila dialiri tegangan
maju (bias
forward)
dari Anoda
menuju ke Katoda. LED terdiri dari sebuah
chip semikonduktor yang di doping sehingga menciptakan junction P dan N. Yang dimaksud dengan
proses doping dalam semikonduktor adalah proses untuk menambahkan
ketidakmurnian (impurity) pada semikonduktor
yang murni sehingga menghasilkan
karakteristik kelistrikan yang diinginkan.
BAB III
PERANCANGAN ALAT
3.1.
Daftar Komponen
Komponen yang kami gunakan untuk perancangan alat ini,
yaitu:
1.
Board
Mikrokontroler ATmega8535
2.
Keypad
3x4
3.
Buzzer
4.
LED
5.
LCD
3.2.
Cara Kerja
Cara kerja alat ini yaitu, ketika pertama kali
dinyalakan, kondisi awal pintu adalah terkunci. Kemudian pengguna bisa
memasukkan password sebanyak 5 angka. Jika benar, maka pintu akan terbuka. Jika
salah, maka pintu tetap terkunci. Saat pintu terbuka, pengguna bisa mengganti
password baru dengan menekan tombol * lalu memasukkan password baru. Setelah itu,
tekan tombol # untuk menyimpan dan menutup pintu.
3.3.
Diagram Blok
Gambar 3.1 Diagram Blok
3.4.
Diagram Alir
Gambar 3.2 Diagram Alir
3.5.
Gambar Rangkaian
Gambar 3.3 Gambar Rangkaian
3.6.
Kode Program
/*
======================================================================
Pemrogram :
Kelompok RE-2A/5
1. 05-Arief
Rahman Hakim NIM:4.34.22.0.05
2. 08-Elva
Puspita Wardani NIM:4.34.22.0.08
3. 17-M. Nur
Afiq Pradana NIM:4.34.22.0.17
Tgl.Praktikum :
Selasa, 31 Oktober 2023
=========================================================================
Pintu Gerbang Dengan Password
project akhir.c
program untuk
mengendalikan pintu gerbang berpassword
-------------------------------------------------------------------------
Komponen:
- 1x keypad 3x4
- 1x Motor servo
- 1x LCD
=========================================================================*/
//=== Pustaka ===
#include "mega8535.h" //ATmega 8535
#include "alcd.h" //LCD
#include "delay.h" //Delay
#include "stdio.h" //I/O standart
//=== Deklarasi variabel ===
char
password[5],
pass[5],
a = 0,
digit = 0,
flag1,
flag2,
flag3;
int
p,
pw,
kondisi,
counter;
//=== Pengesetan awal ===
void buzzer(){
PORTB.1 = 1;
delay_ms(10); PORTB.1 = 0; counter++;
}
void alert(int i){
PORTB.1 = 1;
delay_ms(i); PORTB.1 = 0;
}
void baca_keypad(){
PORTD =
0b1101111; //kolom
1
delay_us(10);
if(PIND.0==0){ if(flag1 ==
0){digit = 1; buzzer(); flag1 = 1;}}
else if
(PIND.1==0){if(flag1 == 0){digit = 4; buzzer(); flag1 = 1;}}
else if
(PIND.2==0){if(flag1 == 0){digit = 7; buzzer(); flag1 = 1;}}
else if
(PIND.3==0){if(flag1 == 0){digit = 11;buzzer(); flag1 = 1;}}//* = 11
else{flag1 =
0;}
PORTD =
0b1011111; //kolom 2
delay_us(10);
if(PIND.0==0){ if(flag2 ==
0){digit = 2; buzzer(); flag2 = 1;}}
else if
(PIND.1==0){if(flag2 == 0){digit = 5; buzzer(); flag2 = 1;}}
else if
(PIND.2==0){if(flag2 == 0){digit = 8; buzzer(); flag2 = 1;}}
else if
(PIND.3==0){if(flag2 == 0){digit = 0; buzzer(); flag2 = 1;}}
else{flag2 =
0;}
PORTD =
0b0111111; //kolom 3
delay_us(10);
if(PIND.0==0){ if(flag3 ==
0){digit = 3; buzzer(); flag3 = 1;}}
else if
(PIND.1==0){if(flag3 == 0){digit = 6; buzzer(); flag3 = 1;}}
else if
(PIND.2==0){if(flag3 == 0){digit = 9; buzzer(); flag3 = 1;}}
else if
(PIND.3==0){if(flag3 == 0){digit = 12;buzzer(); flag3 = 1;}}//# = 12
else{flag3 =
0;}
}
void main(void){
lcd_init(16);
//Lcd 16x2
DDRD = 0b1110000; //pintu PD2-0 sebagai
masukan
DDRB = 0xFF; //pin B sebagai
output
DDRC = 0xFF;
PORTD =
0b1111111;
//Aktifkan R pullup
pass[0]=1;
pass[1]=2; pass[2]=3; pass[3]=4; pass[4]=5;
//=== Program utama ===
while (1) {
baca_keypad();
//kondisi 0 =
lcd tampil "pintu terkunci"
if(kondisi ==
0){
lcd_gotoxy(0,
0); lcd_putsf("=Pintu Terkunci=");
lcd_gotoxy(0,
1); lcd_putsf("
");
PORTC.3 = 1;
//pin kunci
PORTC.2 = 0;
//pin buka
}
//kondisi 1 =
masukkan password
if(kondisi ==
1){
lcd_gotoxy(0,
0); lcd_putsf("Masukan Password");
lcd_gotoxy(0,
1); lcd_putsf("=");
password[counter] = digit;
lcd_gotoxy(1,
1); lcd_printf("%i", password[0]);
lcd_gotoxy(2,
1); lcd_printf("%i", password[1]);
lcd_gotoxy(3,
1); lcd_printf("%i", password[2]);
lcd_gotoxy(4,
1); lcd_printf("%i", password[3]);
lcd_gotoxy(5,
1); lcd_printf("%i", password[4]);
password[counter] = digit;
if(counter ==
4){
if(password[0]==pass[0]&&password[1]==pass[1]&&password[2]==pass[2]&&password[3]==pass[3]&&password[4]==pass[4])
{
kondisi = 2;
counter = 0;
} else
{kondisi = 3;}
}
}
if(kondisi ==
2){
lcd_gotoxy(0, 0); lcd_putsf("=Pintu
Terbuka=");
lcd_gotoxy(0, 1); lcd_putsf(" ");
PORTC.3 = 0;
//pin kunci
PORTC.2 = 1;
//pin buka
for(p=0;
p<=4; p++){password[p] = 0;}
digit = 0;
baca_keypad();
if(digit ==
11){kondisi = 5; counter = -1;}
if(digit ==
12){kondisi = 4;}
}
if(kondisi ==
3){
lcd_gotoxy(0, 0); lcd_putsf("=Password Salah=");
lcd_gotoxy(0, 1); lcd_putsf(" ");
//PORTB.1 =
1; delay_ms(1000); PORTB.1 = 0; //alert
baca_keypad();
for(p=0;
p<=4; p++){password[p] = 0;}
counter =
-1;
if(digit ==
12){kondisi = 1;}
}
if(kondisi ==
4){
lcd_gotoxy(0,
0); lcd_putsf("=Pintu Terkunci=");
lcd_gotoxy(0,
1); lcd_putsf("
");
PORTC.3 = 1;
//pin kunci
PORTC.2 = 0;
//pin buka
baca_keypad();
if(digit ==
12){
counter = -1;
digit = 0; delay_ms(10); kondisi = 1; lcd_clear();
}
}
if(kondisi ==
5){ baca_keypad();
lcd_gotoxy(0, 0); lcd_putsf("=Password baru =");
lcd_gotoxy(0, 1); lcd_putsf("=");
password[counter] = digit;
lcd_gotoxy(1, 1); lcd_printf("%i", password[0]);
lcd_gotoxy(2, 1); lcd_printf("%i", password[1]);
lcd_gotoxy(3, 1); lcd_printf("%i", password[2]);
lcd_gotoxy(4, 1); lcd_printf("%i", password[3]);
lcd_gotoxy(5, 1); lcd_printf("%i", password[4]);
password[counter] = digit;
if(counter
== 4){
for(pw=0;
pw<=4; pw++){pass[pw] = password[pw];}
lcd_gotoxy(0, 0); lcd_putsf("Password diganti");
lcd_gotoxy(0, 1); lcd_putsf(" ");
delay_ms(1000); kondisi = 2;
}
}
if(kondisi ==
0 && digit == 12){
counter = -1;
digit = 0; delay_ms(10); kondisi = 1; lcd_clear();
}
/*
lcd_gotoxy( 5,
1); lcd_printf("%i", kondisi);
lcd_gotoxy( 0,
1); lcd_printf("%i", digit);
*/
}//while
}//main
//=== Sub program ===
BAB IV
KESIMPULAN
Berdasarkan hasil perancangan dan implementasi yang telah dilakukan, maka dapat disimpulkan bahwa:
- Perancangan Alat Sistem Keamanan dengan Password berjalan dengan baik.
- Sistem keamanan dengan password ini dapat meminimalisir angka pencurian.
BAB V
DAFTAR PUSTAKA
Komentar
Posting Komentar