ورکشاپ آموزشی - آیسی مدار
رفتن به محتوا

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

رباتیک و هوشمندسازی
۰ نظر
۳۰ نفر
کد ۳۰۸۵

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

تو این پروژه از تیم آیسی‌مدار، می‌خوایم یه قفل در هوشمند و فوق‌العاده مدرن بسازیم. قلب بینایی این سیستم ماژول قدرتمند Huskeylens هست که به هوش مصنوعی مجهز شده و چهره‌ها رو با دقت بالایی تشخیص می‌ده. پردازش اطلاعات و ارتباط با اینترنت هم به عهده میکروکنترلر جدید و قدرتمند ESP32-C6 گذاشته شده تا بتونه سریعا پیام‌ها رو از طریق ربات تلگرام بهت برسونه.

برای بخش مکانیکی هم از یک قفل برقی سلونوئیدی 12 ولت استفاده می‌کنیم تا امنیت فیزیکی در رو تضمین کنه. پس وسایلت رو آماده کن تا با هم این گجت امنیتی پیشرفته و هیجان‌انگیز رو قدم‌به‌قدم بسازیم و خونه‌مون رو هوشمندتر کنیم.

قطعات موردنیاز

  • ماژول دوربین هوش مصنوعی Huskeylens ساخت DFRobot
  • سوکت مادگی تغذیه DC
  • مقاومت 10 کیلواهم
  • میکروکنترلر Espressif ESP32-C6
  • ماژول کاهنده ولتاژ MP1584
  • قفل برقی سلونوئیدی 12 ولت
  • هویه
  • سیم لحیم
  • چسب T-7000 (یا هر چسب قوی دیگه)
مرحله ۱

طراحی سه‌بعدی و پرینت قاب سیستم

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

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

  1. فایل Main Panel.stl (بدنه اصلی)
  2. فایل Back.stl (درپوش پشتی)

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

من برای این پروژه از متریال سخت استفاده کردم، اما اگر دوست داشتی می‌تونی از متریال‌های منعطف‌تری مثل TPU هم کمک بگیری تا ضربه‌پذیری قاب رو بالاتر ببری. 👉 پس فایل‌ها رو دانلود کن و پرینترت رو روشن کن تا بریم سراغ مرحله بعدی.

مرحله ۲

آموزش ثبت چهره در ماژول HuskyLens

ثبت کردن چهره روی ماژول HuskyLens خیلی ساده‌تر از اون چیزیه که فکر می‌کنی. اول با دکمه تنظیمات، ماژول رو روی حالت Face Recognition (تشخیص چهره) قرار بده. حالا دوربین رو سمت یه صورت بگیر تا علامت + روی صورت قرار بگیره. بعد دکمه learning (یادگیری) رو یه بار کوتاه فشار بده تا دستگاه اون چهره رو یاد بگیره.

بعد از این کار، هر وقت همون چهره جلوی دوربین قرار بگیره، یه کادر آبی دور صورت کشیده می‌شه و عبارت Face: ID1 روی صفحه نمایش ظاهر می‌شه. این یعنی دستگاه با موفقیت چهره رو یاد گرفته و می‌شناسه. می‌تونی این فرآیند رو تکرار کنی تا چهره افراد مختلف رو با IDهای متفاوت (مثل ID2, ID3 و...) به سیستم اضافه کنی.

مرحله ۳

نصب دوربین HuskyLens تو قاب

اول از همه، دوربین HuskyLens رو داخل شیاری که تو قاب براش طراحی شده قرار بده. مطمئن شو که لنز دوربین دقیقا روبروی سوراخ جلویی قاب باشه تا دید کاملی به بیرون داشته باشه. وقتی از زاویه‌اش مطمئن شدی، با استفاده از دو تا پیچی که همراه ماژول هست، اون رو سر جاش محکم کن.

