Vezje varnostne ključavnice RFID - celotna programska koda in podrobnosti o preskušanju

Preizkusite Naš Instrument Za Odpravo Težav





V tem članku bomo videli, kako se lahko vezje čitalnika RFID, ki temelji na Arduinu, uporablja za nadzor releja, ki pa se lahko uporablja v aplikacijah varnostnih ključavnic.

Pregled

Če še niste preverili prejšnjega članka o RFID, ga poglejte, poglejte osnove RFID tehnologije .



Pooblaščene oznake bomo identificirali z uporabo UID. Na kratko UID je enolična identifikacijska številka oznake, ko kartico optično preberete v pisarni ali kjer koli drugje, izvleče UID s kartice.

UID kartice se shrani v zbirko podatkov vaše pisarne in bo prepoznala imetnika kartice in prijavila vašo udeležbo.



Oznaka ne prenaša samo UID, ampak tudi nekatere druge informacije, ki so shranjene v oznaki. Oznake lahko na splošno shranijo od 1KB do 4KB, včasih celo več.

Ne bomo razpravljali o tem, kako shraniti podatke na oznako, ampak o tem bomo govorili v prihodnjem članku. V tej objavi bomo uporabili številko UID za nadzor rele ON / OFF .

Moto tega projekta je VKLOP / IZKLOP naprave, ki je povezana z dano nastavitvijo za skeniranje s pooblaščeno RFID oznako.

UID kartice je določen v programu in ko zazna pooblaščeno kartico, bo vklopila rele ob prvem skeniranju, ponovno skeniranje pa deaktivira rele.

Če zazna katero koli nepooblaščeno kartico, bo na serijskem monitorju izdala sporočilo o napaki in rele bo brez prekinitve nadaljeval svojo trenutno nalogo.

Ko se pooblaščena kartica skenira, se rele vklopi / izklopi, ta mehanizem se lahko uporablja kjer koli, na primer v: sistemu za zaklepanje vrat, kjer je treba pooblaščeno kartico skenirati, da odpre vrata.

Kako deluje:

Vezje varnostne ključavnice RFID z uporabo Arduina

Vezje RFID je sestavljeno iz LED, ki označujejo stanje releja, tranzistor BC 548 poganja rele in dioda 1N4007 je priključena čez rele, da zaustavi visokonapetostni konico v trenutku preklopa.

Če želite priključiti rele z višjo napetostjo (9 V ali 12 V), lahko na rele priključite zunanji napajalnik + Ve in –Ve na ozemljitev arduinovega zatiča GND. Pri nadaljevanju tega koraka bodite previdni, saj lahko poškodujete ploščo, če povezave niso pravilne.

Naslednji korak po dokončanju nastavitve strojne opreme je nalaganje kode, da poiščete UID vaše oznake.
Zdaj naložite spodnji program na arduino, odprite serijski monitor in skenirajte oznako.

Program za iskanje 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 ()
}

Izhod na serijskem monitorju (primer):

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

Na serijskem monitorju boste videli šestnajstiško kodo, ki je UID oznake. Zapišite si to, kar bo uporabljeno v naslednjem programu za prepoznavanje oznake.
Po končanem koraku naložite spodnjo kodo v isto nastavitev.

Program za identifikacijo kartice in krmilnega 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' // Tukaj postavite svoj UID svoje oznake.
Zamenjajte XX: XX: XX: XX z vašim UID.

Avtorski prototip, ki ga lahko učinkovito uporabimo kot varno RFID varnostno ključavnico za vrata in sefe:

Ko je pooblaščena kartica optično prebrana:

Ko se skenira nepooblaščena oznaka:

Če imate kakršna koli vprašanja v zvezi s tem vezjem varnostne ključavnice Arduino RFID, vas prosimo, da vprašate spodaj v oddelku za komentarje.




Prejšnji: Nadzor faze triaka s sorazmernim časom PWM Naprej: Osvetljeni prehod za varnostne luči