आरएफआईडी सुरक्षा लॉक सर्किट - पूर्ण कार्यक्रम कोड और परीक्षण विवरण

समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें





इस लेख में हम देखेंगे कि एक रिले को नियंत्रित करने के लिए एक Arduino आधारित RFID रीडर सर्किट का उपयोग कैसे किया जा सकता है, जो बदले में सुरक्षा द्वार लॉक अनुप्रयोगों में उपयोग किया जा सकता है।

अवलोकन

यदि आपने अभी तक पिछले RFID लेख की जाँच नहीं की है, तो कृपया इसे देखें RFID तकनीक की मूल बातें ।



हम यूआईडी का उपयोग करके अधिकृत टैग की पहचान करने जा रहे हैं। संक्षेप में UID टैग की विशिष्ट पहचान संख्या होती है, जब आप अपने कार्ड को अपने कार्यालय में या कहीं और स्कैन करते हैं, तो यह कार्ड से UID निकालता है।

कार्ड का यूआईडी आपके कार्यालय के डेटाबेस पर सहेजा जाता है और यह कार्ड धारक को पहचान लेगा और आपकी उपस्थिति दर्ज कर देगा।



टैग न केवल यूआईडी को स्थानांतरित करता है, बल्कि कुछ अन्य जानकारी को भी स्थानांतरित करता है, जो टैग में संग्रहीत है, टैग आम तौर पर 1KB से 4KB तक स्टोर कर सकते हैं कभी-कभी और भी।

हमें टैग पर जानकारी संग्रहीत करने के बारे में चर्चा नहीं करनी चाहिए लेकिन, भविष्य के लेख में इस पर चर्चा की जाएगी। इस पोस्ट में हम यूआईडी नंबर को नियंत्रित करने के लिए उपयोग करने जा रहे हैं रिले पर / बंद ।

इस परियोजना का आदर्श उपकरण चालू / बंद करना है, जो अधिकृत आरएफआईडी टैग के साथ स्कैनिंग पर दिए गए सेटअप से जुड़ा है।

कार्ड के यूआईडी को कार्यक्रम में परिभाषित किया गया है और जब अधिकृत कार्ड का पता चला है, तो यह पहली स्कैन पर रिले को चालू करेगा और इसे फिर से स्कैन करके रिले को निष्क्रिय कर देगा।

यदि किसी भी अनधिकृत कार्ड का पता चला है, तो यह धारावाहिक मॉनिटर पर त्रुटि संदेश देगा और रिले बिना किसी रुकावट के अपने वर्तमान कार्य को जारी रखेगा।

यहां जब अधिकृत कार्ड को स्कैन किया जाता है, तो रिले सक्रिय / निष्क्रिय हो जाता है, इस तंत्र का उपयोग कहीं भी किया जा सकता है, उदाहरण के लिए: दरवाजा लॉकिंग सिस्टम, जहां अधिकृत कार्ड को दरवाजा खोलने के लिए स्कैन करने की आवश्यकता होती है।

यह काम किस प्रकार करता है:

Arduino का उपयोग करके RFID सुरक्षा लॉक सर्किट

आरएफआईडी सर्किट में एलईडी होता है जो रिले की स्थिति को इंगित करता है, बीसी 548 ट्रांजिस्टर रिले को ड्राइव करता है और स्विचिंग के समय उच्च वोल्टेज स्पाइक को गिरफ्तार करने के लिए रिले के पार 1N4007 डायोड जुड़ा हुआ है।

यदि आप उच्च वोल्टेज रेटेड रिले (9V या 12V) से कनेक्ट करना चाहते हैं, तो आप arduino के GND पिन के आधार पर रिले और –Ve आपूर्ति के लिए बाहरी + Ve आपूर्ति कनेक्ट कर सकते हैं। कृपया इस कदम को आगे बढ़ाते हुए ध्यान रखें, क्योंकि कनेक्शन सही न होने पर आप बोर्ड को नुकसान पहुंचा सकते हैं।

हार्डवेयर सेटअप पूरा करने के बाद अगला चरण यूआईडी टैग खोजने के लिए कोड अपलोड करना है।
अब नीचे दिए गए प्रोग्राम को arduino पर अपलोड करें, सीरियल मॉनिटर खोलें और टैग को स्कैन करें।

यूआईडी खोजने का कार्यक्रम:

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

सीरियल मॉनीटर पर आउटपुट (उदाहरण):

आपके कार्ड का UID है: AA: BB: CC: DD

सीरियल मॉनिटर पर, आपको कुछ हेक्साडेसिमल कोड दिखाई देंगे, जो टैग का यूआईडी है। इसे नोट करें, जिसका उपयोग अगले कार्यक्रम में टैग की पहचान करने के लिए किया जाएगा।
इस चरण के पूरा होने के बाद, नीचे दिए गए कोड को उसी सेटअप पर अपलोड करें।

कार्ड की पहचान करने और रिले को नियंत्रित करने का कार्यक्रम:

//---------------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------------//

UID [] = 'XX: XX: XX: XX' // अपने यूआईडी को अपने टैग के यहां रखें।
XX: XX: XX: XX को अपने यूआईडी से बदलें।

लेखक का प्रोटोटाइप जो प्रभावी रूप से दरवाजे और तिजोरियों के लिए एक फुलप्रूफ आरएफआईडी सुरक्षा लॉक के रूप में इस्तेमाल किया जा सकता है:

जब एक अधिकृत कार्ड स्कैन किया जाता है:

जब एक अनधिकृत टैग स्कैन किया जाता है:

यदि आपके पास इस Arduino RFID सुरक्षा लॉक सर्किट के बारे में कोई प्रश्न हैं, तो कृपया नीचे टिप्पणी अनुभाग में पूछें।




पिछला: PWM समय आनुपातिक का उपयोग कर Triac चरण नियंत्रण अगला: प्रबुद्ध क्रॉस्वाक सेफ्टी लाइट सर्किट