بعد از اینکه ماژول رو بستی، کابل 4 پین JST که همراه دوربین هست رو به سوکتش وصل کن. این سوکت باعث می‌شه سیم‌کشی‌ها خیلی تمیزتر بشه و ارتباط بین دوربین و میکروکنترلر کاملا پایدار بمونه.

مرحله ۴

نصب سوکت تغذیه DC

حالا سوکت مادگی DC رو تو سوراخ مخصوصی که لبه قاب تعبیه شده جا بزن. دقت کن که سوکت کاملا صاف باشه تا وقتی می‌خوای آداپتور رو از بیرون بهش وصل کنی، مشکلی پیش نیاد. برای اینکه سوکت موقع وصل و قطع کردن آداپتور از جاش درنیاد، دورش رو با مقدار کمی چسب T-7000 (یا هر چسب قوی دیگه‌ای که داری) محکم کن.

مرحله ۵

نصب میکروکنترلر ESP32-C6

میکروکنترلر ESP32 رو طوری داخل قاب قرار بده که پورت Type-C اون دقیقا روبروی سوراخی که روی بدنه هست قرار بگیره. این کار باعث می‌شه بعدا برای پروگرام کردن یا آپدیت کدها، نیازی به باز کردن قاب نداشته باشی. با یه مقدار خیلی کم از چسب T-7000 برد رو به کف قاب بچسبون. حواست باشه چسب زیادی نریزی؛ فقط به اندازه‌ای که برد تکون نخوره کافیه.

مرحله ۶

تنظیم و نصب ماژول کاهنده ولتاژ MP1584

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

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

هشدار مهم: موقع چرخوندن پتانسیومتر خیلی با ملایمت رفتار کن. اگر خیلی سریع بچرخونیش، ممکنه ولتاژ یهو بالا بره و برد ESP یا دوربینت رو بسوزونه!

مرحله ۷

آماده‌سازی و نصب ماسفت (MOSFET)

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

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

مرحله ۸

عبور سیم‌های قفل سلونوئیدی

دو تا سوراخ کوچیک روی بدنه قاب طراحی شده که مخصوص سیم‌های قفل سلونوئیدیه. هر دو تا سیم قفل رو به آرومی از این سوراخ‌ها رد کن تا وارد قاب بشن. موقع کشیدن سیم‌ها خیلی احتیاط کن که از روی بوبین قفل کنده نشن یا آسیبی نبینن.

مرحله ۹

سیم‌کشی مدار و اتصالات

می‌تونی از روی نقشه شماتیکی که در بالا قرار دادم، تمام سیم‌کشی‌ها رو انجام بدی. اما برای اینکه خیالت راحت بشه، اتصالات هر بخش رو به صورت متنی هم برات آوردم. اول از دوربین هوش مصنوعی HuskyLens شروع می‌کنیم:

  1. پین VCC دوربین به پین 5 ولت برد ESP32-C6
  2. پین GND دوربین به پین GND برد ESP32-C6
  3. پین TX دوربین به پین RX برد ESP32-C6
  4. پین RX دوربین به پین TX برد ESP32-C6

اتصالات میکروکنترلر ESP32-C6:

  1. پین VIN به خروجی مثبت (5 ولت) ماژول کاهنده MP1584
  2. پین GND به خط منفی مشترک کل مدار
  3. پین‌های RX/TX هم که به دوربین متصل شدن
  4. یکی از پایه‌های GPIO (دلخواه) به پایه گیت (Gate) ماسفت از طریق یک مقاومت

اتصالات ماسفت (برای کنترل قفل سلونوئیدی):

  1. پایه گیت (Gate) به پین GPIO انتخاب شده روی ESP32
  2. پایه سورس (Source) به GND مشترک
  3. پایه درین (Drain) به سیم منفی قفل سلونوئیدی

توجه کن که یه مقاومت باید بین پایه‌های Gate و Source (یا GND) قرار بگیره تا ماسفت به درستی خاموش بشه. اتصالات قفل سلونوئیدی:

  1. سیم مثبت قفل مستقیما به مثبت 12 ولت آداپتور
  2. سیم منفی قفل به پایه درین (Drain) ماسفت

