RFID krug sigurnosne brave - puni programski kod i detalji ispitivanja

RFID krug sigurnosne brave - puni programski kod i detalji ispitivanja

U ovom ćemo članku vidjeti kako bi se krug RFID čitača zasnovan na Arduinu mogao koristiti za upravljanje relejem, što bi se pak moglo koristiti u aplikacijama sigurnosnih brava.



Pregled

Ako još niste provjerili prethodni članak o RFID-u, samo naprijed provjerite, on je obuhvatio osnove RFID tehnologije .

Odobrene oznake identificirat ćemo pomoću UID-a. Ukratko, UID je jedinstveni identifikacijski broj oznake, kada skenirate karticu u uredu ili bilo gdje drugdje, on izvlači UID s kartice.





UID kartice sprema se u bazu podataka vašeg ureda i prepoznat će vlasnika kartice i registrirati vaše prisustvo.

Oznaka ne samo da prenosi UID, već također prenosi i neke druge podatke koji su pohranjeni u oznaci, oznake obično mogu pohraniti od 1 KB do 4 KB ponekad i više.



Nećemo raspravljati o načinu pohrane podataka na oznaku, ali o tome će se raspravljati u budućem članku. U ovom postu koristit ćemo UID broj za kontrolu relej ON / OFF .

Moto ovog projekta je UKLJUČIVANJE / ISKLJUČIVANJE uređaja koji je povezan s danim postavkama za skeniranje s ovlaštenom RFID oznakom.

UID kartice definiran je u programu i kad se prepozna autorizirana kartica, uključit će relej pri prvom skeniranju, a ponovno skeniranje deaktivirat će relej.

Ako se otkrije bilo koja neovlaštena kartica, ona će izdati poruku o pogrešci na serijskom monitoru i relej će nastaviti svoj trenutni zadatak bez ikakvih prekida.

Ovdje se prilikom skeniranja ovlaštene kartice relej aktivira / deaktivira, ovaj se mehanizam može koristiti bilo gdje, na primjer u: sustavu zaključavanja vrata, gdje treba skenirati ovlaštenu karticu da bi se vrata otvorila.

Kako radi:

RFID krug sigurnosne brave pomoću Arduina

RFID krug sastoji se od LED dioda koje ukazuju na status releja, BC 548 tranzistor pokreće relej i 1N4007 dioda je spojena preko releja kako bi zaustavila visokonaponski skok u trenutku prebacivanja.

Ako želite spojiti relej s višim naponom (9V ili 12V), na relej možete spojiti vanjski napajanje + Ve i –Ve napajanje na masu arduinoova GND pina. Pripazite na maksimalni oprez tijekom postupka, jer možete oštetiti ploču ako veze nisu ispravne.

Sljedeći korak nakon završetka postavljanja hardvera je prijenos koda za pronalaženje UID-a vaše oznake.
Sada prenesite donji program na arduino, otvorite serijski monitor i skenirajte oznaku.

Program za pronalaženje UID-a:

#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 ()
}

Izlaz na serijskom monitoru (primjer):

UID vaše kartice je: AA: BB: CC: DD

Na serijskom monitoru vidjet ćete neki heksadecimalni kôd, koji je UID oznake. Zabilježite to, što će se koristiti u sljedećem programu za prepoznavanje oznake.
Nakon što je ovaj korak završen, prenesite donji kod na istu postavku.

Program za prepoznavanje kartice i upravljačkog releja:

//---------------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' // Ovdje stavite svoj UID svoje oznake.
Zamijenite XX: XX: XX: XX svojim UID-om.

Autorski prototip koji se može učinkovito koristiti kao sigurnosna RFID brava za vrata i sefove:

Kada se skenira ovlaštena kartica:

Kada se skenira neovlaštena oznaka:

Ako imate pitanja u vezi s ovim krugom sigurnosne brave Arduino RFID, slobodno pitajte u nastavku u odjeljku za komentare.




Prethodno: Kontrola faze trijaka pomoću proporcionalnog vremena PWM-a Dalje: Osvijetljeni sigurnosni svjetlosni krug za pješački prijelaz