در این پروژه، قصد داریم تا یک کنترل دسترسی (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 متصل کنید:
اگر ماژول شما از پروتکل ارتباطی 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 به محیط کنترل پنل خود وارد شوید.
پس از ورود با صفحهای مشابه زیر مواجه میشوید که خلاصهای وضعیت و عملکرد دستگاه را نشان میدهید.
حال وارد بخش تنظیمات (Setting) شوید و از محیط مدیریت حرفهای خود لذت ببرید!
میتوانید با استفاده از دکمه Scan به مودم وای فای خود متصل شوید، تنظیمات مربوط به کارت خوان، رله، رمز عبور پیش فرض و دیگر تنظیمات شخصی سازی را انجام دهید.
تغییرات را ذخیره کنید و ESP را ریست کنید.
پس از راه اندازی مجدد، ESP سعی میکند تا به وای فای شما متصل شود. آی پی محلی و جدید ESP را میتوانید از طریق پنجره سریال ببینید.
مجدداً وارد کنترل پنل خود شده و وارد منوی کاربران (Users) وارد شوید. حال شما میتوانید کارتهای مجاز را اسکن کرده و برای هر کدام یک نام کاربری یا برچسب اختصاص دهید. با انتخاب “Allow Access” شما میتوانید دسترسی کارت موردنظر را مجاز و با استفاده از دکمه “ADD” میتوانید کارتهای دیگری را نیز اضافه کنید.
اگر اینترنت برد متصل شود، ESP بهطور خودکار زمان را با یک سرور NTP بروز رسانی میکند. همچنین از طریق کنترل پنل نیز میتوانید ساعت را تنظیم کنید.
همه چیز آماده است!
از پروژه آماده، رایگان و حرفهای کنترل دسترسی خود لذت ببرید. اگر مشکلی برای شما پیش آمد، میتوانید در صفحه مشکلات، آن را گزارش دهید.
محیط کنترل پنل با استفاده از فنّاوری بوت استرپ ساخته شده و واکنش گرا میباشد. بنابراین آن را میتوانید در گوشی هوشمند خود بدون هیچ مشکلی باز کنید.
امنیت
به یاد داشته باشید که این پروژه ممکن است نتواند امنیت شما را بهصورت صد در صدی تأمین کند. زیرا کارتهایی وجود دارند که شناسه آنها قابل تغییر هستند. همچنین به یاد داشته باشید که پس از اولین ورود به کنترل پنل، حتماً رمز عبور پیش فرض را تغییر دهید. با وجود اینکه پروژه متن باز است و بروز رسانی میشود، اما با این حال ممکن است در آینده باگ کوچکی نیز پیدا شود که اجازه دسترسی کارتهای غیر مجاز را بدهد. این پروژه نیز مثل هر وسیله دیگری که به اینترنت متصل است، ممکن است مورد حملههای مختلفی قرار گیرد. بنابراین این پروژه را برای جاهایی که امنیت زیادی نیاز دارند، استفاده نکنید و یا تغییرات امنیتی خود را در کد اعمال کنید. همچنین بهتر است اینترنت و وای فای آن را خاموش کنید.
امیدوارم این پروژه برای شما مفید بوده باشد. لطفاً با معرفی سایت ما به دیگران و ارسال نظرات گرم خود، از ما حمایت کنید.
سلام، وقت بخیر
ممنون برای مطالب خوبتون.
من کد کامپایل شده رو روی nodemcu فلش زدم و با ماژول PN532 مدار رو کامل طبق آموزش وصل کردم، کلید روی ماژول رو هم روی حالت SPI گذاشتم. تست رله هم در پنل زدم کار میکنه. اما توی بخش user که میرم هر نوع کارتی رو روی ماژول میگیرم اتفاقی نمیفته و اسکن نمیکنه.
حتی برای اطمینان با NFC گوشی کد UID کارت رو گرفتم و به صورت دستی یک یوزر وارد برنامه کردم بازم کارت رو کلا اسکن نمیکنه.
پین مربوط به SS رو هم 15 گذاشتم هم پایه های دیگه رو امتحان کردم تاثیری توی این موضوع نداشت.
با دو عدد Nodemcu و دو عدد ماژول PN532 متفاوت تست کردم فرقی نکرد. ماژول های PN532 رو هم با یه کد ساده تر و آردوینو uno تست کردم مشکلی نداشت و کارت رو اسکن میکرد.
ممنون میشم راهنمایی کنید، دیگه نمیدونم باید چیکار کنم که اسکن رو انجام بده.
سلام من میتونم این دستگاه را به صورت ساخته شده بخرم
سلام نه متاسفانه
کلیه داکیومنت ها و موارد بصورت کامل قرار داده شده که شما بتونید خودتون اون را بسازید
باسلام
ممنون از سایت خوبتون
برنامه اصلی رو آردویینو ارور میده کتابخانش هم نصب کردم بازهم ارور میده ممنون میشم راهنمایی کنید.
سلام
خسته نباشید ممنون از پرژه خوبتون
در آردویینو npt ارور میده کتابخانش هم دانلود کردم ولی باز هم ارور میده ارور هم میگه فایل وجود مداره
ممنون میشم راهنمایی کنید.
برای ویرایش کد برنامه و وب سرور میتونید راهنمایی کنید؟
شما برای طراحی پنل باید به مباحث طراحی وب سایت، و موضوعاتی مثل
html, css, javascript و bootstrap
آشنا باشید تا بتونید پنل رو طبق میل خودتون تغیییر بدید.
ببخشید من خیلی خوب متوجه نشدم
توضیح دادین که ماژول RF چه طور به nudemcu متصل بشه ولی خروجی رو از کجا بگیریم؟
قفل رو به کدوم پایه ها باید وصل کرد و اینکه رله 3.3 ولت از کجا میشه گیر آورد که قفل 12 ولت ما رو فعال کنه؟
درود بر شما.
توی فایل main.cpp که داخل گیت هاب پروژه میتونید پیداش کنید، خط 48 کد زیر رو میتونید ببینید:
int relayPin = 13;
یعنی رله به پایه 13 وصل هست. رله 3.3 و یا ماژول راه اندازش رو خیلی راحت میتونید داخل موتور جستجو آیسی سیسوگ جستجو کنید، خیلی از فروشگاه ها اون رو دارن:
isee.sisoog.com
اما معمولا قیمت رله های 3.3 گرون تره، میتونید توی اینترنت جستجو کنید و با طراحی یه مدار راه انداز کوچک، همون رله 5 ولتی رو هم با 3.3 راه اندازی کنید.
ممنون از پاسخ شما از ترانزیستور برای این کار استفاده کردم و با طراحی یک مدار کاهنده ولتاژ کلا سیستم رو راه اندازی کردم
فقط میخواستم بدونم کدوم یکی از دوستان تونسته یه باکس خوب برای این مجموعه پیدا کنه ؟ شما باکس برای این مدار ها دارید ؟
درود بر شما.
من پروژه رو خیلی وقت پیش راهاندازی کردم، کدوم پایه برای رله بود؟ جعبه زیاد هست، توی پالت سیسوگ میتونید پیدا کنید:
pallet.sisoog.com
من از پایه 16 استفاده کردم یعنی D0 که وقتی وارد وب سرور میشین میشه تو بخش تنظیمات تغییرش داد
الآن یه سوال دارم و اون اینه اگر تغییری توی کد بدم چه طور میتونم اون رو کامپایل کنم برای nodemcu چون چند صفحه هست
اگر سورس کد رو بخونید، متوجه میشید که در فایل src/websocket.esp تنظیمات داخل فایل config.json ذخیره میشوند. شما باید با برنامه نویسی یا روش هایی که هست، محتویات این فایل رو بخونید یا تغییر بدید.
عذرخواهی میکنم خیلی وقت شما رو میگیرم
مشکل اصلی من اینه که سورس ها رو که تغییر دادم چه طور بریزم روی nodemcu؟
چون فایل ها رو نرم افزار آردینو باز نمیکنه و اگر هم باز کنه یک فایل رو میفرسته ولی این سورس چندین فایل داره
درود بر شما، کد آردوینو هم میتونه چندین فایل داشته باشه، به شرطی که داخل نرم افزار اون ها رو اضافه کنید و همینطور فایلهای سرآیند اون رو در کد اضافه کرده باشید. توی این پروژه، فولدر src کدهای پروژه هست و main.cpp کد اصلی هست. از IDE های دیگه ای هم میتونید به جز آردوینو استفاده کنید و برای راحتی هم میتونید پسوند main.cpp رو به ino تغییر بدید (البته اگر لازم بود تغییرات جزئی دیگه ای هم باید توی نام فایلها بدید.)
من با تغییر پسوند فایل main تونستم تو نرم افزار آردینو
سورس رو باز کنم ولی میگه فایل ArduinoJson.h موجود نیست خب توی cpp هم اگر فایل های سرآیند نباشند مشکل پیدا میشه….
میخواستم بدونم امکانش هست که شما یا دوستان دیگه از طریق واتسآپ یا ایمیل به بنده کمک کنید؟
درود بر شما
اون ها لایبری های کناری هستند که یا جداگانه از طریق خود نرم افزار آردوینو و ریپازیتوری اون میتونید جستجو کنید و به راحتی نصب میشوند، یا اینکه شما باید فایل زیپشون رو تک تک پیدا کنید و به آردوینو بدید تا نصب بشه!
اگر سوالی هم بود همینجا مطرح کنید سعی میکنیم در اولین فرصت پاسخگوی شما باشیم
سلام
پروژه جالبیه
ممنون
ولی الان دقیقا کجاشو میشه با آردوینو ویرایش کرد؟!
دوست عزیز میتونید سورس را در لینک زیر که البته در مطلب هم هست دانلود کنید و ویرایش کنید
https://github.com/esprfid/esp-rfid/releases
سلام
پروژه خیلی خوبیه فقط ی ایراد داره اونم اینه که وقتی مدار ریست میشه ی لحظه ریله فعال میشه . کسی میدونه این مشکلو چجور میشه حل کرد ؟
درود بر شما.
جای پایه رو عوض کنید، داکیومنت ها رو هم با دقت مطالعه کنید، اگر مشکل برطرف نشد، در قسمت issues گیت هاب جستجو کنید، اگر کسی قبلا مشکل شما رو نداشته، همونجا مطرح کنید تا برنامه نویس پروژه مشکل رو برطرف کنه.
سلام با تشکر از راهنماییتون با عوض کردن جای پایه مشکل حل شد حالا ی مشکل جدید به وجود اومده اونم اینه که ماژول کارتخوان هنگ میکنه.
دود بر شما، قاعدتاً نباید این اتفاق بیفتد. باز هم در صورت امکان با ماژولها و پایههای دیگر امتحان نمایید، اگر واقعاً ایراد از کد برنامه هست، داخل گیت هاب گزارش کنید.
متشکرم.
سلام
دوستان کسی موفق به راه اندازی این پروژه از طریق PLATFORM IO شده ؟ در خط Ticker mqttReconnectTimer; ارور زیر رو میگیریم
src\main.cpp:88:8: error: no matching function for call to ‘Ticker::Ticker()’
درود بر شما.
احتمالا لینک زیر بتونه به شما کمک کنه:
https://github.com/proddy/EMS-ESP/issues/4
سلام
بسیار ممنون از پروژه بسیار خوبتون
واسه تعریف کارت ها، خود برد کد رو اسکن کد رو انجام میده یا باید دستی وارد کنیم؟؟؟
درود بر شما.
خواهش میکنم.
هم میتونید اسکن کنید و هم میتونید دستی وارد کنید.
ممنون از پاسخ
فقط روشش رو میشه بگید
من متوجه نشدم چطوری میشه اسکن کرد
درود بر شما.
طبق چیزی که خود سازنده نوشته:
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 می تونید کارت رو اضافه کنید.
ممنون بابت راهنمایی
بله همینطوره
ولی یه نکته اینکه قبلش حتما باید نوع reader و پایه SS رو مشخص کنیم
خواهش می کنم.
ممنون که تجربتون رو به اشتراک گذاشتید.
سلام
پروژه جالبیه ممنون بابت شیر کردنش
یه سوال داشتم چطور میتونم صفحات کانفیگی مثل این پروژه رو برای پروژه های دیگه درست کرد
درود بر شما.
شما با اختصاص دادن آی پی منحصر به فرد در شبکه محلی برای ماژول، یا استفاده از حالت هات اسپات میتونید به ماژول متصل بشید. نمونه کد رو داخل همین برنامه، یا برنامه های دیگه ای که در سیسوگ قرار دادیم، می تونید مطالعه کنید. صفحات مدیریتی نیز با تکنولوژی طراحی صفحات وب، مثل بوت استرپ و… ساخته شده است.
ممنون
منظورم روش ساخت صفحات مختلف هست . سوالم مربوط به این پروژه نیست فقط این پروژه صفحات خیلی تمیزی داره برای همین به این فکر افتادم که برای پروژه های دیگه هم صفحات کانفیگی به این تمیزی درست کنم تو ESP
درود بر شما.
اینکه شما صفحه ای رو از ESP درخواست کنید، کمی مبحث طولانی دارد. اما در همین حد بگم که شما ESP رو در حالت سرور پیکر بندی می کنید، یعنی به درخواست هایی که سمت اون میاد میتونید پاسخ بدید و URL های مختلفی رو براش تعریف کنید. اگر ESP رو به درستی به آردوینو اضافه کرده باشید (آموزشی که لینک داده شد)، میتونید برنامه نمونه زیر رو تست کنید تا بیشتر متوجه بشید:
Examples->ESP8266HTTPClient->BasicHttpClient
با
ESP8266WebServer server(80);
سرور روی پورت 80 راه اندازی میشه.
با server.on
میتونید صفحات مختلف (لینک ورودی) برای خودتون ایجاد کنید.
آی پی دستگاه هم موقع روشن شدن توی پورت سریال نمایش داده میشه.
برای مثال:
192.168.1.4:80/gif