PROTOTYPE KEAMANAN GANDA PADA BRANKAS
MENGGUNAKAN RFID DAN KEYPAD BERBASIS ARDUINO
Dosen Pengampu : Aminuddin R
Disusun Oleh :
Nafisa 3.32.20.2.17
Vito Adhi Fernanda 3.32.20.2.25
EK-3C
D-3 Teknik Elektronika
Jurusan Teknik Elektro
Politeknik Negeri Semarang
Pengertian
Prototype brankas yang berfungsi untuk menyimpan barang-barang berharga
dengan sistem keamanan mengguanakan Keypad, dan RFID (Radio Frequency
Identification), sehingga dapat memperkecil tindakan pencurian yang akan
terjadi pada brankas
Latar Belakang
Penggunaan brankas yang telah beredar dan dijual
dipasaran tidak selalu dapat menjawab kebutuhan setiap orang untuk mengamankan
barang berharga miliknya. Tindak pencurian terkait brankas terjadi dengan beberapa
modus yakni penggandaan kunci, pembobolan pintu brankas dan beberapa modus
lainnya ratarata terjadi saat pemilik brankas tidak berada ditempat sehingga
siapapun dapat mencoba untuk membuka brankas dan mengambil isi brankas karena
akses untuk membuka brankas tersebut tergolong mudah. Ini membuktikan bahwa
brankas yang dijual dipasaran sekarang ini masih belum memadai dan memberi rasa
aman yang lebih kepada pengguna. Sehingga kebutuhan akan brankas yang berbeda
dan memiliki aplikasi pengamanan lebih baik masih sangat diperlukan.
Komponen yang digunakan :
1. Mikrokontroler : Arduino Uno
2. Masukan : Keypad 4x4, RFID
3. Keluaran : LCD I2C, Buzzer, Relay, dan Solenoid Door Lock.
Cara Kerja :
Alat ini bekerja dengan cara memanfaatkan dua buah pengaman,
yakni yang pertama dengan menempelkan kartu RFID lalu data ditransfer ke
Arduino, jika kartu tidak terdeteksi maka mengulang dari awal, namun jika scan
kartu berhasil maka akan lanjut ke tahap selanjutnya yaitu memasukkan pin
melalui keypad yang telah tersedia, jika berhasil maka pintu terbuka dan jika
salah memasukkan password buzzer akan berbunyi dan mengulang untuk memasukkan
password. Jika pasword sudah benar maka selenoid akan bekerja untuk membuka
pintu brankas.
Materi Presentasi Link Power Point
#include <SPI.h>
#include <MFRC522.h>
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define BUZZER 2
#define RST_PIN 8
#define SS_PIN 10
#define RELAY 9
const byte ROWS = 4; //keypad 4 baris
const byte COLS = 4; //4 kolom
char hexaKeys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {0,1,A5,A4}; //koneksi baris keypad
byte colPins[COLS] = {A3,A2,A1,A0}; //koneksi kolom keypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
MFRC522 mfrc522(SS_PIN, RST_PIN);
MFRC522::MIFARE_Key key;
byte i,j,k,f_cek;
String ID_TAG;
String ID[2];
int jmlkartu;
String Password="000000";
String pw;
byte f_kpd;
//==============================
void setup() {
lcd.init();
lcd.backlight();
SPI.begin();
mfrc522.PCD_Init();
jmlkartu=2;
ID[0]="251da7ac";
ID[1]="803ee1b";
lcd.clear();
lcd.print("Halo Bos!");
lcd.setCursor(0,1);
lcd.print("Mau Setoran?");
pinMode(BUZZER,OUTPUT);
pinMode(RELAY,OUTPUT);
digitalWrite(RELAY,HIGH);
delay(2000);
lcd.clear();
lcd.print("Tempelkan Kartu");
}
//============
void readRFID(byte *buffer, byte bufferSize)
{
ID_TAG="";
for(byte i = 0;i<bufferSize; i++)
{
ID_TAG=ID_TAG+String(buffer[i], HEX);
}
}
//=============
void loop() {
if(!mfrc522.PICC_IsNewCardPresent() || !mfrc522.PICC_ReadCardSerial()){
return;
}
readRFID(mfrc522.uid.uidByte, mfrc522.uid.size);
f_cek=0;
for(k=0;k<jmlkartu;k++){
if(ID_TAG==ID[k]){
f_cek=1;
lcd.clear();
lcd.print("Kartu Benar");
delay(2000);
lcd.clear();
lcd.print("Masukkan Password");
lcd.setCursor(0,1);
lcd.print("PW:");
f_kpd=1;
pw="";
while(f_kpd){
char customKey = customKeypad.getKey();
if (customKey){
lcd.print("*");
pw=pw+customKey;
j++;
if(j==6){
j=0;
if(pw==Password){
f_kpd=0;
lcd.clear();
lcd.print("Password Benar");
lcd.setCursor(0,1);
lcd.print("Selamat Setoran!");
digitalWrite(RELAY,LOW);
while(1);
}
else{
lcd.clear();
lcd.print("Password Salah");
delay(2000);
k++;
if(k<3){
pw="";
lcd.clear();
lcd.print("Masukkan Password");
lcd.setCursor(0,1);
lcd.print("PW:");
}
else{
lcd.clear();
lcd.print("Maaf Anda");
lcd.setCursor(0,1);
lcd.print("Terblokir...");
while(1);
}
delay(3000);
}
}
}
}
}
}
if(f_cek==0){
lcd.clear();
lcd.print("Kartu Salah");
delay(1000);
for(j=0;j<3;j++){
digitalWrite (BUZZER,HIGH);
delay(500);
digitalWrite (BUZZER,LOW);
delay(500);
}
}
lcd.clear();
lcd.print("Tempelkan Kartu");
}
Simulasi Alat link video
Github Link Github
Komentar
Posting Komentar