Obvod bezpečnostního zámku RFID - celý programový kód a podrobnosti o testování

Vyzkoušejte Náš Nástroj Pro Odstranění Problémů





V tomto článku uvidíme, jak by mohl být obvod čtečky RFID založený na Arduinu použit k ovládání relé, což by zase mohlo být použito v aplikacích bezpečnostních dveří.

Přehled

Pokud jste dosud nezkontrolovali předchozí článek o RFID, pokračujte prosím jeho kontrolou, zahrnoval základy technologie RFID .



Chystáme se identifikovat autorizované značky pomocí UID. Stručně řečeno, UID je jedinečné identifikační číslo štítku, když skenujete svou kartu v kanceláři nebo kdekoli jinde, extrahuje UID z karty.

UID karty je uložen v databázi vaší kanceláře a rozpozná držitele karty a zaregistruje vaši docházku.



Značka nejen přenáší UID, ale také přenáší některé další informace, které jsou ve značce uloženy, značky mohou obecně ukládat od 1 kB do 4KB někdy i více.

Nebudeme diskutovat o tom, jak ukládat informace na značku, ale bude o nich pojednáno v budoucím článku. V tomto příspěvku použijeme číslo UID k ovládání relé ZAP / VYP .

Mottem tohoto projektu je zapnutí / vypnutí zařízení, které je spojeno s daným nastavením při skenování s autorizovaným RFID tagem.

UID karty je definováno v programu a když je detekována autorizovaná karta, zapne relé při prvním skenování a opětovným skenováním relé deaktivuje.

Pokud je detekována neautorizovaná karta, vydá na sériovém monitoru chybovou zprávu a relé bude pokračovat v aktuálním úkolu bez jakéhokoli přerušení.

Zde, když je naskenována autorizovaná karta, relé se aktivuje / deaktivuje, lze tento mechanismus použít kdekoli, například v: systému zamykání dveří, kde je třeba naskenovat autorizovanou kartu, aby se otevřely dveře.

Jak to funguje:

Obvod RFID bezpečnostního zámku pomocí Arduina

Obvod RFID se skládá z LED, které indikují stav relé, tranzistor BC 548 řídí relé a přes relé je připojena dioda 1N4007, aby v okamžiku přepnutí zastavila špičku vysokého napětí.

Pokud chcete připojit relé s vyšším napětím (9V nebo 12V), můžete připojit externí napájení + Ve k relé a napájení –Ve k zemi GND pinu arduina. Při provádění tohoto kroku buďte maximálně opatrní, protože pokud připojení není v pořádku, můžete desku poškodit.

Dalším krokem po dokončení nastavení hardwaru je nahrání kódu a vyhledání UID vaší značky.
Nyní nahrajte níže uvedený program na arduino, otevřete sériový monitor a naskenujte značku.

Program pro nalezení 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 ()
}

Výstup na sériovém monitoru (příklad):

UID vaší karty je: AA: BB: CC: DD

Na sériovém monitoru uvidíte nějaký hexadecimální kód, což je UID tagu. Poznamenejte si to, které bude použito v dalším programu k identifikaci značky.
Po dokončení tohoto kroku nahrajte níže uvedený kód do stejného nastavení.

Program pro identifikaci karty a řídicího relé:

//---------------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' // Sem vložte své UID tagu.
Nahraďte XX: XX: XX: XX svým UID.

Autorův prototyp, který lze účinně použít jako spolehlivý bezpečnostní zámek RFID pro dveře a trezory:

Při skenování autorizované karty:

Při skenování neoprávněného tagu:

Máte-li jakékoli dotazy týkající se tohoto obvodu bezpečnostního zámku Arduino RFID, neváhejte se zeptat níže v sekci komentářů.




Předchozí: Řízení triakové fáze pomocí PWM proporcionálního času Další: Osvětlený bezpečnostní světelný obvod pro chodce