در این مقاله میخواهیم نحوه استفاده از RFID ریدر مدل RC522 را بیان کنیم. با سیسوگ همراه باشید تا با مشخصات این RFID بیشتر آشنا شوید و همچنین نمونه پروژهای از آن با استفاده از آردوینو را ببینید.
RFID:
در واقع RFID کلمه اختصاری بازشناسایی با امواج رادیویی است. RFID از میدان مغناطیسی برای انتقال اطلاعات در فاصله کوتاه استفاده میکند. میتوان در مواردی همچون شناسایی افراد، معاملات و … از آن استفاده کرد.
میتوانید از سیستم RFID برای باز کردن درب استفاده کنید. بدین صورت که تنها شخص با کارت دارای اطلاعات مناسب میتواند وارد شود.
سیستم RFID به منظور شناسایی از برچسبهایی که به اشیاء متصل میشوند استفاده میکند. به عنوان مثال در تصویر زیر، یک جا کلیدی (keychain) و یک کارت الکترومغناطیسی را میبینید که هر تگ شناسه (UID) مخصوص به خود دارد.
سیستم RFID از فرستنده و گیرنده رادیویی دو طرفه نیز استفاده میکند. بدین صورت که ریدر یک سیگنال به تگ ارسال می کند و پاسخ آن را می خواند.
مشخصات ماژول RC522 :
ولتاژ ورودی: 3.3V
قیمت: حدود 21 هزار تومان (البته بهتر است قیمت روز بازار ایران را مد نظر قرار دهیم)
فرکانس: 13.56 مگاهرتز
دانلود کتابخانه RC522 :
در اینجا کتابخانه ای که برای این پروژه نیاز دارید قرار دارد:
کتابخانه RFID نوشته شده توسط miguelbalboa را از اینجا دانلود کنید.
کتابخانه RFID را از حالت زیپ خارج کنید.
کتابخانه RFID را در آردوینو IDE خود نصب کنید.
آردوینو IDE خود را دوباره راه اندازی کنید.
اتصالات پینها:
پین
اتصال به Arduino Uno
SDA
Digital 10
SCK
Digital 13
MOSI
Digital 11
MISO
Digital 12
IRQ
unconnected
GND
GND
RST
Digital 9
3.3V
3.3V
توجه داشته باشید که تغذیه باید 3.3 ولت باشد.
مدار:
خواندن اطلاعات از تگ RFID :
پس از اینکه مدارتان آماده شد به File > Examples > MFRC522 > DumpInfo بروید و کدتان را آپلود کنید. پس از نصب کتابخانه RFID این کد در کتابخانه شما در دسترس است.
سپس سریال مانیتور را باز کنید. تصویری مشابه شکل زیر را میببینید.
کارت RFID یا keychain را به ریدر نزدیک کنید و تا زمانی که تمام اطلاعات نمایش داده شود، ریدر و تگ را نزدیک هم نگه دارید.
این اطلاعاتی است که می توانید از کارت بخوانید، از جمله UID کارت که در تصویر با کادر زرد مشخص شده است. این اطلاعات در حافظه ذخیره میشود و همانطور که در تصویر مشاهده کردید به سطر و ستون تقسیم میشود.
شما 1024 بایت ذخیره سازی داده دارید که به 16 بخش تقسیم شده و هر بخش توسط دو کلید A و B محافظت میشود.
UID کارت خود را یادداشت کنید، زیرا بعداً به آن نیاز دارید.
کد زیر را آپلود کنید:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/*
*
* All the resources for this project: http://randomnerdtutorials.com/
با سلام ، ممنون بابت مطالب خوبتون
من ی مشکل دارم : برنامه فقط id دو تا کارت همراه پک RFID را شناسایی میکنه ، من 5 عدد تگ جاسوئیچی هم خریدم اما ان ها را شناسایی نمیکنه ، چیکار کنم ؟
لطفا جواب بدین.
سلام . آیا امکانش هست اموزش راه اندازی این ماژول رو با زبان C ترجیحا کدویژن قرار بدید ؟ هیچ سورس خوب و کاملی در مورد این ماژول برای زبان C نیست توی اینترنت و واقعا خیلی ماژول پر کاربرد و خوش قیمتی هست
اگه توی لیست برنامه هاتون برای آینده هست جوابم رو به ایمیلم بفرستید ممنون
ممنون از پاسختون
شاید کسای دیگه هم این مطلب رو خونده باشن و دوست داشته باشن با GCC کار کنن ولی منبع اموزش خوب کاملی برای این کامپایلر وجود نداره در صورتی که چند تا سایت اموزش کامل کدویژن رو قرار دادن و اکثر کتاب ها و فیلم های اموزشی هم بر مبنای کدویژن تولید شده
در هر حال با GCC هم اگه کد رو قرار بدید ممنون میشم چون این 2 کامپایلر تفاوت های جزئی توی دستورات با هم دارن و میشه تبدیلشون کرد
سلام دوست عزیز ؛ واقعا جای تامل داره که چرا جامعه آکادمیک به این سمت حرکت کرده ! ای کاش در کشور قانون کپی رایت بهتر پیگیری میشد.
در حال حاظر در نظر دارم آموزش GCC رو برای میکروکنترلر ARM سری ST منتشر کنیم
قبلا نرم افزار Atmel Studio رو معرفی کردیم و نحوه کار با اون رو آموزش دادیم که اونم از GCC استفاده میکنه
سلام دوست عزیز شما LED را برای چه کاری نیاز دارید؟
در واقع این برنامه نیازی به LED نداره چون تمام اطلاعات در سریال مانیتور نمایش داده میشه ولی اگه نیاز به LED دارید باید دستور روشن شدن LED را متناسب با نیازتون در برنامه اضافه کنید.
من حقیقتا می خام باهاش رله راه اندازی کنه که اگه کارت درست بود رله روشن شه واگه اشتباه بود نه لطفا بگید
اگه می شه به ایمیلم پیام دهید به کدش نیاز شدید دارم
سلام. شما میتونید در بطن شرط if خط 52 برنامه که درست بودن کارت را چک می کند دستور روشن شدن رله یا هر چیز دیگه ای که نیاز دارید را اضافه کنید.
موفق باشید.
می شه شما برام این کارو بکنید چون وارد نیسنم وبه کدش احتیاج زیاد دارم
0
electronic girl
۱۰ بهمن ۱۳۹۷
سلام
من توی برنامه رله رو به پایه 11 وصل کردم که خودتون میتونین پایه رو تغییر بدید. اگه کارت درست باشه رله 1 ثانیه وصل میشه. کد را میتونین از لینک زیر دانلود کنین: https://paste.ofcode.org/Y5nwFg8iqm5dpMG5Kzfuhh
ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموتهای درب بازکن تا ریموتهای دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی میکنند و آنهم ارسال اطلاعات بهصورت بیسیم است....
امنیت همیشه و در همهی اعصار، مقولهی مهم و قابلتوجه ای بوده و همیشه نوع بشر به دنبال امنیت بیشتر، دست به ابداعات و اختراعات گوناگونی زده است. ریموت کنترل یکی از این اختراعات است. در این مقاله، به بررسی امنیت انواع ریموتهای کنترل خواهیم پرداخت....
با سلام ، ممنون بابت مطالب خوبتون
من ی مشکل دارم : برنامه فقط id دو تا کارت همراه پک RFID را شناسایی میکنه ، من 5 عدد تگ جاسوئیچی هم خریدم اما ان ها را شناسایی نمیکنه ، چیکار کنم ؟
لطفا جواب بدین.
سلام دوست عزیز
شاید اونها RFID نیستند و کارتهایی مثل مافیر هستند
دوستان میتونند یه نگاهی هم به https://github.com/esprfid/esp-rfid بندازند.
جامع و کامل با رابط گرافیکی و…
ممنون برای پیشنهادتون اتفاقا مقاله خیلی جالبی هم هست
سلام چطور میشه کارت دیگه ای هم اضافه کرد یو آی دی کارت دوم رو کجا باید بنویسیم.
خوب اونجایی که داره ایدی کارت رو مقایسه میکنه یه else if بذارید و همون الگوی بالا رو تکرار کنید یا توی همون شرط اول or کنید 🙂
سلام،
با تشکر بابت این آموزش خوب!
فقط یه سوال؛ آیا تگ های 125 کیلوهرتز هم بهش میخوره ؟
سلام دوست عزیز
این ماژول در واقع ماژولی هست که قادر به خودندن کارت های ۱۳.۵ مگاهرتزه و قادر نیست کارت های ۱۲۵ کیلوهرتز رو بخونه
سلام . آیا امکانش هست اموزش راه اندازی این ماژول رو با زبان C ترجیحا کدویژن قرار بدید ؟ هیچ سورس خوب و کاملی در مورد این ماژول برای زبان C نیست توی اینترنت و واقعا خیلی ماژول پر کاربرد و خوش قیمتی هست
اگه توی لیست برنامه هاتون برای آینده هست جوابم رو به ایمیلم بفرستید ممنون
سلام دوست عزیز
احتمالا سورسی در این خصوص منتشر میکنیم ولی با GCC
توصیه میکنم شما هم از Codevition به GCC مهاجرت کنید
دلیلشم مشخصه توصیه میکنم مقاله کامپایلر Codevisionavr در مقابل کامپایلر GCC و مقایسه تخصصی آنها رو مطالعه کنید.
ممنون از پاسختون
شاید کسای دیگه هم این مطلب رو خونده باشن و دوست داشته باشن با GCC کار کنن ولی منبع اموزش خوب کاملی برای این کامپایلر وجود نداره در صورتی که چند تا سایت اموزش کامل کدویژن رو قرار دادن و اکثر کتاب ها و فیلم های اموزشی هم بر مبنای کدویژن تولید شده
در هر حال با GCC هم اگه کد رو قرار بدید ممنون میشم چون این 2 کامپایلر تفاوت های جزئی توی دستورات با هم دارن و میشه تبدیلشون کرد
سلام دوست عزیز ؛ واقعا جای تامل داره که چرا جامعه آکادمیک به این سمت حرکت کرده ! ای کاش در کشور قانون کپی رایت بهتر پیگیری میشد.
در حال حاظر در نظر دارم آموزش GCC رو برای میکروکنترلر ARM سری ST منتشر کنیم
قبلا نرم افزار Atmel Studio رو معرفی کردیم و نحوه کار با اون رو آموزش دادیم که اونم از GCC استفاده میکنه
می تونم خواهش کنم شما کدو قرار بدید چون وارد نیستم اخه شدید نیاز دارم
سلام چطوری led بهش وصل کنیم لطفا بگید
سلام دوست عزیز شما LED را برای چه کاری نیاز دارید؟
در واقع این برنامه نیازی به LED نداره چون تمام اطلاعات در سریال مانیتور نمایش داده میشه ولی اگه نیاز به LED دارید باید دستور روشن شدن LED را متناسب با نیازتون در برنامه اضافه کنید.
من حقیقتا می خام باهاش رله راه اندازی کنه که اگه کارت درست بود رله روشن شه واگه اشتباه بود نه لطفا بگید
اگه می شه به ایمیلم پیام دهید به کدش نیاز شدید دارم
سلام. شما میتونید در بطن شرط if خط 52 برنامه که درست بودن کارت را چک می کند دستور روشن شدن رله یا هر چیز دیگه ای که نیاز دارید را اضافه کنید.
موفق باشید.
می شه شما برام این کارو بکنید چون وارد نیسنم وبه کدش احتیاج زیاد دارم
سلام
من توی برنامه رله رو به پایه 11 وصل کردم که خودتون میتونین پایه رو تغییر بدید. اگه کارت درست باشه رله 1 ثانیه وصل میشه. کد را میتونین از لینک زیر دانلود کنین:
https://paste.ofcode.org/Y5nwFg8iqm5dpMG5Kzfuhh