RANCANG BANGUN KEAMANAN GANDA PADA BRANKAS MENGGUNAKAN RFID DAN KEYPAD BERBASIS ARDUINO


  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


Program Link Program

#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