آردوینو, آموزش, توصیه شده, مقاله های سیسوگ

راه اندازی RC522 RFID Reader با استفاده از Arduino

اکسس کنترل با RFID

در این مقاله می‌خواهیم نحوه استفاده از RFID ریدر مدل RC522 را بیان کنیم. با سیسوگ همراه باشید تا با مشخصات این RFID بیشتر آشنا شوید و هم‌چنین نمونه پروژه‌ای از آن با استفاده از آردوینو را ببینید.

RFID:

در واقع RFID کلمه اختصاری بازشناسایی با امواج رادیویی است. RFID از میدان مغناطیسی برای انتقال اطلاعات در فاصله کوتاه استفاده می‌کند. می‌توان در مواردی هم‌چون شناسایی افراد، معاملات و … از آن استفاده کرد.

می‌توانید از سیستم RFID برای باز کردن درب استفاده کنید. بدین صورت که تنها شخص با کارت دارای اطلاعات مناسب می‌تواند وارد شود.

سیستم RFID به منظور شناسایی از برچسب‌هایی که به اشیاء متصل می‌شوند استفاده می‌کند. به عنوان مثال در تصویر زیر، یک جا کلیدی (keychain) و یک کارت الکترومغناطیسی را می‌بینید که هر تگ شناسه (UID) مخصوص به خود دارد.

 

RFID Tag

 

 

سیستم RFID  از فرستنده و گیرنده رادیویی دو طرفه نیز استفاده می‌کند. بدین صورت که ریدر یک سیگنال به تگ ارسال می کند و پاسخ آن را می خواند.

 

ماژول RFID ریدر RC522

 

مشخصات ماژول RC522 :

ولتاژ ورودی: 3.3V
قیمت: حدود 21 هزار تومان (البته بهتر است قیمت روز بازار ایران را مد نظر قرار دهیم)
فرکانس: 13.56 مگاهرتز

دانلود کتابخانه RC522 :

در اینجا کتابخانه ای که برای این پروژه نیاز دارید قرار دارد:

  1. کتابخانه RFID نوشته شده توسط  miguelbalboa را از اینجا دانلود کنید.
  2. کتابخانه RFID را از حالت زیپ خارج کنید.
  3. کتابخانه RFID را در آردوینو IDE خود نصب کنید.
  4. آردوینو IDE خود را دوباره راه اندازی کنید.

 

اتصالات پین‌ها:

پیناتصال به Arduino Uno
SDADigital 10
SCKDigital 13
MOSIDigital 11
MISODigital 12
IRQunconnected
GNDGND
RSTDigital 9
3.3V3.3V

توجه داشته باشید که تغذیه باید 3.3 ولت باشد.

 

مدار:

اتصال RFID ریدر RC522 به آردوینو

خواندن اطلاعات از تگ RFID :

پس از اینکه مدارتان آماده شد به File > Examples > MFRC522 > DumpInfo بروید و کدتان را آپلود کنید. پس از نصب کتابخانه RFID این کد در کتابخانه شما در دسترس است.

سپس سریال مانیتور را باز کنید. تصویری مشابه شکل زیر را می‌ببینید.

 

serial monitor

 

کارت RFID یا keychain را به ریدر نزدیک کنید و تا زمانی که تمام اطلاعات نمایش داده شود، ریدر و تگ را نزدیک هم نگه دارید.

 

خواندن اطلاعات برچسب RFID

 

این اطلاعاتی است که می توانید از کارت بخوانید، از جمله UID کارت که در تصویر با کادر زرد مشخص شده است. این اطلاعات در حافظه ذخیره می‌شود و همان‌طور که در تصویر مشاهده کردید به سطر و ستون تقسیم می‌شود.

شما 1024 بایت ذخیره سازی داده دارید که به 16 بخش تقسیم شده و هر بخش توسط دو کلید A و B محافظت می‌شود.

UID کارت خود را یادداشت کنید، زیرا بعداً به آن نیاز دارید.

کد زیر را آپلود کنید:

