راه اندازی ماژول RFID RC522 با آردوینو
در این مطلب ماژول RFID RC522 را بررسی می کنیم و به طور خلاصه راه اندازی ماژول RFID RC522 با آردوینو را توضیح می دهیم. ماژول های RFID به منظور خواندن و نوشتن کارت ها یا تگ های RFID مورد استفاده قرار می گیرند. کارت های مغناطیسی امروزه در زندگی روزمره ما به وفور در دستگاه های مختلفی استفاده می گردند.تگ و يا کارت RFID، شامل يک مدار الکترونيکی است زمانی که تگ در نزدیکی کدخوان ( RFID Reader ) قرار می گيرد، میدان مغناطيسی تولید شده توسط کد خوان باعث فعال شدن تگ می گردد. و تگ اقدام به ارسال داده از طریق پالس های راديويی می نماید.سیستم های RFID دارای فرکانس های کاری متنوعی هستند که از این بین دو فرکانس 125 کیلوهرتز و 13.56 مگاهرتز متداول تر می باشند.
این ماژول در محدوده فرکانسی 13.56Mhz کار کرده و علاوه بر خواندن اطلاعات می تواند اطلاعات جدیدی را بر روی حافظه ی کارت ذخیره نماید.
ویژگی ها:
- تراشه با حساسیت بسیار بالا ساخت شرکت فیلیپس
- ارتباط با میکروکنترلر از طریق پروتکل SPI
- ولتاژ تغذیه: 3.3 ولت
- جریان مصرفی بسیار پایین 13 الی 26 میلی آمپر
- فرکانس کاری 13.56Mhz
- قابلیت خواندن و نوشتن روی کارت
- سرعت انتقال اطلاعات تا 10Mbit/s
- پشتیبانی از کارت های mifare1 S50、mifare1 S70、mifare UltraLight、mifare Pro、mifare Desfire
- فاصله تگ تا ماژول جهت تبادل اطلاعات 8 الی 10 سانتی متر
- ابعاد بسیار کوچک 4 در 6 سانتی متر
کاربردها:
- سیستم های امنیتی
- کارت های اعتباری
- شناسایی کاربر یا خودور یا کالا …
- خانه های هوشمند
- فناوری اطلاعات
- سامانه های هوشند
- RFID در ساخت و ساز : ابزار ردیابی ، ردیابی لوله
- RFID در بیمارستان و مراقبت از سلامت
- سیستم های پرداخت RFID
- زمان و حضور و غیاب
نحوه اتصال ماژول به برد آردوینو
ما از پروتکل SPI برای اتصال آردوینو و ماژول RC522 استفاده میکنیم. ترتیب اتصال پایه ها در تصویر پایین مشخص است.
ترتیب اتصال پایه ها
برای اتصال راه اندازی ماژول RFID RC522 به آردوینو نیاز به اتصال 7 پین است در این مورد به پین IRQ نیازی نداریم. در ادامه کتابخانه مورد نیاز برای راه اندازی این ماژول را دانلود کنید و در برنامه آردوینو اضافه کنید.
دانلود کتابخانه ماژول RFID RC522 با آردوینو
برنامه پایین را روی برد آردوینوی خودتان آپلود کنید.
#include <SPI.h> #include <MFRC522.h> #define RST_PIN 9 #define SS_PIN 10 MFRC522 mfrc522(SS_PIN, RST_PIN); void setup() { SPI.begin(); mfrc522.PCD_Init(); } void loop() { RfidScan(); } void dump_byte_array(byte *buffer, byte bufferSize) { for (byte i = 0; i < bufferSize; i++) { Serial.print(buffer[i] < 0x10 ? ” 0″ : ” “); Serial.print(buffer[i], HEX); } } void RfidScan() { if ( ! mfrc522.PICC_IsNewCardPresent()) return; if ( ! mfrc522.PICC_ReadCardSerial()) return; dump_byte_array(mfrc522.uid.uidByte, mfrc522.uid.size); }
با استفاده از این کد می توانید تگ RFID خود را بخوانید این اطلاعات روی پورت سریال نمایش داده می شود.
نمونه کد دوم برای ماژول RFID RC522
#include <SPI.h> #include <MFRC522.h> #define RST_PIN 9 #define SS_PIN 10 MFRC522 mfrc522(SS_PIN, RST_PIN); int RfidNo = 0; void setup() { SPI.begin(); mfrc522.PCD_Init(); } void loop() { RfidScan(); } void dump_byte_array(byte *buffer, byte bufferSize) { Serial.print(“~”); if(buffer[0] == 160){RfidNo = 1;Serial.print(RfidNo);} if(buffer[0] == 176){RfidNo = 2;Serial.print(RfidNo);} if(buffer[0] == 208){RfidNo = 3;Serial.print(RfidNo);} if(buffer[0] == 224){RfidNo = 4;Serial.print(RfidNo);} if(buffer[0] == 240){RfidNo = 5;Serial.print(RfidNo);} Serial.print(“!”); while(1){getFingerprintIDez();} } void RfidScan() { if ( ! mfrc522.PICC_IsNewCardPresent()) return; if ( ! mfrc522.PICC_ReadCardSerial()) return; dump_byte_array(mfrc522.uid.uidByte, mfrc522.uid.size); }
در نمونه کد اول ما شماره هر تگ را خواندیم در نمونه کد دوم از این اطلاعات برای تشخیص کارت ها استفاده میکنیم. به این صورت که در صورت خواندن تگ اول توسط ماژول عبارت 1 در پورت سریال نمایش داده می شود. و هر تعداد تگ تعریف شده باشد این روند ادامه میابد. با تغییر دستور شرط if می توانید برای هر کارت عملیات خاصی را تعریف کنید.
منبع: adafruit.com و سایت های فارسی زبان
سلام
بابت سایت خوبتون ازتون تشکر میکنم.
بنده میخام یه مدار با ار اف ای دی درست کنم که هم ارزون در بیاد هم بردش حداقل یک متر باشه یعنی تگ رو از یک متری تشخیص بده اگه راهنماییم کنین ممنون میشم.
با تشکر
سلام
برای این کار باید از ریدرهای مخصوص بردبالا استفاده کنید. در سطح اینترنت مطالب زیادی هست که می تونید مطالعه کنید.
سلام و خسته نباشید
من می خوام از طریق spi میکروکنترولر رو به ماژول وصل کنم اما تو دیتاشیتش ادرس اسلیوشو نذاشته و بگم که فقط قراره این ماژول رو وصل کنم ممنون
سلام و عرض خسته نباشید …
این ماژول کارت های 1k رو ساپورت میکنه دیگه؟
بله
سلام می خواستم بدونم چرا این ماژول نسبت به بقیه ماژول های RFID قیمت ارزان تری داره؟؟؟
باتشکر
سلام
نمیشه این ماژول با avr راه اندازی کرد؟؟؟؟؟؟؟
میشه با AVR هم راه اندازی کرد نمونه کد هم می تونید از اینرنت پیدا کنید
سلام
برد این ماژول چقدر هست؟ نوشتید 8 الی 10 سانتی متر . خودتون جواب گرفتید این فاصله رو؟
طبق دیتاشیت 8 الی 10 سانت
ولی ما بیشتر از 5 سانت جواب نگرفتیم
ممنونم از پاسختون
با اضافه کردن انتن میشه بردش رو زیاد کرد؟
سلام
تست نکردیم
ولی بعید می دونم بشه
سلام. امکانش هست که از طریق کارتهای فقط خواندن 125khz با این ماژول ارتباط برقرار کرد؟ یا فقط از طریق تگهای مایفر میشه این کار رو کرد؟ میشه کمکم کنید و بگید چطوری؟
سلام
لطفا برای طرح سوالات علمی خود به انجمن های سایت مراجعه کنید: http://www.eca.ir/forums
ببخشید وقتی من میخواهم کامپال کنم این پیام رو نشون میده باید چیکار بکنم؟
Error compling board arduino genuino uno.
با سلام و خسته نباشید , و تشکر از مطالب ارزنده تان اگه امکان دارد تگ های RFID فلز و نحوه اتصال پایه ها ،دیتا شیت کیت های جانبی،مدارات جانبی و برند ها و قیمت انها را در سایت ارائه دهید.
سلام
من همزمان از RFID RC522وPIR حرکتی استفاده میکنم با UNOمشکل من اینه که کد نویسی هر کدوم به تنهایی جواب میده ولی وقتی با هم مینویسم PIR جواب نمیده ممنون
سلام ، چرا این دستورات
mfrc522.PCD_SoftPowerDown
mfrc522.PCD_WriteRegister(MFRC522::CommandReg, )
عمل نمیکنه
ممنون