وبلاگ آموزشی جم ترونیک

ماژول RFID Reader چیست؟ آموزش راه اندازی ماژول RC522

ماژول RFID Reader چیست؟ آموزش راه اندازی ماژول RC522

بازشناسی با امواج رادیویی،RFID، یک تکنولوژی پیشرفته برای خواندن و نوشتن اطلاعات به‌شکل بی‌سیم با استفاده از امواج رادیویی است. این تکنولوژی را می‌توان نوع برتر بارکدها دانست؛ همان سیستم خواندن و نوشتن با استفاده از بارکد، در RFID هم اتفاق می‌افتد اما بسیار سریع‌تر و با دقت بالاتر.

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

تگRFID  چیست؟

تگ RFID یکی از قطعات سیستم این تکنولوژی است که به یک جسم متصل می‌شود. جسمی که قصد شناسایی آن وجود دارد،‌ توسط این تگ نشانه‌گذاری می‌شود تا بتوان آن را به‌وسیله ماژول RFID Reader شناسایی کرد.

تگ‌های RFID به دو نوع اکتیو و پسیو تقسیم می‌شوند؛ تگ پسیو دارای یک میکروچیب و آنتن است و منبع تغذیه مستقل ندارد،‌ درحالی که تگ اکتیو دارای منبع تغذیه مستقل است. توان مورد نیاز در تگ اکتیو از طریق باتری تامین می‌شود اما در تگ پسیو این توان از طریق ماژول در آن القا می‌شود.

تگ‌ها دارای میکروچیب و آنتن هستند؛ توان مورد نیاز از طریق آنتن داخل تگ تامین می‌شود و میکروچیب وظیفه انتقال اطلاعات را برعهده می‌گیرد. پس از آن RFID Reader این اطلاعات را از طریق سیگنال فرستاده‌شده توسط آنتن دریافت می‌کند.

درباره تگ RFID در مقاله تگ RFID چیست؟ بیشتر بخوانید.

ماژول RFID Reader چیست؟

بهتر است پیش از راه‌اندازی ماژول RFID Reader، با ساختار و عملکرد آن آشنا شوید. RFID Reader را می‌توان مقر پردازش و مغز سیستم RFID درنظر گرفت. این ریدرها هستند که اطلاعات را دریافت، تحلیل و جسم را شناسایی می‌کنند.

ماژول‌های RFID Reader هم معمولا به دو دسته سیار و ثابت تقسیم می‌شوند. استفاده از ریدرهای ثابت راحت است، تمام تجهیزات داخلشان قرار دارد و نیازی به وصل کامپیوتر آن بورد یا دستگاه‌های هوشمند بلوتوثی نیست.

معرفی ماژول RFID Reader RC522

ماژول RC522 یکی از مدل‌های ماژول RFID است که شرکت NXP آن را طراحی و تولید کرده است. این ماژول براساس آی‌سی MFRC522 ساخته شده است و برای ارتباطات چندگانه در فرکانس بالا یا ۱۳.۵۶ مگاهرتز استفاده می‌شود.

ماژول RC522 یک ابزار ارزان، با مصرف پایین، سایز کوچک و بسیار کاربردی است که پرتکل SPI را هم پشتیبانی می‌کند. این موضوع باعث می‌شود تا این ماژول به ‌راحتی با تمام میکروکنترلرها مانند آردوینو و رزبری کار کند.

خرید ماژول RFID با قابلیت خواندن و نوشتن RFID

ساختار ماژول RC522

این ماژول از سه قطعه اصلی تشکیل شده است و وظیفه خواندن و نوشتن دیتا را برعهده دارد. این سه قطعه MFRC522 IC، کریستال نوسانگر ۲۷.۱۲ مگاهرتزی و یک آنتن هستند.

RFID Reader Module

RFID Reader Module

