Sirkuit Kunci Keamanan RFID - Kode Program Lengkap dan Rincian Pengujian

Coba Instrumen Kami Untuk Menghilangkan Masalah





Pada artikel ini kita akan melihat bagaimana rangkaian pembaca RFID berbasis Arduino dapat digunakan untuk mengendalikan relai, yang pada gilirannya dapat digunakan dalam aplikasi kunci pintu keamanan.

Gambaran

Jika Anda belum memeriksa artikel RFID sebelumnya, silakan periksa, itu mencakup dasar-dasar teknologi RFID .



Kami akan mengidentifikasi tag resmi menggunakan UID. Singkatnya, UID adalah nomor identifikasi unik dari tag tersebut, saat Anda memindai kartu Anda di kantor atau di mana pun, UID tersebut akan diambil dari kartu.

UID kartu disimpan di database kantor Anda dan akan mengenali pemegang kartu dan mendaftarkan kehadiran Anda.



Tag tidak hanya mentransfer UID, tetapi juga mentransfer beberapa informasi lain yang disimpan dalam tag, tag biasanya dapat menyimpan dari 1KB ke 4KB terkadang bahkan lebih.

Kami tidak akan membahas cara menyimpan informasi di tag, tetapi itu akan dibahas di artikel mendatang. Dalam posting ini kita akan menggunakan nomor UID untuk mengontrol relai ON / OFF .

Moto proyek ini adalah untuk MENGAKTIFKAN / MENONAKTIFKAN perangkat, yang terhubung dengan pengaturan yang diberikan pada pemindaian dengan tag RFID resmi.

UID kartu ditentukan dalam program dan ketika kartu resmi terdeteksi, ini akan menghidupkan relai pada pemindaian pertama dan memindainya lagi akan menonaktifkan relai.

Jika ada kartu yang tidak sah terdeteksi, itu akan memberikan pesan kesalahan pada monitor serial dan relai melanjutkan tugasnya saat ini tanpa gangguan.

Disini saat scan kartu yang diotorisasi, relay aktif / nonaktif, mekanisme ini bisa digunakan dimana saja, misalnya di: sistem penguncian pintu, dimana kartu yang diotorisasi perlu di scan untuk membuka pintu.

Bagaimana itu bekerja:

Rangkaian Kunci Keamanan RFID menggunakan Arduino

Rangkaian RFID terdiri dari LED yang menunjukkan status relai, transistor BC 548 menggerakkan relai dan dioda 1N4007 dihubungkan melintasi relai untuk menahan lonjakan tegangan tinggi pada saat switching.

Jika Anda ingin menyambungkan relai dengan tegangan lebih tinggi (9V atau 12V), Anda dapat menyambungkan suplai + Ve eksternal ke relai dan suplai –Ve ke ground pin GND arduino. Berhati-hatilah saat melanjutkan langkah ini, karena Anda dapat merusak papan jika koneksinya tidak benar.

Langkah selanjutnya setelah menyelesaikan penyiapan perangkat keras adalah mengunggah kode untuk menemukan UID tag Anda.
Sekarang unggah program yang diberikan di bawah ini ke arduino, buka monitor serial dan pindai tagnya.

Program untuk menemukan UID:

#include
#include
#define SS_PIN 10
#define RST_PIN 9
MFRC522 rfid(SS_PIN, RST_PIN)
MFRC522::MIFARE_Key key
void setup()
{
Serial.begin(9600)
SPI.begin()
rfid.PCD_Init()
}
void loop() {
if ( ! rfid.PICC_IsNewCardPresent())
return
if ( ! rfid.PICC_ReadCardSerial())
return
MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak)
if(piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&
piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
piccType != MFRC522::PICC_TYPE_MIFARE_4K)
{
Serial.println(F('Your tag is not of type MIFARE Classic, your card/tag can't be read :('))
return
}
String StrID = ''
for (byte i = 0 i <4 i ++) {
StrID +=
(rfid.uid.uidByte[i]<0x10? '0' : '')+
String(rfid.uid.uidByte[i],HEX)+
(i!=3?':' : '' )
}
StrID.toUpperCase()
Serial.print('Your card's UID: ')
Serial.println(StrID)
rfid.PICC_HaltA ()
rfid.PCD_StopCrypto1 ()
}

Output pada monitor serial (contoh):

UID kartu Anda adalah: AA: BB: CC: DD

Pada monitor serial, Anda akan melihat beberapa kode heksadesimal, yang merupakan UID dari tag tersebut. Catat, yang akan digunakan dalam program berikutnya untuk mengidentifikasi tag.
Setelah langkah ini selesai, unggah kode di bawah ini pada pengaturan yang sama.

Program untuk mengidentifikasi kartu dan relai kontrol:

//---------------Program developed by R.Girish------------//
#include
#include
#define SS_PIN 10
#define RST_PIN 9
int flag=0
int op=8
char UID[] = 'XX:XX:XX:XX' //Place your UID of your tag here.
MFRC522 rfid(SS_PIN, RST_PIN)
MFRC522::MIFARE_Key key
void setup()
{
Serial.begin(9600)
SPI.begin()
rfid.PCD_Init()
pinMode(op,OUTPUT)
}
void loop()
{
if ( ! rfid.PICC_IsNewCardPresent())
return
if ( ! rfid.PICC_ReadCardSerial())
return
MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak)
if(piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&
piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
piccType != MFRC522::PICC_TYPE_MIFARE_4K) {
Serial.println(F('Your tag is not of type MIFARE Classic, your tag can't be read :('))
return
}
String StrID = ''
for (byte i = 0 i <4 i ++)
{
StrID +=
(rfid.uid.uidByte[i]<0x10? '0' : '')+
String(rfid.uid.uidByte[i],HEX)+
(i!=3?':' : '' )
}
StrID.toUpperCase()
if(StrID!=UID)
{
Serial.println('This is an invalid tag :(')
Serial.println('***************************************')
delay(2000)
}
if (StrID==UID && flag==0)
{
flag=1
digitalWrite(op,HIGH)
Serial.println('This is a vaild tag :)')
Serial.println('Status: ON')
Serial.println('***************************************')
delay(2000)
}
else if(StrID==UID && flag==1)
{
flag=0
digitalWrite(op,LOW)
Serial.println('This is a vaild tag :)')
Serial.println('Status: OFF')
Serial.println('***************************************')
delay(2000)
}
rfid.PICC_HaltA ()
rfid.PCD_StopCrypto1 ()
}
//---------------Program developed by R.Girish------------//

char UID [] = 'XX: XX: XX: XX' // Tempatkan UID tag Anda di sini.
Ganti XX: XX: XX: XX dengan UID Anda.

Prototipe penulis yang dapat digunakan secara efektif sebagai kunci keamanan RFID yang sangat mudah untuk pintu dan brankas:

Ketika kartu resmi dipindai:

Ketika tag yang tidak sah dipindai:

Jika Anda memiliki pertanyaan tentang rangkaian kunci keamanan Arduino RFID ini, jangan ragu untuk bertanya di bawah ini di bagian komentar.




Sebelumnya: Kontrol Fase Triac menggunakan PWM Time Proportional Berikutnya: Sirkuit Lampu Keselamatan Penyeberangan Terang