من به تازگی خواننده RFID RC522 خود را دریافت کردم و این سیستم کنترل دسترسی آردوینو ساده را ساختم که از خواننده، زنگ هشدار برای زنگ هشدار و یک سپر رله برای سیستم امنیتی استفاده می کند. از رله می توان برای باز کردن قفل درب استفاده کرد و در صورت نیاز به زنگ بلندتر، می توانید زنگ کوچک را با یک آژیر با قدرت بالا جایگزین کنید.
من در مورد خواننده RFID صحبت نمی کنم زیرا می توانید اطلاعات زیادی در مورد آن در وب پیدا کنید، اما در مورد طرح آردوینو صحبت خواهم کرد که بسیار مهم است. بنابراین، بیایید با تماشای این ویدیوی 7 دقیقه ای شروع کنیم تا کل سیستم را در عمل مشاهده کنیم:
/** منبع: http://www.electroschematics.com/11301/arduino-rfid-reader-rc522-access-control-system/
- * یک کارت را با استفاده از یک خواننده mfrc522 در رابط SPI خود بخوانید
- * طرح پین باید به صورت زیر باشد (در آردوینو Uno):
- * MOSI: پین 11 / ICSP-4
- * MISO: پین 12 / ICSP-1
- * SCK: پین 13 / ISCP-3
- * SS: پین 10
- * RST: پین 9
- */
-
- #include <SPI.h>
- #include <RFID.h>
- #define SS_PIN 10
- #define RST_PIN 9
- RFID rfid (SS_PIN، RST_PIN)؛
- int startAlarm = false;
- int resetAlarm = 2;
- رله int = 7;
- زنگ int = 8;
- int serNum[5];
- کارت های بین المللی[][5] = {
- {209,128,106,69,126}، // کارت 1
- {101,220,213,229,137} // کارت 2
- };
- دسترسی bool = نادرست;
- void setup(){
- Serial.begin(9600);
- SPI.begin();
- rfid.init();
- pinMode (resetAlarm، INPUT)؛
- pinMode (رله، OUTPUT)؛
- pinMode (زنگ هشدار، OUTPUT)؛
- DigitalWrite (رله، HIGH)؛ // یا LOW اگر یک رله معمولی دارید
- attachInterrupt(0، reset_alarm، LOW);
- }
- حلقه خالی(){
- if(rfid.isCard()){
- if(rfid.readCardSerial()){
- Serial.print(rfid.serNum[0]);
- Serial.print("");
- Serial.print(rfid.serNum[1]);
- Serial.print("");
- Serial.print(rfid.serNum[2]);
- Serial.print("");
- Serial.print(rfid.serNum[3]);
- Serial.print("");
- Serial.print(rfid.serNum[4]);
- Serial.println("");
- for(int x = 0; x < sizeof(cards); x++){
- for(int i = 0; i < sizeof(rfid.serNum); i++ ){
- if(rfid.serNum[i] != cards[x][i]) {
- دسترسی = نادرست;
- زنگ تفريح؛
- }دیگر {
- دسترسی = درست;
- }
- }
- if(access) break;
- }
- }
- اگر (دسترسی){
- Serial.println ("خوش آمدید!");
- startAlarm = false;
- DigitalWrite (رله، LOW)؛ // HIGH با رله معمولی
- }دیگر {
- Serial.println ("مجاز نیست!");
- startAlarm = true;
- DigitalWrite (رله، HIGH)؛ // LOW با رله معمولی
- }
- }
- if(startAlarm) {
- DigitalWrite (زنگ هشدار، HIGH)؛
- }دیگر {
- DigitalWrite (زنگ هشدار، LOW)؛
- }
- rfid.halt();
- }
- void reset_alarm(){
- startAlarm = false;
- }
![Arduino RFID Reader RC522 + شماتیک سیستم کنترل دسترسی](https://duino4projects.com/wp-content/uploads/2015/07/Arduino-RFID-Reader-RC522-+-Access-Control-System-Schematic.jpg)
ابتدا کتابخانه RFID را استخراج کنید و پوشه را به داخل پوشه Libraries که نرم افزار آردوینو را در آن نصب کرده اید منتقل کنید. اکنون خواننده RC522 را همانطور که در اولین خطوط در طرح مشاهده می کنید به برد متصل کنید:
- MOSI -> پین 11
- MISO -> پین 12
- SCK -> پین 13
- SS (یا SDA) -> پین 10
- RST -> پین 9
- 3.3 ولت -> 3.3 ولت
- GND -> GND
عدد صحیح resetAlarm پین آردوینو است که در آن دکمه ای را که برای تنظیم مجدد زنگ استفاده می شود وصل می کنیم. رله به پایه 7 و زنگ فعال به پایه 8 وصل می شود.
در خطوط بعدی باید کد کارت ها را با کدهایی که دارید تغییر دهید. شما باید کدهای موجود در مانیتور سریال را بخوانید سپس تصمیم بگیرید که از کدام کدها برای اجازه دسترسی به اتاق خود استفاده کنید (ویدیو را تماشا کنید تا ببینید من چگونه آن را ساخته ام). شما می توانید فقط از یک کارت یا هر تعداد که می خواهید استفاده کنید، اما بعد از هر آرایه از عناصر، کاما را اضافه کنید.
دسترسی بولی روی false تنظیم شده است و برای ذخیره مقدار true یا false هنگام خواندن برچسب ها (یا کارت ها) استفاده می شود. اگر به خط 63 بروید، می توانید یک حلقه for را ببینید که در آن بررسی می کنیم که آیا مقادیری که در آرایه کارت ها ذخیره می کنیم با مقادیری که از خواننده RFID خود می خوانیم یکسان است یا خیر و اگر یکسان است، متغیر دسترسی را روی true تنظیم می کنیم . .
اکنون، در خط 76 اگر دسترسی درست باشد، "Welcome" را در کنسول چاپ می کنیم، startAlarm را روی false قرار می دهیم تا روشن نشود و رله را فعال می کنیم. اگر false باشد، Alarm را روی true قرار می دهیم و رله را در حالت اولیه خود قرار می دهیم.
در خط 87 بررسی می کنیم که آیا startAlarm روی true تنظیم شده است یا خیر و اگر چنین است، زنگ را روشن می کنیم. اگر دروغ است پس کاری نکنید
همچنین یک دکمه resetAlarm داریم که برای خاموش کردن زنگ هشدار استفاده می شود و رله فعال نمی شود. همچنین ممکن است از یک تگ RFID خوب برای متوقف کردن آن استفاده کنیم، اما اکنون رله فعال خواهد شد.
این پروژه بسیار ساده است و می تواند نقطه شروع خوبی برای توسعه برنامه های پیچیده تر در جایی که از خواننده RFID RC522 استفاده می کنید باشد. با ما همراه باشید زیرا سعی می کنم بر اساس این خواننده سیستم های جدید و جالبی بسازم.
برای جزئیات بیشتر: Arduino RFID Reader RC522 + Access Control System