این قطعه وظیفه اصلی را انجام می‌دهد که خواندن و نوشتن اطلاعات است. این قطعه یک میدان الکترومغناطیسی با فرکانس ۱۳.۵۶ مگاهرتزی ایجاد می‌کند و با تگ RFID برای خواندن و نوشتن اطلاعات ارتباط می‌گیرد.

این‌ ماژول RFID Reader می‌تواند با سرعت حداکثر ۱۰ مگابایت بر ثانیه، اطلاعات را انتقال دهد. می‌توان برنامه‌ای نوشت تا باعث شود ریدر در زمان نزدیک شدن کارت وقفه‌ای ایجاد کند تا ماژول به ما اطلاع دهد.

ماژول ریدر در محدوده ولتاژ ۲.۵ تا ۳.۳ ولت کار می‌کند اما به دلیل این که ولتاژ قابل تحمل پایه‌های آن ۵ ولت است، می‌توان این ماژول را به انواع دستگاه‌ها مانند آردوینو متصل کرد.

MFRC522 IC

ماژول RC522 براساس این چیپ طراحی شده است و با فرکانس ۱۳.۵۶ مگاهرتزی و  و وایرلس کار می‌کند. توان مصرفی پایین، بازده بالا، تراشه خواندن و نوشتن کوچک و قیمت پایینی دارد.

آی سی MFRC522 از انواع تگ‌های RFID مانند MIFARE 1k، MIFARE 4K، MIFARE Mini پشتیبانی می‌کند. این آی‌سی تا رنج ۵۰ میلی‌متر قابلیت عملکرد دارد و باتوجه به سایز آنتن می‌تواند تا ۵۰ میلی‌متر به‌راحتی کار کند.

این آی‌سی  SPI، ‌UART و ارتباط 12C را پشتیبانی کرده و در ارتباط SPI، تا سرعت ۱۰ مگابیت برثانیه را پشتیبانی  می‌کند. سرعت آن در ارتباطات 12C، در حالت سریع تا ۴۰۰ پالس در ثانیه و در حالت فوق‌سریع، تا ۳۴۰۰ پالس در ثانیه می‌رسد. در ارتباط نوع UART،‌ حداکثر سرعت ۱۲۲۸.۸ پالس بر ثانیه است.

نوسانگر کریستالی ۲۷.۱۲ مگاهرتز

این نوسان‌گر یک کریستال کواترز است که به پین‌های OSCIN و OSCOUT نوسان‌گر داخلی متصل می‌شود و با تشدید کردن یک کریستال،  فرکانس دقیق ۲۷.۱۲ مگاهرتزی ایجاد می‌کند.

دقت فرکانس ایجادشده به‌دلیل ثابت ماندن دمای تقریبی کریستال، بسیار بالاست. فرکانس ۱۳.۵۶ مگاهرتزی دقیقا نصف فرکانس ۲۷.۱۲ مگاهرتزی تولیدشده توسط کریستال است.

آنتن

آنتن درواقع از یک سیم‌پیچ NFC تشکیل شده است که در فرکانس ۱۳.۵۶ مگاهرتزی عمل می‌کند. توسط این سیم‌پیچ یک میدان الکترومغناطیسی ۱۳.۵۶ مگاهرتزی ایجاد می‌شود و با قرار گرفتن تگ RFID در محدوده این میدان، اطلاعات خوانده و نوشته می‌شود.

کارت RFID و جاسوییچی یا تگ RFID

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

میکروچیپ وظیفه ذخیره و انتقال اطلاعات، و آنتن وظیفه ارسال اطلاعات به ماژولRFID Reader را دارد. ماژول RC522 سازگار با تگ‌های MIFARE 1K است که یک کیلوبایت حافظه برای ذخیره اطلاعات دارند.

ما نه تنها‌ می‌توانیم این کارت‌ها را بخوانیم و اطلاعاتشان را دریافت کنیم، بلکه می‌توانیم آن‌ها را براساس ماژول  RFID Reader  RC522 برنامه‌نویسی کنیم.

پایه‌های ماژول RC522

پایه‌های ماژول RC522

ماژول RFID Reader RC5 هشت  پین اصلی دارد که نقش خروجی را برعهده دارند.

پین Vcc: این پین درواقع پین منبع توان ماژول است؛ ماژول در رنج ۲.۵ تا ۳.۳ کار می‌کند. از طریق این پین می‌توان ماژول را به خروجی ولتاژ ۳.۳ میکروکنترلرهایی مانند آردوینو وصل کرد.

پین RST: این پین وظیفه ریست کردن و خاموش کردن ماژول را برعهده دارد. اگر مقدار پین RST به Low برسد، ماژول خاموش شده، جریان‌های داخلی ماژول قطع می‌شوند، نوسانگر از کار می‌افتد و تمام ارتباطات ماژول با دستگاه‌های خارجی قطع می‌شود.

پین GND: این پین، پین اتصال به زمین ماژول است؛ پین GND به پین گراند میکروکنترلر آردوینو وصل می‌شود.

پین IRQ: اگر یادتان باشد گفتیم که می‌توان ماژول را برنامه‌ریزی کرد تا درزمان نزدیک شدن یک تگ آرفید، وقفه‌ای ایجاد کند و ما را مطلع سازد. آن وقفه با استفاده از این پین IRQ اتفاق می‌افتد. زمانی‌که تگی به محدوده ماژول وارد می‌شود،‌ این پین ماژول را به‌کار می‌اندازد و پس از خارج شدن تگ از محدوده، ماژول را وارد اسلیپ مود می‌کند.

پین MISO/SCL/Tx: زمانی‌که ارتباط SPI ماژول فعال باشد، این پین نقش یک MISO را ایفا می‌کند. با فعال بودن ارتباط 12C، پین به‌عنوان یک SCL و در ارتباط UART، پین به‌عنوان یک Tx عمل می‌کند.

پین MOSI: پین Master Out Slave In بوده که مخصوص ارتباطات SPI است.

پین SCK: این پین در ارتباط SPI، نقش دریافت کلاک‌های تولیدشده توسط مستر را دارد.

پین SS/SDA/Rx: این پین در زمان ارتباطات SPI، به‌ عنوان ورودی سریال یا SS، در زمان ارتباطات 12C به عنوان پین SDA و در زمان ارتباطات UART به عنوان پین Rx عمل می‌کند.

راه‌اندازی ماژول RC522 با آردوینو: قطعه‌های لازم

ما تا الان اطلاعات مورد نیازتان را راجع‌به تکنولوژی RFID و ماژول RFID Reader در اختیارتان قرار داده‌ایم. الان می‌توانید با این آموزش، ماژول RC522 خودتان را با استفاده از پروژه آردوینو راه‌اندازی کنید.

قطعات لازم برای راه اندازی ماژول RFID RC522 با آردوینو در لیست زیر قرار دارند:

  •     ماژول RFID Reader و RC522
  •     مقاومت ۲۲۰ اهم ۱.۴ وات
  •     ماژول آردوینو UNO
  •     سیم جامپر نری-نری و سیم جامپر نری-مادگی ۴۰ رشته
  •     کابل USB تایپ A به تایپ B

تمام این قطعات را می‌توانید از فروشگاه جم ترونیک خریداری کنید.

راه‌اندازی ماژول RC522 با آردوینو: اتصال پایه‌ها

راه‌اندازی ماژول RC522 با آردوینو: اتصال پایه‌ها

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

  1.   پین Vcc را به خروجی ۳.۳ ولت آردوینو وصل کنید.
  2.   پس از آن پین GND را پین زمین آردینو وصل کنید.
  3.   پین RST را می‌توانید به تمام پین‌های آردوینو وصل کنید؛ به‌عنوان مثال پین ۵.
  4.   پین IRQ با توجه به کتاب‌خانه‌ای که استفاده می‌شود، ممکن است وصل نشود. برخی از کتاب‌‌خانه‌ها این پین را پشتیبانی نمی‌کنند.
  5.   پین SS را هم می‌توانید به هر پین غیر از پین‌های SPI وصل کنید.
  6.   در این مرحله باید پین‌های SPI ماژول را به پین‌های مرتبط سخت‌افزاری در آردوینو وصل کنید. این کار سرعت عملکرد را بالاتر می‌برد.

