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

ابتدا باید کتابخانه RFID را برای MFRC522 نصب کنید.

مخاطبین روی ماژول ماژول RC522 RFID باید به آردوینو متصل باشد. برای اتصال، استفاده از سیم پدر-مادر راحت است.


شرح مخاطبین در ماژول RFID RC522:

  • VCC - قدرت. نیاز به 3.3 ولت؛
  • RST - تنظیم مجدد. بازنشانی خط هرگز به پین ​​RESET در CraftDuino متصل نشوید! این پین به یک پورت دیجیتال با PWM می چسبد.
  • GND - زمین. زمین
  • MISO - Master Input Slave Output - داده‌ها از Slave به Master، SPI.
  • MOSI - Master Output Slave Input - داده ها از Master به Slave، SPI.
  • SCK - ساعت سریال - سیگنال ساعت، SPI.
  • NSS - Slave Select - Slave Selection, SPI.
  • IRQ - خط وقفه؛
MFRC522 آردوینو اونو آردوینو مگا آردوینو نانو نسخه 3 آردوینو لئوناردو/میکرو آردوینو پرو میکرو
RST 9 5 D9 RESET/ICSP-5 RST
SDA (SS) 10 53 D10 10 10
MOSI 11 (ICSP-4) 51 D11 ICSP-4 16
میسو 12 (ICSP-1) 50 D12 ICSP-1 14
SCK 13 (ICSP-3) 52 D13 ICSP-3 15
3.3 ولت 3.3 ولت 3.3 ولت استابلایزر 3.3 ولت استابلایزر 3.3 ولت استابلایزر 3.3 ولت
GND GND GND GND GND GND

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

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



لازم است صحت ثابت های داده شده را بررسی کنید:

#define SS_PIN 10 #define RST_PIN 9 // این ثابت ها مطابقت دارند

اکنون طرح را در آردوینو آپلود کرده و آن را روشن کنید مانیتورینگ پورت سریال

ما برچسب را به خواننده می آوریم و ماژول تمام داده های این برچسب را می خواند، به عنوان مثال، شناسه منحصر به فرد برچسب UID.

فیلم عملیات RFID-RC522:

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

RFID (انگلیسی شناسایی فرکانس رادیویی، شناسایی فرکانس رادیویی) روشی برای شناسایی خودکار اشیاء است که در آن داده‌های ذخیره شده در به اصطلاح فرستنده‌ها یا برچسب‌های RFID با استفاده از سیگنال‌های رادیویی خوانده یا نوشته می‌شوند. هر سیستم RFID از یک خواننده (خواننده، خواننده یا بازپرس) و یک فرستنده (با نام مستعار برچسب RFID، گاهی اوقات از اصطلاح برچسب RFID نیز استفاده می شود) تشکیل شده است.

این آموزش از یک تگ RFID با آردوینو استفاده می کند. دستگاه شناسه منحصر به فرد (UID) هر تگ RFID را که در کنار خواننده قرار می دهیم می خواند و آن را روی صفحه نمایش OLED نمایش می دهد. اگر UID تگ برابر با مقدار از پیش تعریف شده ای باشد که در حافظه آردوینو ذخیره می شود، پیام Unlocked را روی نمایشگر خواهیم دید. اگر شناسه منحصر به فرد با مقدار از پیش تعریف شده برابر نباشد، پیام "Unlocked" ظاهر نمی شود - عکس زیر را ببینید.

قلعه بسته است

قلعه باز است

مرحله 1: قطعات، لوازم جانبی

جزئیات مورد نیاز برای ایجاد این پروژه:

  • RFID Reader RC522
  • صفحه نمایش OLED
  • تخته نان
  • سیم ها

توضیحات بیشتر:

  • باتری (پاور بانک)

هزینه کل اجزای پروژه تقریباً 15 دلار بود.

مرحله 2: RFID Reader RC522

هر تگ RFID یک تراشه کوچک دارد (کارت سفید در عکس). اگر چراغ قوه را به سمت این کارت RFID بگیرید، می توانید یک تراشه کوچک و یک سیم پیچ را ببینید که آن را احاطه کرده است. این تراشه باتری برای تولید برق ندارد. با استفاده از این سیم پیچ بزرگ، برق را از خواننده به صورت بی سیم دریافت می کند. خواندن کارت RFID مانند این از فاصله 20 میلی متری امکان پذیر است.

همین تراشه در تگ های کلید فوب RFID وجود دارد.

