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

ساعت رومیزی هوشمند شبیه ماهواره با سنسور دما و رطوبت

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

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

بدنه این ساعت با پرینتر سه‌بعدی ساخته می‌شه و شامل یه پنجره نمایشگر جلویی، شیارهای تهویه و پایه‌هایی شبیه پایه‌های فرودگاه ماهواره‌ست که کل ظاهرش رو خیلی فضایی می‌کنه. داخل این بدنه کوچیک، یه میکروکنترلر ESP32-C3، یه نمایشگر OLED برای نمایش ساعت، و یه سنسور دما و رطوبت جا می‌گیرن که با هم اطلاعات محیط رو به‌صورت زنده نشون می‌دن. ساعت از طریق وای‌فای با سرور NTP هماهنگ می‌شه تا همیشه زمان دقیق رو نشون بده، و می‌تونه هم با پورت USB-C کار کنه و هم با یه باتری لیتیومی قابل‌شارژ به‌صورت قابل‌حمل استفاده بشه.

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

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

  • برد میکروکنترلر Beetle ESP32-C3
  • سنسور دما و رطوبت SHTC3
  • نمایشگر OLED با اندازه 0.91 اینچ
  • باتری لیتیومی 350 میلی‌آمپرساعت
  • پیچ کوچک M3
  • سیم سیلیکونی با ضخامت 26 گیج
  • پرینتر سه‌بعدی
  • هویه لحیم‌کاری
  • سیم لحیم
  • پیچ‌گوشتی
مرحله ۱

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

کار رو با طراحی OrbitClock تو نرم‌افزار Autodesk Fusion 360 شروع کردم و دقت زیادی روی ابعاد قطعات و ظاهر کلی گذاشتم. هدفم این بود که یه بدنه کوچیک، آینده‌نگرانه و راحت برای مونتاژ داشته باشم؛ درست مثل یه ماهواره کوچیک واقعی.

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

مرحله ۲

مونتاژ نمایشگر

بریم سراغ نصب نمایشگر OLED داخل بدنه پرینت‌شده. قبل از جا زدنش داخل بدنه، چهار تا سیم به پایه‌های نمایشگر لحیم کردم؛ VCC، GND، SCL و SDA، تا بعدا وصل کردنش به میکروکنترلر سریع و راحت باشه.

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

مرحله ۳

مونتاژ میکروکنترلر

بعد از تموم شدن مونتاژ نمایشگر، وقتشه میکروکنترلر Beetle ESP32-C3 رو نصب کنیم. یه مقدار کم چسب فوری پشت برد بزن و با دقت داخل جای مخصوصش تو بدنه قرار بده.

حواست باشه پورت Type-C کاملا با بازشوی روی بدنه هم‌راستا باشه تا بعدا راحت بتونی کابل رو وصل کنی. چند ثانیه نگهش دار تا چسب کاملا بگیره.

مرحله ۴

مونتاژ سنسور

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

مرحله ۵

مونتاژ باتری

این مرحله اختیاریه؛ اگه می‌خوای OrbitClock قابل‌حمل و قابل‌شارژ باشه، می‌تونی باتری لیتیومی رو اضافه کنی. در غیر این صورت، ساعت با تغذیه از طریق USB هم به‌خوبی کار می‌کنه. یکی از ویژگی‌های خوب Beetle ESP32-C3 اینه که از قبل یه مدار شارژ باتری داخلی داره، پس نیازی به هیچ ماژول شارژ جداگانه‌ای نیست.

کافیه باتری رو طبق دیاگرام مدار به میکروکنترلر وصل کنی و بعد اون رو داخل فضای خالی درون بدنه محکم جا بزنی.

مرحله ۶

سیم‌کشی کامل مدار

وقتشه همه قطعات رو سیم‌کشی کنیم! طبق دیاگرام مدار، هر اتصال رو با دقت انجام بده و قبل از روشن کردن مدار، دوباره همه چیز رو چک کن. اتصالات پایه‌ها به این شکله؛ نمایشگر OLED:

  1. پایه SCL نمایشگر به پایه SCL میکروکنترلر
  2. پایه SDA نمایشگر به پایه SDA میکروکنترلر
  3. پایه VCC نمایشگر به پایه 3V3 میکروکنترلر
  4. پایه GND نمایشگر به پایه GND میکروکنترلر

