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

مینی ساعت رومیزی وای‌فای‌دار با برد ESP32

ابزار و گجت
۰ نظر
۶۶ نفر
کد ۳۰۸۷

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

تو این پروژه از تیم آیسی‌مدار، می‌خوایم یه ساعت رومیزی مینیاتوری بر پایه اینترنت اشیا (IoT) بسازیم. این ساعت با اتصال به شبکه وای‌فای، زمان و تاریخ رو از سرورهای جهانی دریافت می‌کنه و همیشه دقیق‌ترین ساعت رو روی یه نمایشگر جذاب OLED بهت نشون می‌ده. پردازنده اصلی این مدار هم برد قدرتمند و نقلی ESP32-C3 هست.

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

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

  • برد میکروکنترلر ESP32-C3 Mini
  • ماژول نمایشگر OLED سایز 0.96 اینچ
  • قاب پرینت سه‌بعدی شده
مرحله ۱

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

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

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

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

من برای پرینت این قاب از فیلامنت مشکی PLA استفاده کردم تا ظاهر جذاب‌تری داشته باشه، اما تو می‌تونی از هر رنگی که به سلیقه‌ت می‌خوره استفاده کنی.

مرحله ۲

نصب نمایشگر OLED تو بدنه

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

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

مرحله ۳

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

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

ترتیب پین‌ها به این صورته:

  1. پایه VCC به پین 3.3 ولت برد
  2. پایه GND به پین GND برد
  3. پایه DIN (یا همون MOSI) به پین GPIO 21
  4. پایه CLK (یا همون SCK) به پین GPIO 20
  5. پایه CS به پین GPIO 6
  6. پایه DC به پین GPIO 5
  7. پایه RES به پین GPIO 7

وقتی تمام سیم‌ها رو با دقت لحیم کردی، آماده‌ای تا بریم سراغ جا زدن برد اصلی.

مرحله ۴

جاگذاری برد ESP32-C3 داخل قاب

حالا که سیم‌کشی‌ها تموم شده، برد ESP32-C3 رو به آرومی داخل قاب قرار بده. سیم‌ها رو طوری مرتب کن که تحت فشار نباشن و به لحیم‌ها آسیبی نرسونن.

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

مرحله ۵

بستن درپوش و تکمیل سخت‌افزار

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

مرحله ۶

آماده‌سازی محیط آردوینو برای ESP32

قبل از اینکه کدها رو روی برد آپلود کنیم، باید نرم‌افزار Arduino IDE رو برای کار با بردهای ESP32 تنظیم کنیم. اگر این نرم‌افزار رو نداری، آخرین نسخه‌اش رو از سایت اصلی آردوینو دانلود و نصب کن.

بعد از باز کردن برنامه، به مسیر File و سپس Preferences برو. تو کادر Additional Boards Manager URLs، آدرسی که در ادامه می‌بینی رو وارد کن:

TXT
https://espressif.github.io/arduino-esp32/package_esp32_index.json

اگر از قبل آدرس‌های دیگه‌ای تو این بخش داشتی، این آدرس جدید رو تو یه خط تازه قرار بده و دکمه OK رو بزن. حالا از منوی Tools به بخش Board و بعد Boards Manager برو. عبارت ESP32 رو جستجو کن و پکیج رسمی esp32 by Espressif Systems رو نصب کن تا بردت به راحتی شناسایی بشه.

مرحله ۷

نصب کتابخانه‌ها و تنظیمات کدهای ساعت

فایل‌های سورس کد پروژه رو باز کن. برای اینکه برنامه تو محیط آردوینو بدون ارور کامپایل بشه، باید چند تا کتابخونه مهم رو به نرم‌افزارت اضافه کنی. از منوی Sketch به بخش Include Library و بعد Manage Libraries برو و این کتابخونه‌ها رو جستجو و نصب کن:

  1. کتابخانه Adafruit GFX Library
  2. کتابخانه Adafruit SSD1306
  3. کتابخانه NTPClient

بعد از نصب کتابخونه‌ها، باید اطلاعات شبکه وای‌فای خودت رو تو کدها وارد کنی. این خطوط رو تو برنامه پیدا کن:

JavaScript
// -------------------- WiFi credentials --------------------
const char *ssid = "Your SSID";
const char *password = "Your Password";

به جای Your SSID اسم شبکه وای‌فای و به جای Your Password رمز عبورت رو قرار بده. حالا باید منطقه زمانی رو تنظیم کنی:

TXT
// -------------------- NTP settings --------------------
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "pool.ntp.org", 19800, 60000);

عددی که اینجا می‌بینی (مثلا 19800) همون اختلاف زمان با ساعت جهانی (UTC) به ثانیه است. مثلا برای ایران که اختلافش سه ساعت و نیمه (+3:30)، باید این عدد رو 12600 بذاری تا ساعت دقیق بهت نمایش داده بشه.

مرحله ۸

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

برد ESP32-C3 رو با کابل USB تایپ C به کامپیوترت وصل کن. تو نرم‌افزار آردوینو از منوی Tools پورت مناسب رو انتخاب کن و تنظیمات برد رو دقیقا طبق لیست زیر قرار بده تا موقع آپلود اروری دریافت نکنی:

  1. مدل برد: ESP32C3 Dev Module
  2. گزینه USB CDC On Boot: روی Enabled
  3. فرکانس پردازنده: 160 MHz
  4. سطح دیباگ (Core Debug Level): روی None
  5. پاک کردن کل فلش: Disabled
  6. فرکانس فلش: 80 MHz
  7. حالت فلش: QIO (اگر آپلود شکست خورد، روی DIO تنظیم کن)
  8. سایز فلش: 4MB
  9. طرح پارتیشن: Default 4MB with SPIFFS (1.2MB APP / 1.5MB SPIFFS)
  10. سرعت آپلود: 921600
  11. آداپتور JTAG: روی Disabled

بعد از اعمال این تنظیمات، دکمه Upload رو بزن و چند لحظه صبر کن تا کدهای برنامه به طور کامل روی حافظه برد منتقل بشه.

مرحله ۹

تست و راه‌اندازی ساعت اینترنتی

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

بعد از چند ثانیه، می‌تونی ببینی که تاریخ روز با فرمت سال/ماه/روز در بالای صفحه OLED و زمان دقیق با فرمت 12 ساعته (به همراه نشانگر AM و PM) در پایین صفحه با یه گرافیک مینیمال و زیبا به نمایش درمیاد.

مرحله ۱۰

جمع‌بندی؛ یه گجت کوچیک اما کاربردی

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

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

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

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

STL Housing.stl
STL Cover.stl
ZIP Nexus-main.zip

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

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

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

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

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

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