هر تگ RFID دارای شماره منحصر به فرد، که آن را شناسایی می کند. این UID است که بر روی صفحه نمایش OLED نشان داده شده است. به استثنای این UID، هر تگ می تواند داده ها را ذخیره کند. این نوع کارت می تواند تا 1000 داده را ذخیره کند. چشمگیر است، اینطور نیست؟ این ویژگی امروز مورد استفاده قرار نخواهد گرفت. امروزه تنها چیزی که مورد توجه است شناسایی یک کارت خاص توسط UID آن است. ریدر RFID و این دو کارت RFID حدود 4 دلار قیمت دارند.

مرحله 3 صفحه نمایش OLED

این آموزش از یک نمایشگر 0.96 اینچی 128x64 I2C OLED استفاده می کند.

این صفحه نمایش بسیار خوبی برای استفاده با آردوینو است. این یک نمایشگر OLED است و به این معنی است که مصرف انرژی پایینی دارد. توان مصرفی این نمایشگر حدود 10-20 میلی آمپر است و بستگی به تعداد پیکسل دارد.

رزولوشن صفحه نمایش 128 در 64 پیکسل و ابعاد بسیار کوچکی دارد. دو گزینه نمایش وجود دارد. یکی از آنها تک رنگ است و دیگری، مانند آنچه در آموزش استفاده شده است، می تواند دو رنگ زرد و آبی را نمایش دهد. بالای صفحه فقط می تواند زرد باشد و قسمت پایین- آبی.

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

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

مرحله 4: قرار دادن تمام قطعات در کنار هم

امروزه استفاده از فناوری شناسایی فرکانس رادیویی (RFID) بسیار رایج شده است. بسیاری از برنامه ها در حال پیاده سازی هستند مناطق مختلفزندگی ما و برای اهداف مختلف استفاده می شود. RFID جمع آوری داده های بی سیم را با استفاده از برچسب خوان های الکترونیکی متصل یا تعبیه شده در اشیاء برای شناسایی و اهداف دیگر امکان پذیر می کند. این مقاله نحوه ساخت یک دستگاه کنترل دسترسی RFID ساده و خانگی را با استفاده از Arduino UNO و یک خواننده RFID (EM-18) برای کنترل یک LED و یک رله نشان می‌دهد. نمودار سیم کشیو طرح آردوینو ( منبع) در زیر ارائه شده است.

وقتی فعال باشد، خواننده یک سیگنال RF ارسال می کند. هنگامی که یک تگ RFID در نزدیکی یک خواننده قرار می گیرد، سیگنال RF را از طریق آنتن داخل تگ دریافت می کند. سیگنال RF دریافتی به انرژی الکتریکی تبدیل می شود که برای انتقال داده ها از برچسب به خواننده RFID کافی است. علاوه بر این، خواننده شناسه برچسب را در طول ارسال می کند دستگاه خارجیروی پورت داده سریال طیف گسترده ای از مدل های خواننده در حال حاضر در دسترس هستند. رایج ترین و راحت ترین ماژول EM-18 است. این ماژول تگ های غیرفعال RFID را خوانده و شناسه تگ را به میکروکنترلر آردوینو ارسال می کند.

خواندنشناسه تگ RFID

برای شروع، یک برنامه ساده دانلود کنید کد برنامه نویسی rfid1.inoکه در آردوینو اونوبا استفاده از ابزار توسعه IDE

حالا مدار را مطابق شکل زیر مونتاژ کنید.

مانیتور سریال را در Arduino IDE باز کنید، تگ RFID را خیلی نزدیک به مرکز خواننده RFID نگه دارید و شناسه تگ نمایش داده شده را یادداشت کنید. این شناسه منحصر به فرد در طرح بعدی مورد نیاز خواهد بود! (تگ ما دارای شناسه 51005F46642C است)

کنترل دسترسی

در این مرحله، سیستم به گونه ای پیکربندی شده است که شناسه منحصر به فرد (برچسب در حال استفاده) را با شناسه هر برچسبی که باید خوانده شود، مقایسه کند.

اتصال موجود را تجزیه کنید و یک طرح جدید آپلود کنید rfid2.inoبه میکروکنترلر آردوینو

همانطور که در شکل بالا نشان داده شده است، قطعات سخت افزاری را مجددا سیم کشی کنید (با برخی تغییرات). در اینجا خروجی D12 است میکروکنترلر آردوینوبرای راه اندازی یک LED استاندارد 5 میلی متری استفاده می شود. پایه D13 برای کنترل رله الکترومغناطیسی از طریق ترانزیستور کنترل استفاده می شود. هر بار که یک علامت مطابقت داده می شود، یک سیگنال کنترل بالا به مدت 5 ثانیه در پایه D13 ظاهر می شود. رله می تواند برای کنترل یک بار خارجی مانند توقف درب استفاده شود. اگر مقادیر برچسب مطابقت نداشته باشند، یک سطح سیگنال پایین در خروجی D13 باقی می ماند، اما در همان زمان، یک سیگنال در خروجی D12 ظاهر می شود. سطح بالابرای راه اندازی ال ای دی هشدار