در قسمتی از کد بالا شما باید  (”if (content.substring(1) == “REPLACE WITH YOUR UID را تغییر دهید و UID کارت خود را که قبلاً یادداشت کرده‌اید بنویسید.

 

نمایش:

اکنون کد خود را روی آردوینو آپلود کنید و پنجره سریال مانیتور را باز کنید.

 

 

اگر کارتی که UID آن را وارد کرده‌اید نزدیک کنید تصویر زیر را خواهید دید:

 

RFID Reader

 

 

و اگر کارت با UID غیر منطبق نزدیک شود پیغام عدم پذیرش نمایش داده می‌شود:

 

RFID Reader

 

منبع

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

20 دیدگاه در “راه اندازی RC522 RFID Reader با استفاده از Arduino

  1. Avatar for محمدرضا محمدرضا گفت:

    سلام من برای oled میخوام نمایش بدم وضعیت rfid رو ولی هر کاری میکنم اجرا نمیشه به این شکل برنامه هست که اولتراسونیک وضعیت کاربر چک میکنه و در نهایت تمامی مراحل در oled نمایش داده میشه 🙂

    یک سوال دیگه هم داشتم که چجوری میشه توی آردینو از کاربر ورودی uid گرفت و بر اساس چیزی که وارد میکنه اعتبارسنجی انجام بشه میشه این کار ؟

    لینک گیتهاب
    https://gist.github.com/Mohammadgeek/1e7b780f8b3f4be6c39521d80e2de0c5

  2. Avatar for امیر امیر گفت:

    با سلام ، ممنون بابت مطالب خوبتون
    من ی مشکل دارم : برنامه فقط id دو تا کارت همراه پک RFID را شناسایی میکنه ، من 5 عدد تگ جاسوئیچی هم خریدم اما ان ها را شناسایی نمیکنه ، چیکار کنم ؟
    لطفا جواب بدین.

    1. Avatar for Sisoog Os Sisoog Os گفت:

      سلام دوست عزیز
      شاید اونها RFID نیستند و کارتهایی مثل مافیر هستند

  3. Avatar for بی نام بی نام گفت:

    دوستان میتونند یه نگاهی هم به https://github.com/esprfid/esp-rfid بندازند.
    جامع و کامل با رابط گرافیکی و…

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      ممنون برای پیشنهادتون اتفاقا مقاله خیلی جالبی هم هست

  4. Avatar for حسین صفری حسین صفری گفت:

    سلام چطور میشه کارت دیگه ای هم اضافه کرد یو آی دی کارت دوم رو کجا باید بنویسیم.

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      خوب اونجایی که داره ایدی کارت رو مقایسه میکنه یه else if بذارید و همون الگوی بالا رو تکرار کنید یا توی همون شرط اول or کنید 🙂

  5. Avatar for امیرحسین آقاجانی امیرحسین آقاجانی گفت:

    سلام،
    با تشکر بابت این آموزش خوب!
    فقط یه سوال؛ آیا تگ های 125 کیلوهرتز هم بهش میخوره ؟

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      سلام دوست عزیز
      این ماژول در واقع ماژولی هست که قادر به خودندن کارت های ۱۳.۵ مگاهرتزه و قادر نیست کارت های ۱۲۵ کیلوهرتز رو بخونه

  6. Avatar for محمدرضا محمدرضا گفت:

    سلام . آیا امکانش هست اموزش راه اندازی این ماژول رو با زبان C ترجیحا کدویژن قرار بدید ؟ هیچ سورس خوب و کاملی در مورد این ماژول برای زبان C نیست توی اینترنت و واقعا خیلی ماژول پر کاربرد و خوش قیمتی هست
    اگه توی لیست برنامه هاتون برای آینده هست جوابم رو به ایمیلم بفرستید ممنون

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      سلام دوست عزیز
      احتمالا سورسی در این خصوص منتشر میکنیم ولی با GCC
      توصیه میکنم شما هم از Codevition به GCC مهاجرت کنید
      دلیلشم مشخصه توصیه میکنم مقاله کامپایلر Codevisionavr در مقابل کامپایلر GCC و مقایسه تخصصی آنها رو مطالعه کنید.

      1. Avatar for محمدرضا محمدرضا گفت:

        ممنون از پاسختون
        شاید کسای دیگه هم این مطلب رو خونده باشن و دوست داشته باشن با GCC کار کنن ولی منبع اموزش خوب کاملی برای این کامپایلر وجود نداره در صورتی که چند تا سایت اموزش کامل کدویژن رو قرار دادن و اکثر کتاب ها و فیلم های اموزشی هم بر مبنای کدویژن تولید شده
        در هر حال با GCC هم اگه کد رو قرار بدید ممنون میشم چون این 2 کامپایلر تفاوت های جزئی توی دستورات با هم دارن و میشه تبدیلشون کرد

        1. Avatar for زئوس Zeus زئوس Zeus گفت:

          سلام دوست عزیز ؛ واقعا جای تامل داره که چرا جامعه آکادمیک به این سمت حرکت کرده ! ای کاش در کشور قانون کپی رایت بهتر پیگیری میشد.
          در حال حاظر در نظر دارم آموزش GCC رو برای میکروکنترلر ARM سری ST منتشر کنیم
          قبلا نرم افزار Atmel Studio رو معرفی کردیم و نحوه کار با اون رو آموزش دادیم که اونم از GCC استفاده میکنه

  7. Avatar for یوسف یوسف گفت:

    می تونم خواهش کنم شما کدو قرار بدید چون وارد نیستم اخه شدید نیاز دارم

  8. Avatar for یوسف یوسف گفت:

    سلام چطوری led بهش وصل کنیم لطفا بگید

    1. Avatar photo electronic girl گفت:

      سلام دوست عزیز شما LED را برای چه کاری نیاز دارید؟
      در واقع این برنامه نیازی به LED نداره چون تمام اطلاعات در سریال مانیتور نمایش داده میشه ولی اگه نیاز به LED دارید باید دستور روشن شدن LED را متناسب با نیازتون در برنامه اضافه کنید.

      1. Avatar for یوسف یوسف گفت:

        من حقیقتا می خام باهاش رله راه اندازی کنه که اگه کارت درست بود رله روشن شه واگه اشتباه بود نه لطفا بگید
        اگه می شه به ایمیلم پیام دهید به کدش نیاز شدید دارم

        1. Avatar photo electronic girl گفت:

          سلام. شما میتونید در بطن شرط if خط 52 برنامه که درست بودن کارت را چک می کند دستور روشن شدن رله یا هر چیز دیگه ای که نیاز دارید را اضافه کنید.
          موفق باشید.

          1. Avatar for یوسف یوسف گفت:

            می شه شما برام این کارو بکنید چون وارد نیسنم وبه کدش احتیاج زیاد دارم

          2. Avatar photo electronic girl گفت:

            سلام
            من توی برنامه رله رو به پایه 11 وصل کردم که خودتون میتونین پایه رو تغییر بدید. اگه کارت درست باشه رله 1 ثانیه وصل میشه. کد را میتونین از لینک زیر دانلود کنین:
            https://paste.ofcode.org/

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *