RFID / NFC آردوینو Arduino Uno آموزش آردوینو پروژه های آردوینو

آموزش راه اندازی ماژول RFID مدل RDM6300 توسط تگ ۱۲۵ کیلوهرتز

Arduino-RFID-RDM6300-digispark
نوشته شده توسط پریسا پوربلورچیان

در ادامه مبحث جذاب کارت خوان رادیویی RFID به راه اندازی ماژول RDM6300 رسیدیم. فرکانس کارت و تگ RFID در محدوده مختلفی تعریف می‌شود. ماژول RFID مدل RDM6300 دارای فرکانس کاری ۱۲۵KHz می‌باشد. حتما در هنگام کار با ماژول RFID مدل RC522، به این مشکل برخورده اید که تگ و کارت RFID با فرکانس ۱۲۵ کیلوهرتز توسط ماژول کارت خوان RFID شناسایی نمی‌شوند. در این پست به معرفی ماژول RFID مدل RDM6300إ با فرکانس کاری ۱۲۵KHz خواهیم پرداخت. با استفاده از ماژول کارت خوان RDM6300 ، تمامی تگ و کارت‌های دارای فرکانس ۱۲۵KHZ خوانده می‌شوند. در ادامه این آموزش جذاب با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

 


۱- ماژول RFID مدل RDM6300


ماژول RDM6300 از تگ‌های ۱۲۵ کیلوهرتز و تگ‌های EM4100 پشتیبانی می‌کند. این ماژول آی دی ۴۰ بیتی را در حافظه خود ذخیره می‌کند. درایور آی دی ها را به عنوان عدد صحیح ۶۴ بیتی دریافت و کنترل خواهد کرد. ماژول RDM6300 از پروتکل ارتباط سریال بهره می‌یرد. ماژول RDM6300 از ۹ پایه تشکیل شده است. پایه‌های VCC و GND دوبار بر روی برد قرار گرفته شده است که باید به VCCو GND میکروکنترلر اتصال گردد. پین ANT1 و ANT2 به آنتن ماژول متصل می‌گردد. پین TX جهت ارسال ذیتا و پین RX جهت دریافت دیتا استفاده می‌شود. از پین ال ای دی LED، جهت شناسایی دقیق تگ به کار برده می‌شود.

 


۲- کتابخانه RFID مدل RDM6300


جهت استفاده از ماژول RDM6300 نیاز به فراخوانی دو کتابخانه خواهیم داشت. همانطور که در بالا گفته شد، در صورت استفاده از برد آردوینو UNO، باید کتابخانه software serial فراخوانی گردد. در صورت استفاده از برد آردوینو DUE کتابخانه Hardware serial فراخوانی می‌شود. همچنین جهت راه اندازی باید کتابخانه RDM6300 فراخوانی گردد. طبق اطلاعات ذخیره شده در فایل هگز کتابخانه RDM6300، زمانیکه تگ RFID شناسایی شود، ماژول RDM6300 یک Frame با ۱۴ بایت داده ارسال می‌کند.

  • HEAD ( یک بایت ): در هر حالتی داده Head برابر با ۰X02 می‌باشد.
  • CheckSum ( دو بایت )
  • tail (ی ک بایت ): در هر حالتی داده tail برابر با ۰X02 می‌باشد.
  • data ( ده بایت ): داده بر حسب ASCll encoded ذخیره می‌شود.

 

آموزش راه اندازی ماژول RFID مدل RDM6300 توسط تگ 125 کیلوهرتز - دیجی اسپارک

 

اتصالات

  • پایه VCC و GND به ترتیب به پایه ۵ ولت و زمین GND آردوینو Arduino متصل می‌شود.
  • پایه ANT1 و ANT2 به آنتن ماژول توسط سوکت مخصوص آن متصل می‌شود.
  • پایه RX به پین ۸ آردوینو Arduino متصل می‌شود.
  • پایه TX به پین ۶ آردوینو Arduino متصل می‌شود.

 


۳- کدنویسی ماژول RDM6300


 

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

 

دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندس‌های دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید.

 

 


۴- تحلیل کد آردوینو Arduino


در ابتدا با تعریف Setup در کدها، از عملکرد درست ماژول اطمینان حاصل خواهیم کرد. جهت این‌کار یک ال ای دی LED به عنوان خروجی تعریف خواهیم کرد. با آپلود کد و انتخاب باد ریت، ال ای دی LED، پنج بار چشمک خواهد زد و به حالت آماده به کار درخواهد آمد. با نزدیک کردن تگ ۱۲۵KHz در محدوده میدان مغناطیسی، کد نگ شناسایی شده و سپس در سریال مانیتور Serial Monitor اطلاعات تگ Tag نمایش داده می‌شود.

