آردوینو, اینترنت اشیاء, پروژه, توصیه شده

ساخت درب بازکن RFID مجهز به وای فای و پنل مدیریت حرفه‌ای

ساخت درب بازکن RFID مجهز به وای فای و پنل مدیریت حرفه‌ای

در این پروژه، قصد داریم تا یک کنترل دسترسی (Access Control) حرفه‌ای با استفاده از ESP8266 راه اندازی کنیم. این پروژه قابلیت و قدرت مانور بسیار زیادی به شما می‌دهد. شما می‌توانید از با گوشی هوشمند یا لب تاب خود به وای فای دستگاه متصل شوید و به پنل مدیریت خود وارد شوید! شما در پنل خود امکانات بسیار زیادی دارید. برای مثال، می‌توانید تا 1000 نفر را به لیست افراد مجاز اضافه کنید و گزارشی از عبور و مرورهای اخیر را ببینید. همچنین این پروژه از چند ماژول کارت خوان مختلف پشتیبانی می‌کند که به شما اجازه می‌دهد از کارت‌های 125 کیلوهرتز، مایفیر 13.5 مگاهرتز، تگ‌های هوشمند و همین طور قابلیت NFC گوشی خود استفاده کنید.

این پروژه، یکی از بهترین پروژه‌های رایگان در زمینه کنترل دسترسی است. پس، با سیسوگ همراه باشید!

 

اکسس کنترل پیست؟

دستگاه‌های اکسس کنترل (Access Control) جهت کنترل ورود و خروج اماکن استفاده می‌شود که از طریق خروجی رله به انواع قفل‌های برقی متصل می‌شود و از طریق چهره، اثر انگشت، کارت و دیگر ادوات شناسایی، به در فرمان می‌دهد تا باز شود.

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

 

سخت افزار

برای راه اندازی این پروژه، حداقل به موارد زیر احتیاج دارید:

  • ماژول ESp8266 یا بردهای توسعه‌ای مثل WeMos D1 mini یا NodeMcu 1.0 fh pnhrg (با حداقل 4 مگابایت فضای فلش)
  • ماژول MFRC522 PCD یا PN532 NFC Reader یا RDM300 125Khz RFID و یا ماژول‌های Wiegand
  • رله یا LED یا هر مدار دلخواه (برای خروجی)
  • تعدادی کارت متناست با نوع ماژول (مایفیر کلاسیک 1KB یا 125 کیلوهرتز و…) برای شناسایی افراد

در این سیستم کنترل هوشمند، از قابلیت SDK ماژول وای فای ESP8266 یا NodeMcu استفاده شده است. بنابراین این ماژول هم به عنوان ماژول وای فای و هم به عنوان میکروکنترلر در مدار عمل می‌کند. همین امر باعث می‌شود هزینه نهایی مدار کاهش یابد. از طرفی، برای خواندن شناسه کارت هوشمند، می‌توانید از هر یک از ماژول‌های MFRC522، PN532، RDM6300 و Wiegand استفاده کنید.

 

کدام ماژول کارت خوان را استفاده کنیم؟

هر کدام را که در دسترس دارید! این که از کدام نوع کارت خوان استفاده می‌کنید، هم دلخواه است و هم بستگی به عوامل مختلفی مثل نوع کارت‌های شما، میزان هزینه‌ای که می‌کنید، در دسترس بودن ماژول و غیره دارد. برای مثال کارت خوان‌های RC522 و PN532 هر دو از کارت‌های مایفیر حافظه دار 13.5 مگاهرتز پشتیبانی کرده و قابلیت نوشتن و خواندن اطلاعات بر روی کارت را دارند. اما قیمت ماژول RC522 نسبت به PN532 ارزان‌تر است. فنّاوری تگ‌های NFC و گوشی‌های اندروید نیز در همین محدوده فرکانسی عمل می‌کند. اما تنها برخی از تگ‌های NFC توسط RC522 پشتیبانی می‌شوند، اما همه‌ی آن‌ها توسط PN532 پشتیبانی می‌شوند. دقت داشته باشید که در این پروژه تنها به خواندن شناسه کارت نیاز داریم و نیازی به امکانات بیشتر برای خواندن و نوشتن در بلوک‌های دیگر کارت را نداریم. همچنین اگر دستگاه تنها شما از یکی از کارت‌ها پشتیبانی کند، کافی است! بنابراین ساده‌ترین و ارزان‌ترین ماژول را انتخاب کنید. ما در این پروژه ماژول RC522 را انتخاب کردیم.

 

ماژول کارت خوان خود را مطابق جدول زیر به ماژول ESP8266 متصل کنید:

نحوه سیم کشی ماژول به ESP8266

اگر ماژول شما از پروتکل ارتباطی Wiegand استفاده می‌کند، می‌توانید از طریق پنل مدیریت پایه‌ی D0 و D1 را تغییر دهید. زیرا به‌طور پیش فرض D0 پایه‌ی GPIO-4 و D1 پایه‌ی GPIO-5 می‌باشد.

 

نصب و راه اندازی

گام اول – دانلود پروژه

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

صفحه انتشار پروژه در گیت هاب

 

گام دوم- آپلود فایل باینری

شما می‌توانید سورس پروژه را درون platformIO یا نرم افزار آردوینو باز کرده و سپس کد را به سلیقه خود تغییر دهید و کامپایل کنید. اما فایل کامپایل شده نیز به‌صورت باینری برای دانلود وجود دارد. اگر نسخه کامپایل شده پروژه را دانلود کردید، آن را در محل مناسبی بر روی کامپیوتر خود استخراج کنید و داخل پوشه bin شوید. شما می‌توانید فایل generic.bin داخل این پوشه را بر روی ESP8266 آپلود نمایید. اما برای راحتی بیشتر شما، ابزاری وجود دارد که کار آپلود را انجام می‌دهد. ابتدا برد خود را به کامپیوتر متصل کنید. درون همین پوشه، فایل flash.bat را اجرا کنید. با صفحه‌ای مشابه زیر مواجه خواهید شد:

ابزار آپلود فایل فلش

تنها کافی ست عدد یک را از روی صفحه کلید وارد کرده، اینتر را بزنید و کمی صبر کنید تا فایل فریمور بر روی برد شما آپلود شود.

 

گام سوم – پیکربندی اولیه

شما می‌توانید به‌صورت اختیاری پنجره نمایشگر سریال را باز کنید تا اطلاعات بیشتری از اتفاقات در حال انجام ببینید. در این مرحله کافی است تا با تلفن هوشمند خود وای فای را اسکن کرده و به “esp-rfid-xxxxxx” متصل شوید. حال درون مرورگر خود نشانی http://192.168.4.1 را باز کنید و با گذرواژه admin به محیط کنترل پنل خود وارد شوید.

صفحه ورود و لاگین به ESP

 

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

صفحه اصلی کنترل پنل دسترسی حرفه‌ای ESP

 

حال وارد بخش تنظیمات (Setting) شوید و از محیط مدیریت حرفه‌ای خود لذت ببرید!

صفحه تنظیمات عمومی کنترل دسترسی حرفه‌ای

 

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

تغییرات را ذخیره کنید و ESP را ریست کنید.

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

مجدداً وارد کنترل پنل خود شده و وارد منوی کاربران (Users) وارد شوید. حال شما می‌توانید کارت‌های مجاز را اسکن کرده و برای هر کدام یک نام کاربری یا برچسب اختصاص دهید. با انتخاب “Allow Access” شما می‌توانید دسترسی کارت موردنظر را مجاز و با استفاده از دکمه “ADD” می‌توانید کارت‌های دیگری را نیز اضافه کنید.

اضافه کردن کارت مجاز برای ورود به کنترل دسترسی حرفه‌ای

اگر اینترنت برد متصل شود، ESP به‌طور خودکار زمان را با یک سرور NTP بروز رسانی می‌کند. همچنین از طریق کنترل پنل نیز می‌توانید ساعت را تنظیم کنید.

 