1 شرح خواننده RFID RC522

ماژول RFID-RC522 بر اساس تراشه NXP MFRC522 ساخته شده است. این تراشه ارتباط بی سیم دو طرفه (تا 6 سانتی متر) را با فرکانس 13.56 مگاهرتز فراهم می کند.

تراشه MFRC522 پشتیبانی می کند گزینه های زیراتصالات:

با استفاده از این ماژولشما می توانید داده ها را از برچسب های مختلف RFID بنویسید و بخوانید: فوب کلید از دستگاه های مخابره داخل ساختمان، کارت های پاس پلاستیکی و بلیط های مترو و حمل و نقل زمینیو همچنین برچسب های NFC که به طور فزاینده ای محبوب هستند.

RFID مخفف "شناسایی فرکانس رادیویی" است و به عنوان "شناسایی فرکانس رادیویی" ترجمه می شود.
NFC "ارتباطات میدان نزدیک"، "ارتباطات میدان نزدیک" یا "ارتباطات بدون تماس نزدیک" است.

2 نمودار سیم کشی RFID-RC522 به آردوینو

بیایید طبق نمودار بالا، ماژول RFID-RC522 را از طریق رابط SPI به آردوینو متصل کنیم.


ماژول با ولتاژ 2.5 تا 3.3 ولت تغذیه می شود. بقیه پین ​​ها به صورت زیر به آردوینو متصل می شوند:

پین RC522پین آردوینو
RSTD9
SDA (SS)D10
MOSID11
میسوD12
SCKD13

همچنین فراموش نکنید که آردوینو یک ویژگی خاص دارد کانکتور ICSPبرای کار بر روی رابط SPI. پینوت آن نیز در تصویر نشان داده شده است. می توانید پایه های RST، SCK، MISO، MOSI و GND ماژول RC522 را به هدر ICSP در آردوینو متصل کنید.

3 کتابخانه برای کارآردوینو با RFID

تراشه MFRC522 عملکرد نسبتاً گسترده ای دارد. با بررسی پاسپورت او (دیتاشیت) می توانید با تمامی احتمالات آشنا شوید. ما برای آشنایی با امکانات هستیم این دستگاهما از یکی از کتابخانه های آماده که برای آن نوشته شده است استفاده خواهیم کرد کار آردوینوبا RC522. آن را دانلود کنید و در فهرست Arduino IDE\libraries\ استخراج کنید


نصب کتابخانه "rfid-master" برای آردوینو برای کار با تگ های RFID

سپس Arduino IDE را راه اندازی کنید.

4 طرحی برای خواندن اطلاعات،روی برچسب RFID نوشته شده است

حالا بیایید طرح را از مثال ها باز کنیم: نمونه فایل MFRC522 DumpInfoو آن را در حافظه آردوینو بارگذاری کنید.


این طرح نوع دستگاه متصل به ریدر را مشخص می کند و داده های نوشته شده روی تگ یا کارت RFID را می خواند و سپس آن را به پورت سریال خروجی می دهد.

#عبارتند از #عبارتند از const int RST_PIN = 9; // پین RST const int SS_PIN = 10; // پین SDA (SS) MFRC522 mfrc522(SS_PIN، RST_PIN); // یک شی MFRC522 ایجاد کنید void setup()( Serial.begin(9600); // مقداردهی اولیه آخرین. پورت SPI.begin(); // مقداردهی اولیه گذرگاه SPI mfrc522.PCD_Init(); // مقداردهی اولیه خواننده RC522 ) void loop() (// در انتظار اعمال یک تگ RFID جدید: if (! mfrc522.PICC_IsNewCardPresent()) (بازگشت؛ // خروج اگر اعمال نشد نقشه جدید) // شماره سریال را بخوانید: if (! mfrc522.PICC_ReadCardSerial()) (بازگشت؛ // اگر خواندن شماره سریال غیرممکن است خارج شوید) پورت: mfrc522.PICC_DumpToSerial(&(mfrc522.uid)); }

متن طرح کاملاً خوب توضیح داده شده است.

برای بیشتر آشنایی کاملبا فایل های کاوش کتابخانه MFRC522.hو MFRC522.cppاز دایرکتوری استاد rfid.

5 تخلیه داده هابا برچسب های RFID

