آردوینو Arduinoمطالب آموزشی

راه اندازی ماژول 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
  • زمان و حضور و غیاب

نحوه اتصال ماژول به برد آردوینو

راه اندازی ماژول RFID RC522 با آردوینو
راه اندازی ماژول RFID RC522 با آردوینو

ما از پروتکل SPI برای اتصال آردوینو و ماژول RC522 استفاده میکنیم. ترتیب اتصال پایه ها در تصویر پایین مشخص است.

interfacing-of-rfid-rc522-with-arduino1-1024x820

ترتیب اتصال پایه ها

interfacing-of-rfid-rc522-with-arduino-eca1

برای اتصال راه اندازی ماژول 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 و سایت های فارسی زبان

نوشته های مشابه

17 دیدگاه

  1. سلام
    بابت سایت خوبتون ازتون تشکر میکنم.
    بنده میخام یه مدار با ار اف ای دی درست کنم که هم ارزون در بیاد هم بردش حداقل یک متر باشه یعنی تگ رو از یک متری تشخیص بده اگه راهنماییم کنین ممنون میشم.
    با تشکر

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

  2. سلام و خسته نباشید
    من می خوام از طریق spi میکروکنترولر رو به ماژول وصل کنم اما تو دیتاشیتش ادرس اسلیوشو نذاشته و بگم که فقط قراره این ماژول رو وصل کنم ممنون

  3. سلام می خواستم بدونم چرا این ماژول نسبت به بقیه ماژول های RFID قیمت ارزان تری داره؟؟؟
    باتشکر

  4. سلام
    برد این ماژول چقدر هست؟ نوشتید 8 الی 10 سانتی متر . خودتون جواب گرفتید این فاصله رو؟

  5. سلام. امکانش هست که از طریق کارتهای فقط خواندن 125khz با این ماژول ارتباط برقرار کرد؟ یا فقط از طریق تگهای مایفر میشه این کار رو کرد؟ میشه کمکم کنید و بگید چطوری؟

  6. ببخشید وقتی من میخواهم کامپال کنم این پیام رو نشون میده باید چیکار بکنم؟
    Error compling board arduino genuino uno.

  7. با سلام و خسته نباشید , و تشکر از مطالب ارزنده تان اگه امکان دارد تگ های RFID فلز و نحوه اتصال پایه ها ،دیتا شیت کیت های جانبی،مدارات جانبی و برند ها و قیمت انها را در سایت ارائه دهید.

  8. سلام
    من همزمان از RFID RC522وPIR حرکتی استفاده میکنم با UNOمشکل من اینه که کد نویسی هر کدوم به تنهایی جواب میده ولی وقتی با هم مینویسم PIR جواب نمیده ممنون

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

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

دکمه بازگشت به بالا