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

Vyskúšajte Náš Nástroj Na Odstránenie Problémov





V tomto článku uvidíme, ako by sa mohol obvod čítačky RFID na báze Arduino použiť na riadenie relé, ktoré by sa zase dalo využiť v aplikáciách bezpečnostných dverí.

Prehľad

Ak ste si ešte nepreštudovali predchádzajúci článok o RFID, pokračujte jeho kontrolou základy technológie RFID .



Chystáme sa identifikovať autorizované značky pomocou UID. Stručne povedané, UID je jedinečné identifikačné číslo štítku, ktoré pri skenovaní karty v kancelárii alebo kdekoľvek inde extrahuje UID z karty.

UID karty je uložený v databáze vašej kancelárie a rozpozná držiteľa karty a zaregistruje vašu dochádzku.



Značka prenáša nielen UID, ale prenáša aj niektoré ďalšie informácie, ktoré sú v značke uložené. Značky môžu všeobecne ukladať od 1 kB do 4 kB niekedy dokonca aj viac.

Nebudeme diskutovať o tom, ako ukladať informácie na značku, ale bude to rozobrané v budúcom článku. V tomto príspevku budeme využívať UID číslo na kontrolu relé ZAP / VYP .

Devízou tohto projektu je ZAPNUTIE / VYPNUTIE zariadenia, ktoré je spojené s daným nastavením pri skenovaní autorizovaným RFID štítkom.

UID karty je definované v programe a pri detekcii autorizovanej karty zapne relé pri prvom skenovaní a opätovné skenovanie relé deaktivuje.

Ak sa zistí akákoľvek neoprávnená karta, vydá na sériovom monitore chybové hlásenie a relé bude bez prerušenia pokračovať v aktuálnej úlohe.

Keď sa naskenuje autorizovaná karta, relé sa aktivuje / deaktivuje, tento mechanizmus je možné použiť kdekoľvek, napríklad v: systéme zamykania dverí, kde je potrebné naskenovať autorizovanú kartu, aby sa dvere otvorili.

Ako to funguje:

Obvod bezpečnostného zámku RFID pomocou Arduina

Obvod RFID sa skladá z LED, ktoré indikujú stav relé, tranzistor BC 548 poháňa relé a cez relé je pripojená dióda 1N4007, aby sa v okamihu spínania zastavil špičkový prúd vysokého napätia.

Ak chcete pripojiť relé s vyšším napätím (9V alebo 12V), môžete pripojiť externé napájanie + Ve k relé a napájanie –Ve k zemi GND kolíka arduino. Počas tohto kroku buďte opatrní, pretože ak nie sú pripojenia v poriadku, môžete kartu poškodiť.

Ďalším krokom po dokončení nastavenia hardvéru je načítanie kódu, pomocou ktorého nájdete identifikátor UID svojej značky.
Teraz nahrajte nižšie uvedený program na arduino, otvorte sériový monitor a naskenujte značku.

Program na vyhľadanie 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ériovom monitore (príklad):

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

Na sériovom monitore uvidíte nejaký hexadecimálny kód, čo je UID značky. Poznačte si to, čo sa použije v ďalšom programe na identifikáciu značky.
Po dokončení tohto kroku nahrajte do rovnakého nastavenia nižšie uvedený kód.

Program na identifikáciu karty a ovládacieho 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 UID svojej značky.
Nahraďte XX: XX: XX: XX svojím UID.

Autorský prototyp, ktorý je možné efektívne použiť ako spoľahlivý bezpečnostný zámok RFID pre dvere a trezory:

Po naskenovaní autorizovanej karty:

Po skenovaní neoprávnenej značky:

Ak máte akékoľvek otázky týkajúce sa tohto obvodu bezpečnostného zámku Arduino RFID, neváhajte sa opýtať nižšie v sekcii komentárov.




Dvojica: Kontrola triakovej fázy pomocou PWM proporcionálneho času Ďalej: Osvetlený bezpečnostný svetelný obvod pre chodcov