Sistem keamanan pintu pintar sudah
mulai diterapkan seperti pada gedung, hotel, perkantoran dan lain-lain. Hal ini
dilakukan untuk mencegah adanya aksi pencurian dan pembobolan karena tidak
terproteksi dengan baik.
Dalam kesempatan kali ini saya akan berbagi tutorial Membuat Sistem Kunci Pintu Pintar menggunakan kartu RFID (Radio Frequency Identification) seperti pada E-KTP, SIM, E-Toll. Setiap chip kartu RFID akan memiliki nomor identitas tertentu yang berbeda satu sama lainnya sehingga memiliki keamanan yang tinggi. Dalam percobaan ini kita menggunakan RFID RC522. Kartu RFID memiliki frekuensi kerja 13.56MHz. jadi jika kartu rfid nya diluar frekuensi ini, maka tidak akan terdeteksi.
Komponen yang di gunakan :
- Arduino uno
- RFID RC522
- Kabel jumper Secukupnya
- Modul I2C
- LCD 16x2
- Buzzer
- Breadboard
- Relay 5v
- Solenoid door lock
- Power Supply 12v
Langsung saja kita rangkai komponennya seperti gambar berikut :
Langkah - langkah Wiring :
Koneksi modul I2C dengan Arduino UNO
- Gnd (-) -> GND
- Vcc (+) -> 5V
- SDA -> A4
- SCL -> A5
Koneksi modul RFID dengan Arduino UNO
- SDA -> Pin 10
- SCK -> Pin 13
- MOSI -> Pin 11
- MISO -> Pin 12
- SDA -> Pin 10
- GND -> GND
- RST -> Pin 9
- 3.3v -> 3.3v
Koneksi modul Relay dengan Arduino UNO
- Gnd (-) -> GND
- Vcc (+) -> 5V
- Input -> Pin 8
Koneksi Selenoid DoorLock dengan Modul Relay
- Pin (-) -> GND Power Supply 12V
- Pin (+) -> Pin N.O Relay
- Pin COM Relay -> (+) Power Supply 12V
Koneksi Buzzer dengan Arduino UNO
- Pin (-) -> GND
- Pin (+) -> Pin 5
Setelah semua komponen dirangkai selanjutnya
kita masuk ke pemrograman menggunakan software Arduino IDE
Untuk mendownload code dan library klik disini
Tutorial menambahkan library Arduino IDE klik disini
Code :
//kunci pintar menggunakan RFID by Wahyu Cahya
Putra
#include <LiquidCrystal_I2C.h>
#include <SPI.h>
#include <MFRC522.h>
const int buzzer=5;
const int relay = 8;
const int PIN_RST = 9;
const int PIN_SS = 10;
String uidTag = "";
LiquidCrystal_I2C lcd(0x27,16,2);
MFRC522 mfrc(PIN_SS, PIN_RST);
void setup() {
lcd.init ();
lcd.backlight ();
Serial.begin(9600);
SPI.begin();
mfrc.PCD_Init();
pinMode (relay, OUTPUT);
pinMode(buzzer,OUTPUT);
digitalWrite (relay, HIGH);
// cek
software RFID
byte
versi = mfrc.PCD_ReadRegister(mfrc.VersionReg);
if
(versi == 0x00 || versi == 0xFF) {
lcd.begin(16,2);
lcd.setCursor (0,0);
lcd.print("Tidak Ada Modul");
while (true);
}
}
void loop() {
lcd.setCursor (0,1);
lcd.print("Tempelkan Kartu!");
digitalWrite (relay, HIGH);
if (!mfrc.PICC_IsNewCardPresent())
return;
if
(!mfrc.PICC_ReadCardSerial())
return;
uidTag
= "";
for
(byte j = 0; j < mfrc.uid.size; j++) {
char
teks[3];
sprintf(teks, "%02X", mfrc.uid.uidByte[j]);
uidTag += teks;
}
// Jika Tag terdaftar
if (uidTag.substring(0) ==
"92A28732"){ //ganti data "92A28732" dengan tag anda
digitalWrite (relay, LOW);
digitalWrite(buzzer, HIGH);
delay(100);
digitalWrite(buzzer, LOW);
lcd.setCursor (0,0);
lcd.print(" ");
delay
(1000);
lcd.setCursor
(0,0);
lcd.print(" Selamat Datang ");
delay
(1000);
lcd.setCursor (0,1);
lcd.print ("NAMA ANDA");
delay
(5000);
lcd.clear ();
lcd.setCursor (0,0);
lcd.print(" PINTU TERBUKA ");
delay
(2000);
lcd.clear ();
}
//ketika tag salah
else {
Serial.print("uidTag : ");
Serial.println(uidTag);
digitalWrite(buzzer, HIGH);
delay(500);
digitalWrite(buzzer, LOW);
lcd.clear();
lcd.setCursor (0,1);
lcd.print("Akses ditolak !!!");
delay
(2000);
}
mfrc.PICC_HaltA();
}
- Setelah program diupload, untuk menemukan ID kartu anda buka serial monitor lalu tempelkan kartu anda, maka di serial monitor akan muncul nomor ID kartu anda
- Setelah itu copy dan paste untuk mengganti “92A28732” di code tadi
- Kemudian ganti “NAMA” dengan “NAMA ANDA” Contoh “ Wahyu Cahya P “
- Karena kita menggunakan LCD 16x2 maka karakter yang bisa ditulis maksimal adalah 16 karakter.
Sekian tutorial dari saya kali ini,
Apabila ada hal-hal yang kurang jelas bisa ditanyakan pada kolom komentar dibawah, terima kasih
Selamat Mencoba…