RFID Security Lock Circuit - Full programkode og testdetaljer

Prøv Instrumentet Vårt For Å Eliminere Problemer





I denne artikkelen vil vi se hvordan en Arduino-basert RFID-leserkrets kan brukes til å kontrollere et relé, som igjen kan brukes i sikkerhetsdørlåsapplikasjoner.

Oversikt

Hvis du ennå ikke har sjekket den forrige RFID-artikkelen, kan du sjekke den ut, den dekket grunnleggende om RFID-teknologi .



Vi skal identifisere de autoriserte kodene ved hjelp av UID. I et nøtteskall er UID det unike identifikasjonsnummeret til koden, når du skanner kortet ditt på kontoret eller andre steder, trekker det ut UID fra kortet.

UID på kortet lagres i databasen til kontoret ditt, og det vil gjenkjenne kortholderen og registrere oppmøtet ditt.



Taggen overfører ikke bare UID, men overfører også annen informasjon som er lagret i taggen, kodene kan vanligvis lagres fra 1KB til 4KB noen ganger enda mer.

Vi vil ikke diskutere hvordan du lagrer informasjon på koden, men den vil bli diskutert i en fremtidig artikkel. I dette innlegget skal vi bruke UID-nummeret til å kontrollere relé PÅ / AV .

Mottoet for dette prosjektet er å slå PÅ / AV enheten, som er koblet til det gitte oppsettet ved skanning med autorisert RFID-tag.

Kortets UID er definert i programmet, og når autorisert kort oppdages, vil det slå på reléet ved første skanning, og skanning av det igjen vil deaktivere reléet.

Hvis det oppdages et uautorisert kort, vil det gi feilmelding på seriell skjerm og videresende fortsette sin nåværende oppgave uten avbrudd.

Her når det autoriserte kortet skannes, aktiveres / deaktiveres reléet, denne mekanismen kan brukes hvor som helst, for eksempel i: dørlåsesystem, der autoriserte kort må skannes for å åpne døren.

Hvordan det fungerer:

RFID Security Lock Circuit ved hjelp av Arduino

RFID-kretsen består av LED som indikerer statusen til reléet, BC 548-transistoren driver reléet og 1N4007-dioden er koblet over reléet for å stoppe høyspenningsspissen i øyeblikkelig bytte.

Hvis du vil koble til relé med høyere spenning (9V eller 12V), kan du koble til ekstern + Ve-forsyning til relé og –Ve til jord til arduino’s GND-pin. Vær forsiktig når du fortsetter dette trinnet, da du kan skade kortet hvis tilkoblingene ikke er korrekte.

Neste trinn etter å ha fullført maskinvareoppsettet er å laste opp koden for å finne UID for taggen din.
Last nå opp programmet nedenfor til arduino, åpne seriell skjerm og skann taggen.

Program for å finne 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 ()
}

Utgangen på seriell skjerm (eksempel):

Kortets UID er: AA: BB: CC: DD

På den serielle skjermen vil du se noen heksadesimal kode, som er UID for koden. Noter det, som vil bli brukt i neste program for å identifisere koden.
Når dette trinnet er fullført, laster du opp koden nedenfor i samme oppsett.

Program for å identifisere kortet og kontrollreléet:

//---------------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' // Plasser din UID for taggen din her.
Erstatt XX: XX: XX: XX med UID.

Forfatterens prototype som effektivt kan brukes som en idiotsikker RFID-sikkerhetslås for dører og safer:

Når et autorisert kort skannes:

Når en uautorisert tag skannes:

Hvis du har spørsmål angående denne Arduino RFID-sikkerhetslåskretsen, er du velkommen til å spørre nedenfor i kommentarseksjonen.




Forrige: Triac Phase Control ved bruk av PWM Time Proportional Neste: Illuminated Crosswalk Safety Light Circuit