اتصالات ورودی برق (از سوکت DC):

  1. پایه مثبت سوکت به سیم مثبت قفل و ورودی مثبت ماژول MP1584
  2. پایه منفی سوکت به GND مشترک مدار و ورودی منفی ماژول MP1584

اتصالات ماژول کاهنده ولتاژ MP1584:

  1. ورودی مثبت به 12 ولت آداپتور
  2. ورودی منفی به GND مشترک
  3. خروجی مثبت (5 ولت تنظیم شده) به پین VIN در ESP32
  4. خروجی منفی به GND در ESP32
مرحله ۱۰

بستن قاب و مونتاژ نهایی

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

مرحله ۱۱

ساخت ربات تلگرام برای دریافت اعلان‌ها

ساخت ربات تو تلگرام کار چند دقیقه‌ست. اپلیکیشن تلگرام رو باز کن، آیدی BotFather@ رو جستجو کن و دکمه Start رو بزن. حالا دستور newbot/ رو بفرست تا مراحل ساخت ربات شروع بشه.

  1. اسم ربات (Bot name): یه اسم دلخواه برای پروژه‌ت انتخاب کن (مثلا قفل هوشمند).
  2. نام کاربری (Username): یه آیدی منحصر‌به‌فرد برای رباتت بنویس. فقط یادت باشه که حتما باید به کلمه bot ختم بشه (مثلا mydoor_bot یا SmartDoorBot).

وقتی این مراحل رو طی کردی، BotFather یه پیام تبریک به همراه یه کد طولانی به اسم Bot Token برات می‌فرسته. این توکن خیلی مهمه، چون هم کلید دسترسی به رباتته و هم بعدا تو کدهای آردوینو بهش نیاز داریم. پس یه جای امن کپیش کن و به کسی هم نده.

مرحله ۱۲

پیدا کردن Chat ID تلگرام

بعد از ساخت ربات، باید شناسه چت یا همون Chat ID خودت رو پیدا کنی تا ربات بدونه پیام‌ها رو دقیقا باید به کی بفرسته. برای این کار، مرورگرت رو باز کن و آدرس زیر رو وارد کن:

TXT
https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates

تو این آدرس، به جای <YOUR_BOT_TOKEN> همون توکنی که از BotFather گرفتی رو قرار بده و اینتر بزن. بار اولی که صفحه رو باز می‌کنی ممکنه فقط یه سری نوشته نامفهوم ببینی. حالا برو تو تلگرام، رباتی که ساختی رو پیدا کن و یه پیام (مثلا سلام) بهش بفرست. دوباره برگرد به مرورگر و صفحه رو رفرش (Refresh) کن.

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

مرحله ۱۳

آماده‌سازی نرم‌افزار Arduino IDE

اگر هنوز نرم‌افزار Arduino IDE رو نصب نکردی، آخرین نسخه اون رو از سایت رسمی آردوینو دانلود و نصب کن. بعد از نصب، باید بردهای سری ESP32 رو به نرم‌افزار اضافه کنیم تا بتونیم برای ESP32-C6 کد بنویسیم.

  1. نرم‌افزار رو باز کن.
  2. از منوی File به بخش Preferences برو.
  3. تو کادر Additional Board Manager URLs آدرس زیر رو پیست کن:
TXT
https://espressif.github.io/arduino-esp32/package_esp32_index.json
  1. حالا دکمه OK رو بزن تا تنظیمات ذخیره بشه.

نصب پکیج بردهای ESP32:

  1. از منوی Tools به بخش Board و بعد Boards Manager برو.
  2. تو نوار جستجو کلمه ESP32 رو تایپ کن.
  3. پکیج رسمی esp32 by Espressif Systems رو پیدا کن و دکمه Install رو بزن.

