RFID biztonsági zár áramkör - teljes programkód és tesztelési részletek

Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére





Ebben a cikkben meglátjuk, hogyan lehet Arduino alapú RFID olvasó áramkört használni egy relé vezérléséhez, amely viszont felhasználható a biztonsági ajtózár alkalmazásokban.

Áttekintés

Ha még nem ellenőrizte az előző RFID-cikket, kérjük, nézze meg, nézze meg a az RFID technológia alapjai .



Az UID segítségével azonosítani fogjuk az engedélyezett címkéket. Dióhéjban az UID a címke egyedi azonosítószáma, amikor az irodájában vagy bárhol máshol beolvassa a kártyáját, kivonja az UID-t a kártyából.

A kártya UID-je az Ön irodájának adatbázisába kerül, amely felismeri a kártya tulajdonosát és regisztrálja részvételét.



A címke nemcsak UID-t, hanem más, a címkében tárolt információkat is továbbít, a címkék általában 1KB-tól 4KB-ig tárolhatnak, néha még többet is.

Nem arról fogunk tárgyalni, hogy miként tároljuk az információkat a címkén, hanem egy későbbi cikkben. Ebben a bejegyzésben az UID számot fogjuk használni a relé BE / KI .

Ennek a projektnek a mottója az eszköz be- és kikapcsolása, amely az adott beállításhoz kapcsolódik az engedélyezett RFID-címkével történő szkenneléskor.

A kártya UID-jét a program határozza meg, és amikor engedélyezett kártyát észlel, az első beolvasáskor bekapcsolja a relét, és az újbóli beolvasás deaktiválja a relét.

Ha illetéktelen kártyát észlel, hibaüzenetet küld a soros monitoron, és a relé megszakítás nélkül folytatja az aktuális feladatot.

Itt, amikor a hitelesített kártyát beolvassák, a relé be- és kikapcsol, ez a mechanizmus bárhol használható, például: ajtózár rendszerben, ahol az engedélyezett kártyát be kell szkennelni az ajtó kinyitásához.

Hogyan működik:

RFID biztonsági zár áramkör az Arduino segítségével

Az RFID áramkör LED-ből áll, amelyek jelzik a relé állapotát, a BC 548 tranzisztor hajtja a relét, és az 1N4007 dióda a relén keresztül csatlakozik a nagyfeszültségű tüske leállításához a kapcsolás pillanatában.

Ha magasabb feszültségű névleges relét (9V vagy 12V) szeretne csatlakoztatni, csatlakoztathatja a külső + Ve tápellátást a reléhez és –Ve tápfeszültséget az arduino GND tűjének földjéhez. Kérjük, hogy ennek a lépésnek a végrehajtása során vigyázzon, mert károsíthatja a táblát, ha a csatlakozások nem megfelelőek.

A hardverbeállítás befejezése után a következő lépés a kód feltöltése a címke UID-jének megkereséséhez.
Most töltse fel az alább megadott programot az arduino-ra, nyissa meg a soros monitort és szkennelje be a címkét.

Program az UID megtalálásához:

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

A soros monitor kimenete (példa):

A kártya UID azonosítója: AA: BB: CC: DD

A soros monitoron látni fog néhány hexadecimális kódot, amely a címke UID-je. Jegyezze fel, amelyet a következő program fog használni a címke azonosítására.
A lépés befejezése után töltse fel az alábbi kódot ugyanarra a beállításra.

Program a kártya és a vezérlő relé azonosítására:

//---------------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' // Helyezze ide a címke UID-jét.
Cserélje le a XX: XX: XX: XX szót az UID-re.

A szerző prototípusa, amely hatékonyan használható bolondbiztos RFID biztonsági zárként ajtókhoz és széfekhez:

Ha egy hitelesített kártyát beolvasnak:

Ha engedély nélküli címkét vizsgál be:

Ha bármilyen kérdése van ezzel az Arduino RFID biztonsági zár áramkörével kapcsolatban, kérjük, kérdezze meg alább a megjegyzés részben.




Előző: Triac fázisszabályozás a PWM időarányos alkalmazásával Következő: Világító crosswalk biztonsági fényáramkör