আরএফআইডি সুরক্ষা লক সার্কিট - সম্পূর্ণ প্রোগ্রাম কোড এবং পরীক্ষার বিশদ

আরএফআইডি সুরক্ষা লক সার্কিট - সম্পূর্ণ প্রোগ্রাম কোড এবং পরীক্ষার বিশদ

এই নিবন্ধে আমরা দেখব কীভাবে একটি আরডিনো ভিত্তিক আরএফআইডি রিডার সার্কিট রিলে নিয়ন্ত্রণের জন্য ব্যবহার করা যেতে পারে, যা ঘুরেফিরে সুরক্ষা দরজা লক অ্যাপ্লিকেশনগুলিতে ব্যবহার করা যেতে পারে।



ওভারভিউ

আপনি যদি পূর্বের আরএফআইডি নিবন্ধটি এখনও চেক না করে থাকেন তবে দয়া করে এটি পরীক্ষা করে দেখুন, এটিটি আচ্ছাদিত আরএফআইডি প্রযুক্তির বুনিয়াদি ।

আমরা ইউআইডি ব্যবহার করে অনুমোদিত ট্যাগগুলি সনাক্ত করতে যাচ্ছি। সংক্ষেপে ইউআইডি হ'ল ট্যাগের অনন্য পরিচয় নম্বর, আপনি যখন নিজের অফিসে বা অন্য কোথাও কার্ডটি স্ক্যান করেন, তখন এটি কার্ড থেকে ইউআইডি বের করে।





কার্ডের ইউআইডি আপনার অফিসের ডেটাবেজে সংরক্ষণ করা হবে এবং এটি কার্ডধারাকে স্বীকৃতি দেবে এবং আপনার উপস্থিতি নিবন্ধ করবে।

ট্যাগটি কেবল ইউআইডি স্থানান্তর করে না, তবে ট্যাগে সঞ্চিত কিছু অন্যান্য তথ্যও স্থানান্তর করে, ট্যাগগুলি সাধারণত 1KB থেকে 4KB পর্যন্ত কখনও কখনও আরও বেশি সঞ্চয় করতে পারে।



আমরা ট্যাগটিতে তথ্য কীভাবে সংরক্ষণ করব তা নিয়ে আমরা আলোচনা করব না তবে এটি ভবিষ্যতের নিবন্ধে আলোচনা করা হবে। এই পোস্টে আমরা ইউআইডি নম্বর ব্যবহার করতে যাচ্ছি নিয়ন্ত্রণ করতে রিলে চালু / বন্ধ ।

এই প্রকল্পের লক্ষ্যটি হল ডিভাইসটি চালু / বন্ধ করা, যা অনুমোদিত আরএফআইডি ট্যাগ দিয়ে স্ক্যান করার জন্য প্রদত্ত সেটআপটির সাথে সংযুক্ত।

কার্ডের ইউআইডি প্রোগ্রামে সংজ্ঞায়িত করা হয় এবং অনুমোদিত কার্ড সনাক্ত করা গেলে এটি প্রথম স্ক্যানের রিলে চালু করবে এবং এটি আবার স্ক্যান করলে রিলে নিষ্ক্রিয় হবে।

যদি কোনও অননুমোদিত কার্ড সনাক্ত হয় তবে এটি সিরিয়াল মনিটরে ত্রুটি বার্তা দেবে এবং রিলে কোনও বাধা ছাড়াই বর্তমান কাজটি চালিয়ে যাবে।

এখানে যখন অনুমোদিত কার্ডটি স্ক্যান করা হয়, রিলে সক্রিয় / নিষ্ক্রিয় হয়, এই প্রক্রিয়াটি যে কোনও জায়গায় ব্যবহার করা যেতে পারে, উদাহরণস্বরূপ: ডোর লকিং সিস্টেম, যেখানে দরজা খোলার জন্য অনুমোদিত কার্ডটি স্ক্যান করা দরকার।

কিভাবে এটা কাজ করে:

আরডুইনো ব্যবহার করে আরএফআইডি সুরক্ষা লক সার্কিট

আরএফআইডি সার্কিটটিতে এলইডি রয়েছে যা রিলেটির অবস্থা নির্দেশ করে, বিসি 548 ট্রানজিস্টর রিলে ড্রাইভ করে এবং 1N4007 ডায়োড রিচ জুড়ে সংযুক্ত থাকে যাতে স্যুইচিংয়ের সাথে সাথে হাই ভোল্টেজ স্পাইকটি গ্রেপ্তার করা যায়।

আপনি যদি উচ্চতর ভোল্টেজ রেটযুক্ত রিলে (9 ভি বা 12 ভি) সংযোগ করতে চান তবে আপনি রিলে বাহ্যিক + Ve সরবরাহ এবং আরডুইনোর জিএনডি পিনের ভিত্তিতে সরবরাহ সরবরাহকে সংযুক্ত করতে পারেন। এই পদক্ষেপটি এগিয়ে যাওয়ার সময় দয়া করে সর্বাধিক যত্ন নিন, কারণ সংযোগগুলি সঠিক না হলে আপনি বোর্ডের ক্ষতি করতে পারেন।

হার্ডওয়্যার সেটআপ শেষ করার পরের পদক্ষেপটি আপনার ট্যাগের ইউআইডি সন্ধানের জন্য কোড আপলোড করা।
এখন নীচের প্রদত্ত প্রোগ্রামটি আরডুইনোতে আপলোড করুন, সিরিয়াল মনিটর খুলুন এবং ট্যাগটি স্ক্যান করুন।

ইউআইডি সন্ধানের জন্য প্রোগ্রাম:

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

সিরিয়াল মনিটরে আউটপুট (উদাহরণ):

আপনার কার্ডের ইউআইডি হ'ল: এএ: বিবি: সিসি: ডিডি

সিরিয়াল মনিটরে আপনি কিছু হেক্সাডেসিমাল কোড দেখতে পাবেন যা ট্যাগটির ইউআইডি। এটি নোট করুন, যা ট্যাগটি সনাক্ত করতে পরবর্তী প্রোগ্রামে ব্যবহৃত হবে।
এই পদক্ষেপটি শেষ হওয়ার পরে, নীচের কোডটি একই সেটআপে আপলোড করুন।

কার্ডটি সনাক্ত করতে এবং রিলে নিয়ন্ত্রণ করার প্রোগ্রাম:

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

চর ইউআইডি [] = 'XX: XX: XX: XX' // আপনার ট্যাগের ইউআইডি এখানে রাখুন।
আপনার ইউআইডি সহ XX: XX: XX: XX প্রতিস্থাপন করুন।

লেখকের প্রোটোটাইপ যা কার্যকরভাবে দরজা এবং সেফগুলির জন্য একটি নির্বোধ আরএফআইডি সুরক্ষা লক হিসাবে ব্যবহার করা যেতে পারে:

যখন কোনও অনুমোদিত কার্ড স্ক্যান করা হয়:

যখন কোনও অননুমোদিত ট্যাগ স্ক্যান করা হয়:

এই আরডুইনো আরএফআইডি সুরক্ষা লক সার্কিট সম্পর্কে আপনার যদি কোনও প্রশ্ন থাকে তবে দয়া করে মন্তব্য বিভাগে নিচে নির্দ্বিধায় জিজ্ঞাসা করুন




পূর্ববর্তী: ট্রায়াক ফেজ নিয়ন্ত্রণ পিডাব্লুএমএম সময় আনুষাঙ্গিক ব্যবহার করে পরবর্তী: আলোকিত ক্রসওয়াক নিরাপত্তা লাইট সার্কিট