RFID: 0x2000CC49C3

 

 


وسایل مورد نیاز


برد آردوینو Arduino UNO به همراه کیس مخصوص شفاف

 

راه اندازی RFID با فرکانس 125KHz توسط آردوینو و ماژول RDM6300 - دیجی اسپارک

 

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

 


پروژه و دریافت بن ارسال رایگان


برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ‌های دیجی_اسپارک و دانشجوکیت  و digispark  و  daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۰۳۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

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

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

تبادل نظر و رفع عیب با ثبت دیدگاه

۵۷ دیدگاه

    • با سلام
      کاربر گرامی لطفا موضوع را دقیق‌تر اعلام بفرمایید. در حال حاضر امکان ورود به حساب کاربری را ندارید؟

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

  • سلام من برنامرو کپی میکنم ولی رو آردوینو کپی نمیشه!
    C:\Users\Hooman\Documents\Arduino\RFID\RFID.ino:2:21: fatal error: RDM6300.h: No such file or directory

    #include “RDM6300.h”

    ^

    compilation terminated.

    exit status 1
    Error compiling for board Arduino/Genuino Uno.

  • سلام وقت بخیر
    لطفاً در مورد تگهای nfc و mifare هم پروژه آموزش بدید و نحوه برقراری ارتباط با موبایل
    ممنون بخاطر آموزشهای قبلی

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

  • سلام و خسته نباشید
    با این آموزش بخشی از مشکلات من و تیمم برای پروژه مدرسه حل شد.
    از طرف خودم و بچه های مدرسه از شما ممنونیم خانوم

    • سلام
      از توجه شما ممنونم.
      از اینکه نظر و تجربه خودتان را با من و دیگر کاربران به اشتراک می‌گذارید، صمیمانه سپاسگزارم.

    • سلام
      پایه ها بر روی ماژول مشخص شده است. همچنین در متن آموزش نوشته شده و تصویر اول مربوط به اتصالات است.

      • ممنون از پاسخگویی شما
        خیر من ماژول را از دانشجو کیت خریداری کردم و نام پایه ها مشخص نیست اگر امکانش هست نام پایه هارا به ترتیب توضیح دهید باتشکر

        • سلام مجدد
          بله بر روی ماژول پایه ها نام گذاری نشده است و باید مطابق با آموزش من و دیتاشیت پایه ها را اتصال دهید.
          در صفحه محصول کالا تصویر آن همراه با مشخص شدن پایه ها اضافه شده است. همچنین برای شما پیوست گردید.
          پایه های ماژول RDM6300

  • سلام هنگام ابلود این خطا نمایش داده میشودSketch uses 4392 bytes (13%) of program storage space. Maximum is 32256 bytes.
    Global variables use 343 bytes (16%) of dynamic memory, leaving 1705 bytes for local variables. Maximum is 2048 bytes.
    Serial port not selected.

  • سلام خسته نباشید .میشه با اردینو یه دانگل انتقال تصویرب تلویزیون از گوشی ساخت ؟؟؟

  • سلام خسته نباشید .
    ببخشید برنامه دربازکن با این سنسور rdm6300 قرار میدهین ؟
    چجور میشه با خواندن کد کارت ها برای آن ها خروجی در نظر بگیریم؟
    ممنون از سایت خوبتون

  • سلام، میشه بگید چطوری یه تگ مادر داشته باشیم و بشه کاری کرد که کپیش کرد ؟

  • با سلام و درود
    من تمامی اتصالات را مطابق راهکار شما انجام داده ام اما برنامه دقیقا در خط
    last_id = rdm.read();
    گیر میکند
    با دو برد rdm3600 امتحان کردم همین مشکل وجود دارد

      • با سلام و تشکر
        اروری نداریم من آردینو mega 2560 را با نمایشگر tft2.4 شیلد
        را اندازی کرده ام ولی چون خروجی نگرفتم نمایش متنی را قبل و بعد هر دستور گذاشتم تا ببینم مشکل از کدام قسمت است و دیدماز خط rdm.read به بعد اجرا نمیشود
        ولی وقتی دستور rdm.read را غیر فعال میکنم بقیه دستورات بعدی اجرا میشود
        با سپاس

        • سلام مجدد
          امکان بررسی به این صورت وجود ندارد و بایستی توضیحات دقیق تری اعلام کنید.

          • با درود و سلام
            ممنون مبشوم شماره واتساپی اعلام کنید تا از طریق واتساپ یا ایمیل بتوانم توضیح کامل بدهم
            وهمراه با تصویر کارم بهتر بتواتید کمک نمایید

            • با سلام
              دیجی اسپارک در شبکه های اجتماعی فعالیتی ندارد و تمامی موارد از همین طریق قابل پیگیری می‌باشد.

              • پس حداقل راهنمایی کنید که مشکل حل شود
                آردینو mega 2560 را با نمایشگر tft2.4 شیلد
                را اندازی کرده ام ولی چون خروجی نگرفتم نمایش متنی را قبل و بعد هر دستور گذاشتم تا ببینم مشکل از کدام قسمت است و دیدماز خط rdm.read به بعد اجرا نمیشود
                ولی وقتی دستور rdm.read را غیر فعال میکنم بقیه دستورات بعدی اجرا میشود
                در دستور خواندن از rdm هنگ میکند

                #include
                #include
                UTFTGLUE myGLCD(0x0154,A2,A1,A3,A4,A0);
                #include “RDM6300.h”
                #include
                //SoftwareSerial rdm_serial(tx-rdm, rx-rdm);
                SoftwareSerial rdm_serial(50, 50);
                RDM6300 rdm(&rdm_serial);

                int led_pin = 13;

                void blink(int n = 1)
                {
                for(int i = 0; i < n; i++) {
                digitalWrite(led_pin, HIGH);
                delay(200);
                digitalWrite(led_pin, LOW);
                delay(200);
                }
                }
                extern uint8_t SmallFont[];

                void setup()
                {
                randomSeed(analogRead(0));
                pinMode(A0, OUTPUT);
                digitalWrite(A0, HIGH);
                // Setup the LCD
                myGLCD.InitLCD();
                myGLCD.setFont(SmallFont);
                //////rdm6300/////
                pinMode(led_pin, OUTPUT);
                digitalWrite(led_pin, LOW);
                Serial.begin(115200);
                Serial.println("SETUP");
                blink(5);
                myGLCD.clrScr();
                myGLCD.setColor(255, 0, 0);
                myGLCD.fillRect(0, 0, 319, 250);
                myGLCD.setColor(64, 64, 64);
                myGLCD.fillRect(0, 226, 319, 239);
                myGLCD.setColor(255, 255, 255);
                myGLCD.setBackColor(255, 0, 0);
                myGLCD.print("salam :", CENTER, 50);
                delay(5000);
                void loop()
                {
                static const unsigned long long my_id = 0x0000ABCDEF;
                static unsigned long long last_id = 0;

                last_id = rdm.read();
                //Serial.print("RFID: 0x");
                myGLCD.clrScr();
                myGLCD.setColor(255, 0, 0);
                myGLCD.fillRect(0, 0, 319, 250);
                myGLCD.setColor(64, 64, 64);
                myGLCD.fillRect(0, 226, 319, 239);
                myGLCD.setColor(255, 255, 255);
                myGLCD.setBackColor(255, 0, 0);
                myGLCD.print("RFID: 0x:", CENTER, 50);
                delay(5000);

                // rdm.print_int64(last_id);
                myGLCD.printNumI(last_id,CENTER,200);
                ….
                دقیقا در last_id = rdm.read(); گیر میکند و وقتی بدون این خط اجرا میکنیم متن بعد از این خط در نمایشگر ظاهر میشود

                • سلام مجدد
                  کد ارسالی با متن آموزش کاملا متفاوت است و امکان پیگیری وجود ندارد. در این خصوص کتابخانه را بررسی نمایید. ممکن است ورژن جدیدی معرفی شده باشد.

  • سلام
    اشتراک ۳ ماهه خریدم ولی هر دو روز مشکل لاگین دارم ارسال مجدد لینک فعال ایمیل زدم ایمیل واسم میاد ولی بدون لینک لطفا بررسی کنید aalirezaaaa39@gmail.com

    • با سلام
      جت پیگیری از طریق لینک زیر بخش در بخش ارسال تیکت سریع گزینه اسپارکرها را انتخاب کنید.

    • با سلام
      کاربر گرامی ضمن تشکر از پیشنهاد شما، در صورت امکان آموزش داده خواهد شد.

  • سلام خسته نباشید من وقتی برنامه رو داخل نرم افزار آردینو وارد میکنم خط دوم #include “RDM6300.h”ارور میشه که چنین فایل یا مسیری یافت نشد ممنون میشم اگه راهنمایی کنید

  • سلام و درود
    احوال
    براوو بانو. ایول …دیدن خانم ها در چنین مسالی باعث حیرت است
    یه سوال دارم تا چه اندازه می توان آنتن را کوچک کرد؟
    طراحی آنتن هم بلد هستید
    ممنون میشم جواب بدین سپاس

    • با سلام
      سپاس از همراهی شما
      این مورد توسط بنده تست نشده است و برای این ماژول آنتن دیگری طراحی شده است.