RFID-turvaluku ahel - täielik programmikood ja testimise üksikasjad

Proovige Meie Instrumenti Probleemide Kõrvaldamiseks





Selles artiklis näeme, kuidas Arduino-põhist RFID-lugeja vooluringi võiks kasutada relee juhtimiseks, mida omakorda saaks kasutada turvaukselukkude rakendustes.

Ülevaade

Kui te pole veel eelmist RFID-artiklit kontrollinud, siis palun vaadake seda, see hõlmas RFID-tehnoloogia alused .



Me tuvastame UID abil autoriseeritud sildid. Lühidalt öeldes on UID sildi kordumatu identifitseerimisnumber. Kui skannite oma kaarti kontoris või mujal, võtab see UID kaardilt välja.

Kaardi UID salvestatakse teie kontori andmebaasi ja see tunnistab kaardi omaniku ära ja registreerib teie kohaloleku.



Silt mitte ainult ei edasta UID-d, vaid edastab ka mõnda muud sildile salvestatud teavet. Sildid saavad tavaliselt salvestada vahemikus 1KB kuni 4KB, mõnikord isegi rohkem.

Me ei aruta, kuidas märgendile teavet salvestada, vaid seda arutatakse järgmises artiklis. Selles postituses kasutame UID-numbrit selle kontrollimiseks relee ON / OFF .

Selle projekti motoks on seadme sisse- ja väljalülitamine, mis on ühendatud antud seadistusega autoriseeritud RFID-märgisega skannimisel.

Kaardi UID on programmis määratletud ja kui volitatud kaart tuvastatakse, lülitab see relee sisse esimesel skannimisel ja uuesti skaneerimine deaktiveerib relee.

Kui tuvastatakse mõni volitamata kaart, annab see seeriamonitoril veateate ja relee jätkab oma praegust ülesannet ilma katkestusteta.

Kui autoriseeritud kaarti skannitakse, siis relee aktiveerub / deaktiveerub, seda mehhanismi saab kasutada kõikjal, näiteks: ukse lukustussüsteemis, kus ukse avamiseks tuleb volitatud kaarti skannida.

Kuidas see töötab:

Arduino abil kasutatav RFID-turvalukustus

RFID-vooluring koosneb LED-st, mis näitab relee olekut, BC 548 transistor juhib releed ja 1N4007 diood on relee kaudu ühendatud, et peatada kõrgepinge piik lülituse hetkel.

Kui soovite ühendada kõrgema pingega nimirelee (9V või 12V), võite ühendada välise + Ve toiteallika releega ja –Ve toite arduino GND tihvti maapinnaga. Selle sammu jätkamisel palun olge kõige ettevaatlikum, sest kui ühendused pole õiged, võite plaati kahjustada.

Järgmine samm pärast riistvara seadistamise lõpetamist on koodi üleslaadimine märgendi UID leidmiseks.
Nüüd laadige allpool antud programm arduinosse üles, avage seerianäidik ja skannige silt.

UID leidmise programm:

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

Seeriamonitori väljund (näide):

Teie kaardi UID on: AA: BB: CC: DD

Seeriamonitoril näete mõnda kuueteistkümnendsüsteemi koodi, mis on sildi UID. Pange see üles, mida kasutatakse järgmises programmis sildi tuvastamiseks.
Kui see samm on lõpetatud, laadige allolev kood üles samasse seadistusse.

Programm kaardi tuvastamiseks ja juhtimisrelee:

//---------------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' // Pange oma märgendi UID siia.
Asendage XX: XX: XX: XX oma UID-ga.

Autori prototüüp, mida saab tõhusalt kasutada lollikindla RFID-lukuna uste ja seifide jaoks:

Volitatud kaardi skannimisel:

Volitamata märgendi skannimisel tehke järgmist.

Kui teil on selle Arduino RFID turvaluku ahela kohta küsimusi, küsige palun allpool kommentaaride osas.




Eelmine: Triaci faasikontroll PWM-aja proportsionaalse abil Järgmine: Valgustatud ülekäiguraja ohutulede vooluring