سنسور

  1. پایه SCL سنسور SHTC3 به پایه SCL میکروکنترلر
  2. پایه SDA سنسور SHTC3 به پایه SDA میکروکنترلر
  3. پایه VCC سنسور SHTC3 به پایه 3V3 میکروکنترلر
  4. پایه GND سنسور SHTC3 به پایه GND میکروکنترلر

باتری

  1. باتری لیتیومی به پایه‌های BAT و GND برد Beetle ESP32-C3

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

مرحله ۷

نصب درپوش

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

حالا با سه تا پیچ کوچیک M3، درپوش رو محکم کن؛ این کار همه چیز رو محکم نگه می‌داره و به ساعت شبیه ماهواره‌ات یه ظاهر تمیز و نهایی می‌ده.

مرحله ۸

نصب پایه‌ها

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

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

مرحله ۹

آماده‌سازی کد برنامه

قبل از شروع، مطمئن شو نرم‌افزار Arduino IDE روی کامپیوترت نصب شده و بسته برد ESP32 هم به‌درستی تنظیم شده. اگه هنوز این کار رو انجام نداده‌ای، می‌تونی راهنمای کامل نصب رو تو پروژه‌های قبلی همین سازنده پیدا کنی.

این پروژه با الهام از کار خلاقانه یکی از طراحان شناخته‌شده این حوزه ساخته شده و ساختار کد هم با الهام از یه پروژه مشابه، ولی کاملا از نو برای OrbitClock نوشته شده. وقتی همه چیز آماده بود، این مراحل رو برای آپلود کد دنبال کن:

  1. به مخزن پروژه OrbitClock سر بزن و کل پروژه رو به‌صورت فایل فشرده دانلود کن.
  2. فایل فشرده رو باز کن و فایل .ino رو تو Arduino IDE اجرا کن.
  3. کتابخانه‌های مورد نیاز زیر رو از بخش Library Manager (مسیر Sketch ← Include Library ← Manage Libraries) نصب کن:
  4. کتابخانه NTPClient
  5. کتابخانه Adafruit_GFX
  6. کتابخانه Adafruit_SSD1306
  7. کتابخانه Adafruit_SHTC3

تنظیم وای‌فای: تو کد، بخش زیر رو پیدا کن:

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

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

مثلا برای کشوری با اختلاف ساعت پنج‌ونیم ساعته نسبت به گرینویچ:

  1. پنج ساعت ضرب‌در سه هزار و ششصد می‌شه هجده هزار ثانیه
  2. سی دقیقه ضرب‌در شصت می‌شه هزار و هشتصد ثانیه
  3. مجموع می‌شه نوزده هزار و هشتصد ثانیه

تو کد، این خط رو پیدا کن و مقدارش رو متناسب با منطقه زمانی خودت تغییر بده.

TXT
// NTP setup
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "pool.ntp.org", 19800, 60000); // IST: UTC+5:30

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

مرحله ۱۰

آپلود کد روی برد

وقتی کد آماده شد، برد Beetle ESP32-C3 رو با کابل USB به کامپیوترت وصل کن. تو Arduino IDE، حتما برد و پورت درست رو انتخاب کن: از مسیر Tools ← Board ← ESP32 Boards، برد Beetle ESP32-C3 رو انتخاب کن و از مسیر Tools ← Port هم پورت COM مربوط به بردت رو انتخاب کن. بعد روی دکمه Upload بزن. نرم‌افزار کد رو کامپایل می‌کنه و بعد اون رو روی بردت آپلود می‌کنه.

مرحله ۱۱

تست نهایی

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

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

مرحله ۱۲

جمع‌بندی

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

با استفاده از برد Beetle ESP32-C3، هماهنگی زمان از طریق وای‌فای و سرور NTP کاملا دقیقه و سنسور SHTC3 داخلی هم اطلاعات محیطی درستی رو ارائه می‌ده. اتصال USB-C هم باتری رو برای کارکرد بدون وقفه شارژ نگه می‌داره. OrbitClock ترکیبی از طراحی هوشمند، داده لحظه‌ای و الکترونیک شیک رو تو یه وسیله کاربردی و چشم‌نواز رومیزی جمع کرده.

امیدواریم از ساخت این پروژه لذت برده باشی؛ نظرات و پیشنهاداتت رو با آیسی‌مدار در میون بذار.

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

STL Housing.stl
STL Cover.stl
STL Legs.stl

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

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

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

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

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

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