آردوینوهای مختلفی در بازار وجود دارد و در هر یک از آن‌ها، پین‌های SPI مختلفی وجود دارد. پین SPI مناسب را باید با توجه به مدل آردوینویی که تهیه کرده‌اید در دیتاشیت آن شناسایی کنید.

ما در جدول پایین، پین‌های SPI سه نوع پرکاربرد آردوینو را برایتان آماده کرده‌ایم. اگر از آدروینوهای دیگری استفاده می‌کنید، باید قبل از اتصال پین‌های SPI،‌ آن‌ها را در آردوینو شناسایی کنید.

  برد آردوینو UNO برد آردوینو Mega برد آردوینو Nano
MOSI 11 51 11
MISO 12 50 12
Cs 10 53 10
SCK 13 52 13

 

راه‌اندازی ماژول RFID Reader RC522: کتابخانه آردوینو و کدنویسی

پس از اتمام اتصال‌ها و تنظیمات سخت‌افزاری،‌ نوبت به تنظیمات نرم‌افزاری آردوینو و برنامه‌نویسی آن می‌رسد. برای این کار ما از کتاب‌خانه آردوینو MFRC522 استفاده می‌کنیم که جزو کتاب‌خانه‌های رسمی آردوینو نیست. می‌توانید آن را از گیت‌هاب MFRC522 دانلود کنید.

برای نصب این کتاب‌خانه می‌توانید از IDE خود آردوینو استفاده کنید یا از مسیر

Sketch -> Include Library -> Add ZIP Library

استفاده کنید و فایل زیپ را در پوشه کتاب‌خانه‌های آردوینو اکسترکت کنید.

کد ماژول RC522 در آردوینو

پس از نصب کتاب‌خانه، بهتر است نوشتن اولین کدتان را شروع کنید. مثال DumpInfo را انتخاب کرده و شروع کنید. ما یک کد نمونه برایتان قرار داده‌ایم.

 

کد نمونه:

 

 

توجه کنید که در این کد RST_PIN به پین 5 و SS_PIN به پین 10 قرار داده شده است. شما باید این مقادیر را باتوجه به آردوینوی خودتان تغییر دهید.

پس از این‌که کد را کامپایل کردید، آن را آپلود کنید. الان نوبت آزمایش درستی کد RFID رسیده است، تگ را به ماژولی که ساخته‌اید نزدیک تا تغییراتی که در سریال مانیتور ایجاد می‌شود را مشاهده کنید.

این اطلاعات شامل UID و SAK کارت، نوع PICC و تمام مموری مپ‌های کارت است. UID یا شناسه یونیک، برای هر تگ منحصربه‌فرد است. اگر خطایی راجع‌به قطع ارتباط دریافت کردید،‌ نرخ پالس یا Baud را در کدتان به ۱۱۵۲۰۰ تغییر دهید.

 

نوشتن اطلاعات روی تگ RFID

پس از این‌که اطلاعات تگ را با کمک ماژول RFID Reader به‌دست آوردیم و خواندیم، نوبت به نوشتن آن‌ها و اطلاعات دلخواهمان روی تگ آر اف آی دی می‌رسد. برای این منظور می‌توانید از کد زیر استفاده کنید.

 

 

 

ما دوباره RST_PIN را به پین ۵ تغییر داده‌ایم، شما باید این مقدار را بر اساس پین RST در آردوینوی خودتان تعیین کنید.

پس از این‌که این کد را به‌درستی نوشته و آپلود کردید، سریال مانیتور را باز کنید. یک تگ را به ماژول نزدیک کنید تا اطلاعات را روی آن بنویسد و سپس آن را بخواند. تغییرات ایجاد شده در ماژول را مشاهده کنید.

توضیح کدهای نوشته‌شده

در خط‌های اولیه کد، با استفاده از دستور #include کتاب‌خانه‌های ضروری را وارد کرده و با استفاده از دستور #define پین‌های SS و RST را معرفی کرده‌ایم.

از دستور // برای توضیحی راجع به یک بخش از کد استفاده می‌شود.

 

در مرحله بعدی شی‌هایی را برای کتاب‌خانه RFID Reader تعیین‌ کرده‌ایم  و دیتاهای قابل نگارش را مشخص کرده‌ایم. همچنین آرایه‌ای برای ذخیره اطلاعات خوانده‌شده تعیین کرده‌ایم.

 

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

 

برای نوشتن اطلاعات روی تگ، از تابع writeblock استفاده می‌کنیم. برای این تابع دو پارامتر تعیین می‌شود؛ پارامتر اول نشان‌دهنده شماره بلوک و پارامتر دوم نشان‌دهنده متن پیام است.

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

 

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

 

در تابع loop، میکروکنترلر وجود یک تگ در زمان حال را بررسی می‌کند. اگر تگ موجود و قابل خواندن باشد، دو آرایه برای آن تگ خواهد نوشت و سپس آن‌ها را خوانده و در سریال مانیتور پرینت خواهد کرد.

 

کد آردوینو برای روشن و خاموش کردن LED با RFID

این عملکرد کدی ساده دارد؛‌ ماژول RFID Reader به‌دنبال تگ‌های موجود خواهد گشت و پس از پیدا کردن یک تگ، شناسه یونیک آن را خواهد خواند. در صورت تطابق این شناسه با شناسه موجود داخل کد، وضعیت چراغ را عوض خواهد کرد.

برای این کار از کد زیر استفاده کنید.

 

توضیح کد

ابتدا ما کتاب‌خانه‌ها ضروری را وارد کرده و متغیرهای عمومی را تعیین کردیم. در این بخش ما پین LED را به پین ۸ آردوینو متصل کرده‌ایم. شناسه یونیک برای هر تگ متفاوت است و شما باید آن را با استفاده از Dumpinfo به دست آورید.

 

در مرحله بعد تابع Setup را تعیین کرده و پین D8 را به‌عنوان یک خروجی برای آن تعریف کنید. سپس مقدار منطقی اولیه آن را در حالت LOW قرار دهید. سپس به SPI و MFRC522 مقادیر مناسب را اطلاق کنید.

 

تابع readID برای دریافت UID از هر تگ به‌کار می‌رود. این تابع وجود یک تگ را بررسی کرده و در صورت وجود،‌ شناسه آن را می‌خواند. سپس این شناسه را در یک متغیر به‌نام tagID ذخیره می‌کند. این تابع درصورت موفقیت مقدار True را برمی‌گرداند.

 

 

در تابع loop، در بازه‌های زمانی مشخص وجود یک تگ قابل خواندن را بررسی می‌کند. اگر تگی را پیدا کرد، شناسه آن را خوانده و آن را با شناسه مورد نظرمان مطابقت می‌دهد. درصورت تطابق حالت پین LED را تغییر می‌دهد.

جمع‌بندی

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

برای خرید مقاومت در انواع مختلف با بهترین قیمت کلیک کنید.

بازگشت به لیست

3 دیدگاه در “ماژول RFID Reader چیست؟ آموزش راه اندازی ماژول RC522

  1. نظامی پور گفت:

    سلام میشه برای پروژه مستر کارت ایجاد کرد؟

    1. پشتیبان جم ترونیک گفت:

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

  2. parsa گفت:

    سلام میشه با این سنسور یک پروژه ی قوی معرفی کنید

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