همه چیز آماده است!

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

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

 

امنیت

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

 

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

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

35 دیدگاه در “ساخت درب بازکن RFID مجهز به وای فای و پنل مدیریت حرفه‌ای

  1. Avatar for Hadi Hadi گفت:

    سلام، وقت بخیر
    ممنون برای مطالب خوبتون.
    من کد کامپایل شده رو روی nodemcu فلش زدم و با ماژول PN532 مدار رو کامل طبق آموزش وصل کردم، کلید روی ماژول رو هم روی حالت SPI گذاشتم. تست رله هم در پنل زدم کار میکنه. اما توی بخش user که میرم هر نوع کارتی رو روی ماژول میگیرم اتفاقی نمیفته و اسکن نمیکنه.
    حتی برای اطمینان با NFC گوشی کد UID کارت رو گرفتم و به صورت دستی یک یوزر وارد برنامه کردم بازم کارت رو کلا اسکن نمیکنه.
    پین مربوط به SS رو هم 15 گذاشتم هم پایه های دیگه رو امتحان کردم تاثیری توی این موضوع نداشت.
    با دو عدد Nodemcu و دو عدد ماژول PN532 متفاوت تست کردم فرقی نکرد. ماژول های PN532 رو هم با یه کد ساده تر و آردوینو uno تست کردم مشکلی نداشت و کارت رو اسکن میکرد.
    ممنون میشم راهنمایی کنید، دیگه نمیدونم باید چیکار کنم که اسکن رو انجام بده.

  2. Avatar for محمدرضا طاهریان محمدرضا طاهریان گفت:

    سلام من میتونم این دستگاه را به صورت ساخته شده بخرم

    1. Avatar for Sisoog Os Sisoog Os گفت:

      سلام نه متاسفانه
      کلیه داکیومنت ها و موارد بصورت کامل قرار داده شده که شما بتونید خودتون اون را بسازید

  3. Avatar for yoosof yoosof گفت:

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

  4. Avatar for yoosof yoosof گفت:

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

  5. Avatar for علی علی گفت:

    برای ویرایش کد برنامه و وب سرور میتونید راهنمایی کنید؟

    1. Avatar photo Digi Boy گفت:

      شما برای طراحی پنل باید به مباحث طراحی وب سایت، و موضوعاتی مثل
      html, css, javascript و bootstrap
      آشنا باشید تا بتونید پنل رو طبق میل خودتون تغیییر بدید.

  6. Avatar for علی علی گفت:

    ببخشید من خیلی خوب متوجه نشدم
    توضیح دادین که ماژول RF چه طور به nudemcu متصل بشه ولی خروجی رو از کجا بگیریم؟
    قفل رو به کدوم پایه ها باید وصل کرد و اینکه رله 3.3 ولت از کجا میشه گیر آورد که قفل 12 ولت ما رو فعال کنه؟

    1. Avatar photo Digi Boy گفت:

      درود بر شما.
      توی فایل main.cpp که داخل گیت هاب پروژه میتونید پیداش کنید، خط 48 کد زیر رو میتونید ببینید:
      int relayPin = 13;
      یعنی رله به پایه 13 وصل هست. رله 3.3 و یا ماژول راه اندازش رو خیلی راحت میتونید داخل موتور جستجو آی‌سی سیسوگ جستجو کنید، خیلی از فروشگاه ها اون رو دارن:
      isee.sisoog.com
      اما معمولا قیمت رله های 3.3 گرون تره، میتونید توی اینترنت جستجو کنید و با طراحی یه مدار راه انداز کوچک، همون رله 5 ولتی رو هم با 3.3 راه اندازی کنید.

      1. Avatar for علی علی گفت:

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

        فقط میخواستم بدونم کدوم یکی از دوستان تونسته یه باکس خوب برای این مجموعه پیدا کنه ؟ شما باکس برای این مدار ها دارید ؟

        1. Avatar photo Digi Boy گفت:

          درود بر شما.
          من پروژه رو خیلی وقت پیش راه‌اندازی کردم، کدوم پایه برای رله بود؟ جعبه زیاد هست، توی پالت سیسوگ میتونید پیدا کنید:
          pallet.sisoog.com

          1. Avatar for علی علی گفت:

            من از پایه 16 استفاده کردم یعنی D0 که وقتی وارد وب سرور میشین میشه تو بخش تنظیمات تغییرش داد
            الآن یه سوال دارم و اون اینه اگر تغییری توی کد بدم چه طور میتونم اون رو کامپایل کنم برای nodemcu چون چند صفحه هست

          2. Avatar photo Digi Boy گفت:

            اگر سورس کد رو بخونید، متوجه میشید که در فایل src/websocket.esp تنظیمات داخل فایل config.json ذخیره می‌شوند. شما باید با برنامه نویسی یا روش هایی که هست، محتویات این فایل رو بخونید یا تغییر بدید.

          3. Avatar for علی علی گفت:

            عذرخواهی میکنم خیلی وقت شما رو میگیرم
            مشکل اصلی من اینه که سورس ها رو که تغییر دادم چه طور بریزم روی nodemcu؟
            چون فایل ها رو نرم افزار آردینو باز نمیکنه و اگر هم باز کنه یک فایل رو میفرسته ولی این سورس چندین فایل داره

          4. Avatar photo Digi Boy گفت:

            درود بر شما، کد آردوینو هم میتونه چندین فایل داشته باشه، به شرطی که داخل نرم افزار اون ها رو اضافه کنید و همین‌طور فایل‌های سرآیند اون رو در کد اضافه کرده باشید. توی این پروژه، فولدر src کدهای پروژه هست و main.cpp کد اصلی هست. از IDE های دیگه ای هم میتونید به جز آردوینو استفاده کنید و برای راحتی هم میتونید پسوند main.cpp رو به ino تغییر بدید (البته اگر لازم بود تغییرات جزئی دیگه ای هم باید توی نام فایل‌ها بدید.)

          5. Avatar for علی علی گفت:

            من با تغییر پسوند فایل main تونستم تو نرم افزار آردینو
            سورس رو باز کنم ولی میگه فایل ArduinoJson.h موجود نیست خب توی cpp هم اگر فایل های سرآیند نباشند مشکل پیدا میشه….
            میخواستم بدونم امکانش هست که شما یا دوستان دیگه از طریق واتسآپ یا ایمیل به بنده کمک کنید؟

          6. Avatar photo Digi Boy گفت:

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

  7. Avatar for VHD VHD گفت:

    سلام
    پروژه جالبیه
    ممنون
    ولی الان دقیقا کجاشو میشه با آردوینو ویرایش کرد؟!

    1. Avatar for Sisoog Os Sisoog Os گفت:

      دوست عزیز میتونید سورس را در لینک زیر که البته در مطلب هم هست دانلود کنید و ویرایش کنید
      https://github.com/esprfid/esp-rfid/releases

  8. Avatar for علیرضا علیزاده علیرضا علیزاده گفت:

    سلام
    پروژه خیلی خوبیه فقط ی ایراد داره اونم اینه که وقتی مدار ریست میشه ی لحظه ریله فعال میشه . کسی میدونه این مشکلو چجور میشه حل کرد ؟

    1. Avatar photo Digi Boy گفت:

      درود بر شما.
      جای پایه رو عوض کنید، داکیومنت ها رو هم با دقت مطالعه کنید، اگر مشکل برطرف نشد، در قسمت issues گیت هاب جستجو کنید، اگر کسی قبلا مشکل شما رو نداشته، همونجا مطرح کنید تا برنامه نویس پروژه مشکل رو برطرف کنه.

      1. Avatar for علیرضا علیزاده علیرضا علیزاده گفت:

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

        1. Avatar photo Digi Boy گفت:

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

  9. Avatar for روزبه بابازاده روزبه بابازاده گفت:

    سلام
    دوستان کسی موفق به راه اندازی این پروژه از طریق PLATFORM IO شده ؟ در خط Ticker mqttReconnectTimer; ارور زیر رو میگیریم
    src\main.cpp:88:8: error: no matching function for call to ‘Ticker::Ticker()’

    1. Avatar photo Digi Boy گفت:

      درود بر شما.
      احتمالا لینک زیر بتونه به شما کمک کنه:
      https://github.com/proddy/EMS-ESP/issues/4

  10. Avatar for حسین حسین گفت:

    سلام
    بسیار ممنون از پروژه بسیار خوبتون
    واسه تعریف کارت ها، خود برد کد رو اسکن کد رو انجام میده یا باید دستی وارد کنیم؟؟؟

    1. Avatar photo Digi Boy گفت:

      درود بر شما.
      خواهش می‌کنم.
      هم میتونید اسکن کنید و هم میتونید دستی وارد کنید.

      1. Avatar for حسین حسین گفت:

        ممنون از پاسخ
        فقط روشش رو میشه بگید
        من متوجه نشدم چطوری میشه اسکن کرد

        1. Avatar photo Digi Boy گفت:

          درود بر شما.
          طبق چیزی که خود سازنده نوشته:
          Go to “Users” page
          Scan a PICC (RFID Tag) then it should glimpse on your Browser’s screen.
          Type “User Name” or “Label” for the PICC you scanned.
          Choose “Allow Access” if you want to
          Click “Add”
          یعنی اینکه اول وارد بخش کاربران (USERS) بشید. بعد کارت مورد نظرتون رو به کارت خوان نزدیک کنید. در صورتی که کارت خوان به درستی متصل شده باشد، خود به خود پیامی بر روی صفحه باز می‌شود که شما می‌توانید برای کارت مورد نظر اسم یا برچسب انتخاب کنید و دسترسیش رو هم مشخص کنید. در نهایت هم با زدن دکمه ADD می تونید کارت رو اضافه کنید.

          1. Avatar for حسین محمدی حسین محمدی گفت:

            ممنون بابت راهنمایی
            بله همینطوره
            ولی یه نکته اینکه قبلش حتما باید نوع reader و پایه SS رو مشخص کنیم

          2. Avatar photo Digi Boy گفت:

            خواهش می کنم.
            ممنون که تجربتون رو به اشتراک گذاشتید.

  11. Avatar for روزبه بابازاده روزبه بابازاده گفت:

    سلام
    پروژه جالبیه ممنون بابت شیر کردنش
    یه سوال داشتم چطور میتونم صفحات کانفیگی مثل این پروژه رو برای پروژه های دیگه درست کرد

    1. Avatar photo Digi Boy گفت:

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

      1. Avatar for روزبه بابازاده روزبه بابازاده گفت:

        ممنون
        منظورم روش ساخت صفحات مختلف هست . سوالم مربوط به این پروژه نیست فقط این پروژه صفحات خیلی تمیزی داره برای همین به این فکر افتادم که برای پروژه های دیگه هم صفحات کانفیگی به این تمیزی درست کنم تو ESP

        1. Avatar photo Digi Boy گفت:

          درود بر شما.
          اینکه شما صفحه ای رو از ESP درخواست کنید، کمی مبحث طولانی دارد. اما در همین حد بگم که شما ESP رو در حالت سرور پیکر بندی می کنید، یعنی به درخواست هایی که سمت اون میاد میتونید پاسخ بدید و URL های مختلفی رو براش تعریف کنید. اگر ESP رو به درستی به آردوینو اضافه کرده باشید (آموزشی که لینک داده شد)، میتونید برنامه نمونه زیر رو تست کنید تا بیشتر متوجه بشید:
          Examples->ESP8266HTTPClient->BasicHttpClient
          با

          ESP8266WebServer server(80);
          سرور روی پورت 80 راه اندازی میشه.
          با server.on
          میتونید صفحات مختلف (لینک ورودی) برای خودتون ایجاد کنید.
          آی پی دستگاه هم موقع روشن شدن توی پورت سریال نمایش داده میشه.
          برای مثال:
          192.168.1.4:80/gif

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

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