RFID drošības bloķēšanas shēma - pilns programmas kods un informācija par testēšanu

Izmēģiniet Mūsu Instrumentu Problēmu Novēršanai





Šajā rakstā mēs redzēsim, kā Arduino bāzes RFID lasītāja shēmu varētu izmantot releja kontrolei, ko savukārt varētu izmantot drošības durvju bloķēšanas lietojumprogrammās.

Pārskats

Ja jūs vēl neesat pārbaudījis iepriekšējo RFID rakstu, lūdzu, turpiniet to pārbaudīt, tas aptvēra RFID tehnoloģijas pamati .



Mēs identificēsim autorizētos tagus, izmantojot UID. Īsumā UID ir taga unikālais identifikācijas numurs. Skenējot karti birojā vai jebkur citur, tas izvelk UID no kartes.

Kartes UID tiek saglabāts jūsu biroja datu bāzē, un tas atpazīs kartes īpašnieku un reģistrēs jūsu apmeklējumu.



Tagi ne tikai pārsūta UID, bet arī pārsūta kādu citu informāciju, kas tiek glabāta tagā, tagos parasti var saglabāt no 1 KB līdz 4 KB, dažreiz pat vairāk.

Mēs neapspriedīsim, kā tagā saglabāt informāciju, bet tas tiks apspriests nākamajā rakstā. Šajā ziņojumā mēs izmantosim UID numuru, lai kontrolētu relejs ON / OFF .

Šī projekta moto ir ieslēgt / izslēgt ierīci, kas ir saistīta ar norādīto iestatījumu skenēšanā ar autorizētu RFID tagu.

Kartes UID ir definēts programmā, un, kad tiek atklāta autorizēta karte, tā ieslēdz releju pirmajā skenēšanā un atkārtota skenēšana deaktivizēs releju.

Ja tiek atklāta neatļauta karte, tā sērijas monitorā izsniedz kļūdas ziņojumu un relejs bez pārtraukuma turpina pašreizējo uzdevumu.

Šeit, kad tiek skenēta autorizētā karte, relejs tiek aktivizēts / deaktivizēts, šo mehānismu var izmantot jebkur, piemēram: durvju bloķēšanas sistēmā, kur, lai atvērtu durvis, ir jāpārbauda autorizētā karte.

Kā tas strādā:

RFID drošības bloķēšanas shēma, izmantojot Arduino

RFID ķēde sastāv no gaismas diodēm, kas norāda releja statusu, BC 548 tranzistors virza releju un 1N4007 diode ir savienota pāri relejam, lai pārslēgšanas brīdī apturētu augstsprieguma smaile.

Ja vēlaties pieslēgt augstāka sprieguma nominālo releju (9V vai 12V), varat pievienot ārējo + Ve padevi relejam un –Ve padevi arduino GND tapas zemei. Veicot šo darbību, lūdzu, ievērojiet maksimālu piesardzību, jo, ja savienojumi nav pareizi, jūs varat sabojāt dēli.

Nākamais solis pēc aparatūras iestatīšanas pabeigšanas ir koda augšupielāde, lai atrastu jūsu taga UID.
Tagad augšupielādējiet tālāk norādīto programmu arduino, atveriet sērijveida monitoru un skenējiet tagu.

Programma UID atrašanai:

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

Sērijas monitora izeja (piemērs):

Jūsu kartes UID ir: AA: BB: CC: DD

Seriālajā monitorā jūs redzēsiet kādu heksadecimālo kodu, kas ir taga UID. Atzīmējiet to, kas tiks izmantots nākamajā programmā, lai identificētu tagu.
Kad šī darbība ir pabeigta, augšupielādējiet zemāk esošo kodu tajā pašā iestatījumā.

Programma kartes un vadības releja identificēšanai:

//---------------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' // Ievietojiet šeit savas taga UID.
Aizstājiet XX: XX: XX: XX ar savu UID.

Autora prototips, ko var efektīvi izmantot kā viltus RFID durvju un seifu drošības slēdzeni:

Kad tiek skenēta autorizēta karte:

Skenējot neatļautu tagu:

Ja jums ir kādi jautājumi par šo Arduino RFID drošības bloķēšanas shēmu, lūdzu, jautājiet zemāk komentāru sadaļā.




Pāri: Triac fāzes kontrole, izmantojot PWM laika proporcionālo Nākamais: apgaismota gājēju pārejas drošības gaismas ķēde