مانیتور پورت سریال را با کلیدهای ترکیبی Ctrl + Shift + M از طریق منو راه اندازی کنید ابزاریا دکمه ذره بین حالا بیایید بلیط مترو یا هر تگ RFID دیگری را به خواننده وصل کنیم. مانیتور پورت سریال داده های نوشته شده روی برچسب RFID یا بلیط را نشان می دهد.


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

توجه داشته باشید

بله، با استفاده از ماژول RFID-RC522، می توانید داده ها را در بلیط مترو بنویسید. اما خودتان را چاپلوسی نکنید، هر کارت دارای شمارشگر غیرقابل بازنویسی چرخه های نوشتن است، بنابراین نمی توانید سفرها را به مترو خود اضافه کنید - بلافاصله شناسایی می شود و کارت توسط گردان رد می شود :) اما با استفاده از بلیط های مترو برای نوشتن مقادیر کمی داده بر روی آنها - از 1 تا 4 کیلوبایت - می توانید. و راه هایی که می توانید از آن استفاده کنید فقط توسط تخیل شما محدود شده است.

در این درس یاد خواهیم گرفت که چگونه این کار را انجام دهیم سیستم ساده، که قفل را باز می کند کلید الکترونیکی(متکه).

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

در این آموزش به موارد زیر نیاز خواهیم داشت:

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

2) حالا باید Buzzer را وصل کنید که اگر کلید کار کرد و قفل باز شد سیگنال می دهد و با بسته شدن قفل سیگنال دوم را می دهد.

زنگ را به ترتیب زیر وصل می کنیم:

آردوینو زنگ
5 ولت VCC
GND GND
پین 5 IO

3) یک سروو به عنوان مکانیزم باز کردن قفل استفاده خواهد شد. بسته به ابعاد مورد نیاز شما و نیروهایی که سروو ایجاد می کند، می توان هر سروو را انتخاب کرد. سروو دارای 3 پین است:

واضح‌تر، می‌توانید نحوه اتصال همه ماژول‌ها را در تصویر زیر ببینید:

حالا، اگر همه چیز متصل است، می توانید به برنامه نویسی بروید.

طرح:

#عبارتند از #عبارتند از #عبارتند از // کتابخانه "RFID". #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); uidDec طولانی بدون امضا، uidDecTemp. // برای ذخیره شماره تگ در فرمت اعشاری Servo servo. void setup() ( Serial.begin(9600); Serial.println("در انتظار کارت..."); SPI.begin(); // مقدار دهی اولیه SPI / گذرگاه SPI Init. mfrc522.PCD_Init(); // مقداردهی اولیه MFRC522 / راه اندازی MFRC522 card.servo.attach(6); servo.write(0); // سروو را روی حالت بسته تنظیم کنید) void loop() ( // جستجوی برچسب جدید اگر (! mfrc522.PICC_IsNewCardPresent()) ( return; ) // انتخاب برچسب if (! mfrc522.PICC_ReadCardSerial()) (return; ) uidDec = 0; // Issue شماره سریالبرچسب ها. برای (بایت i = 0؛ i< mfrc522.uid.size; i++) { uidDecTemp = mfrc522.uid.uidByte[i]; uidDec = uidDec * 256 + uidDecTemp; } Serial.println("Card UID: "); Serial.println(uidDec); // Выводим UID метки в консоль. if (uidDec == 3763966293) // Сравниваем Uid метки, если он равен заданому то серва открывает. { tone(5, 200, 500); // Делаем سیگنال صوتی، باز کردن servo.write(90); // سروو را 90 درجه بچرخانید (هر مکانیزم را باز کنید: قفل، کلید را بچرخانید و غیره) delay(3000); // 3 ثانیه مکث کنید و مکانیسم قفل است. تن (5، 500، 500)؛ // ایجاد یک بوق، بستن ) servo.write(0); // سرور را روی حالت بسته قرار دهید)

بیایید طرح را با جزئیات بیشتری تجزیه و تحلیل کنیم:

برای پیدا کردن UID کارت (برچسب ها)، باید این طرح را در آردوینو بنویسید، مدار توضیح داده شده در بالا را جمع آوری کنید و کنسول (مانیتورینگ پورت سریال) را باز کنید. وقتی تگ را به RFID می آورید، یک عدد در کنسول نمایش داده می شود

UID حاصل باید در خط زیر وارد شود:

اگر (uidDec == 3763966293) // Uid برچسب را مقایسه کنید، اگر برابر با مشخص شده باشد، سروو دریچه را باز می کند.

برای هر کارت، این شناسه منحصر به فرد است و تکرار نمی شود. بنابراین، هنگامی که کارتی را ارائه می دهید که شناسه آن را در برنامه تنظیم کرده اید، سیستم با استفاده از سروو دسترسی را باز می کند.

ویدئو: