RFID Security Lock Circuit - Full programkod och testdetaljer

Prova Vårt Instrument För Att Eliminera Problem





I den här artikeln kommer vi att se hur en Arduino-baserad RFID-läsarkrets kan användas för att styra ett relä, vilket i sin tur kan användas i säkerhetsdörrlåsapplikationer.

Översikt

Om du inte har kontrollerat den tidigare RFID-artikeln, kolla in den, den täckte grunderna för RFID-teknik .



Vi kommer att identifiera de auktoriserade taggarna med hjälp av UID. I ett nötskal är UID taggens unika identifieringsnummer, när du skannar ditt kort på ditt kontor eller någon annanstans extraherar det UID från kortet.

Kortets UID sparas i ditt kontors databas och det känner igen kortinnehavaren och registrerar din närvaro.



Taggen överför inte bara UID utan överför också annan information som lagras i taggen, taggarna kan i allmänhet lagra från 1KB till 4KB ibland ännu mer.

Vi kommer inte att diskutera hur man lagrar information på taggen, men det kommer att diskuteras i en framtida artikel. I det här inlägget ska vi använda UID-numret för att styra relä PÅ / AV .

Mottot för detta projekt är att slå PÅ / AV enheten, som är ansluten till den givna installationen vid skanning med auktoriserad RFID-tagg.

Kortets UID definieras i programmet och när ett auktoriserat kort upptäcks slår det på reläet vid första skanningen och skanningen igen kommer att inaktivera reläet.

Om något obehörigt kort upptäcks kommer det att avge felmeddelande på seriell bildskärm och reläet fortsätter sin nuvarande uppgift utan avbrott.

Här när det auktoriserade kortet skannas aktiveras / avaktiveras reläet, denna mekanism kan användas var som helst, till exempel i: dörrlåssystem, där auktoriserat kort måste skannas för att öppna dörren.

Hur det fungerar:

RFID-säkerhetslåskrets med Arduino

RFID-kretsen består av lysdioder som indikerar reläets status, BC 548-transistorn driver reläet och 1N4007-dioden är ansluten över reläet för att stoppa högspänningspiken vid tidpunkten för omkopplingen.

Om du vill ansluta relä med högre spänning (9V eller 12V) kan du ansluta extern + Ve-matning till relä och –Ve-matning till jord på arduinos GND-stift. Var som mest försiktig när du fortsätter detta steg, eftersom du kan skada kortet om anslutningarna inte är korrekta.

Nästa steg efter att ha slutfört hårdvarukonfigurationen är att ladda upp koden för att hitta UID för din tagg.
Ladda nu upp nedanstående program till arduino, öppna seriell bildskärm och skanna taggen.

Program för att hitta 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 ()
}

Utgången på seriell bildskärm (exempel):

Ditt korts UID är: AA: BB: CC: DD

På den seriella bildskärmen kommer du att se en hexadecimal kod, som är UID för taggen. Anteckna det, vilket kommer att användas i nästa program för att identifiera taggen.
När detta steg är klart laddar du upp koden nedan i samma inställning.

Program för att identifiera kort och styrrelä:

//---------------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' // Placera din UID för din tagg här.
Byt ut XX: XX: XX: XX med din UID.

Författarens prototyp som effektivt kan användas som ett idiotsäkert RFID-säkerhetslås för dörrar och kassaskåp:

När ett auktoriserat kort skannas:

När en obehörig tagg skannas:

Om du har några frågor angående denna Arduino RFID-säkerhetslåskrets är du välkommen att ställa nedan i kommentarsektionen.




Tidigare: Triac-faskontroll med PWM Time Proportional Nästa: Upplyst Crosswalk Safety Light Circuit