بررسی نصب موفقیت‌آمیز:

  1. بعد از نصب، از منوی Tools به قسمت Board برو.
  2. باید بتونی برد ESP32-C6 Dev Board رو تو لیست پیدا کنی و انتخابش کنی تا برای آپلود کدها آماده بشیم.
مرحله ۱۴

تنظیم کدها و آپلود روی میکروکنترلر

حالا که محیط برنامه‌نویسی آماده‌ست، باید کدهای اصلی پروژه رو وارد و تنظیم کنیم:

  1. فایل‌های پروژه رو به صورت کامل دانلود کن.
  2. فایل فشرده رو اکسترکت کن و فایلی که پسوند ino. داره رو تو Arduino IDE باز کن.
  3. برای ارتباط با دوربین، باید کتابخونه Huskeylens.h رو نصب کنی. از منوی Sketch به بخش Include Library و بعد Manage Libraries برو، کلمه Huskeylens رو سرچ کن و نصبش کن.

تغییر اطلاعات در کدها: قبل از اینکه دکمه آپلود رو بزنی، باید اطلاعات وای‌فای و تلگرامت رو تو کدها جایگزین کنی. این دو خط رو پیدا کن:

JavaScript
// WiFi credentials
const char* ssid = "YOUR_WIFI_SSID";
const char* password = "YOUR_WIFI_PASSWORD";

به جای YOUR_WIFI_SSID اسم شبکه وای‌فای خونتون و به جای YOUR_WIFI_PASSWORD رمز وای‌فای رو بنویس. حواست باشه که علامت‌های نقل‌قول ("") پاک نشن. حالا بریم سراغ اطلاعات تلگرام:

JavaScript
// Telegram Bot credentials
const char* botToken = "YOUR_BOT_TOKEN";
const char* chatID = "YOUR_CHAT_ID";

توکن رباتی که از BotFather گرفتی رو جای YOUR_BOT_TOKEN و عدد Chat ID که پیدا کردی رو جای YOUR_CHAT_ID قرار بده. آپلود کد: حالا برد ESP32-C6 رو با کابل USB به کامپیوترت وصل کن. مطمئن شو که از منوی Tools، برد ESP32-C6 Dev Board و پورت (Port) درست رو انتخاب کرده باشی.

در نهایت دکمه Upload رو بزن. نرم‌افزار اول کدها رو کامپایل می‌کنه و بعد اون‌ها رو روی حافظه برد منتقل می‌کنه.

مرحله ۱۵

تست نهایی قفل هوشمند

رسیدیم به جذاب‌ترین بخش ماجرا! یه آداپتور 12 ولت رو به سوکت DC دستگاه وصل کن. بعد از اینکه برق به مدار رسید، حدود 5 تا 10 ثانیه صبر کن تا میکروکنترلر روشن بشه و بتونه به مودم وای‌فای متصل بشه.

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

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

مرحله ۱۶

نتیجه‌گیری

ساخت این پروژه بهم ثابت کرد که چطور می‌شه یه ایده ساده رو با کمک هوش مصنوعی و اینترنت اشیا، به یه سیستم امنیتی کاربردی و مدرن تبدیل کرد. این پروژه نشون داد که می‌تونیم با کمی خلاقیت و دانش الکترونیک، راه‌حل‌های جذابی برای مشکلات روزمره پیدا کنیم. انجام این کار درک من رو از سیستم‌های IoT و هوش مصنوعی لبه (Edge AI) به شدت بالا برد.

پیشنهاد می‌کنیم حتما این پروژه رو امتحان کنی و اگر تو مراحل ساختش ایده‌های جدیدی به ذهنت رسید، بهش اضافه کن. موفق باشی!

فایل‌های پیوست

WEBP install_esp32_9.webp
STL Main Panel.stl
STL Back.stl

تو میتونی اولین سازنده باشی!

اگه پروژه رو ساختی به اشتراک بزار و اعتبار هدیه بگیر

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

آموزش‌های مشابه

گفتگو‌های کاربران

هنوز نظری ثبت نشده؛ تو شروع کن!