رفتن به محتوا

ساعت نوری هوشمند (IoT) با برد NodeMCU و نئوپیکسل

ابزار و گجت
۰ نظر
۴۵ نفر
کد ۴۷۳۹

تا حالا به این فکر کردی که ساعت دیواریت به جای عقربه‌های تکراری، با نورهای رنگی زمان رو نشون بده؟ ساعت‌های نوری یکی از جذاب‌ترین پروژه‌های اینترنت اشیا (IoT) هستن که دکوراسیون اتاق رو حسابی مدرن و خاص می‌کنن. تو این ساعت خبری از موتور و عقربه فیزیکی نیست؛ در عوض، دو رنگ نور مختلف روی لبه‌ها تابیده می‌شه که نقش عقربه‌های ساعت‌شمار و دقیقه‌شمار رو بازی می‌کنن.

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

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

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

  • برد توسعه NodeMCU-12E (یا بردهای مشابه ESP8266)
  • ریسه نوار ال‌ای‌دی نئوپیکسل (تراکم 144 ال‌ای‌دی در متر)
  • مبدل سطح ولتاژ (Logic Level Converter) از 3.3 به 5 ولت
  • آداپتور و منبع تغذیه 5 ولت 4 آمپر (نئوپیکسل‌ها جریان بالایی نیاز دارن)
  • بردبورد و سیم جامپر
  • خازن 1000 میکروفاراد (حداقل 6.3 ولتی)
  • دریل، پرینتر سه‌بعدی و دستگاه برش لیزر (برای ساخت بدنه)
مرحله ۱

چطوری زمان رو از روی نور بخونیم؟

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

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

مرحله ۲

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

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

مرحله ۳

آماده‌سازی مدار روی بردبورد

اول از همه باید مدارمون رو روی بردبورد ببندیم. هدف اصلی ما ارتباط دادن برد پردازنده NodeMCU با ریسه نئوپیکسل هست. از اونجایی که نئوپیکسل‌ها با ولتاژ 5 ولت کار می‌کنن اما پین‌های خروجی NodeMCU فقط 3.3 ولت خروجی دارن، برای اینکه دیتا درست منتقل بشه به یه مبدل سطح ولتاژ (Logic Level Converter) نیاز داریم. باید پین 3.3 ولت و GND برد رو به یه طرف مبدل، و 5 ولت و GND تغذیه رو به سمت دیگه مبدل وصل کنی.

حالا می‌تونی خروجی دیتای برد رو از پین D2 بگیری، به ورودی مبدل وصل کنی و بعد خروجی همون پایه در سمت 5 ولت مبدل رو به پین دیتای ریسه نئوپیکسل متصل کنی.

حتما یه خازن 1000 میکروفاراد به خط تغذیه 5 ولتی که قراره به نئوپیکسل بره اضافه کن. این خازن جلوی نوسان جریان اولیه رو می‌گیره. اگه این خازن رو نذاری احتمال سوختن ال‌ای‌دی‌های ریسه خیلی بالاست! فعلا کابل مربوط به آداپتور اصلی رو وصل نکن تا تو مراحل آخر مدار رو روی تغذیه اصلی تست کنیم.

مرحله ۴

نصب پکیج برد در نرم‌افزار آردوینو

برای برنامه‌نویسی به نرم‌افزار Arduino IDE نیاز داری. چون پردازنده ما ESP8266 هست، باید پکیج بردش رو تو نرم‌افزار نصب کنی. از منوی File بخش Preferences رو باز کن و آدرس مربوط به بردهای ESP رو تو قسمت Additional Boards Manager قرار بده.

حالا روی OK کلیک کن و از مسیر Tools و بخش Board گزینه Board Manager رو انتخاب کن. تو کادر جستجو عبارت ESP8266 رو بنویس و روی دکمه Install کلیک کن. نصب این پکیج یکم زمان می‌بره، پس تا تموم شدنش می‌تونی یه استراحتی بکنی.

مرحله ۵

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

وقتی پکیج بردها نصب شد، از منوی Tools بخش Board، گزینه NodeMCU 1.0 (ESP-12E Module) رو انتخاب کن. اگه از مدل دیگه‌ای استفاده می‌کنی، اسم همون رو از لیست پیدا کن.

برنامه‌ریزی بردهای ESP یکم با آردوینوهای معمولی متفاوته، چون ما داریم کل فرم‌ور (Firmware) روی تراشه رو از نو می‌نویسیم و برای این کار تراشه باید بره تو حالت بوت‌لودر.

کابل برد رو به کامپیوتر وصل کن تا چراغ آبی کوچیکش روشن بشه. حالا دکمه Flash روی برد رو نگه دار، یه بار دکمه Reset رو بزن و در نهایت دکمه Flash رو رها کن. با این کار برد آماده دریافت کدهای اصلی ساعت می‌شه.

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

فایل حاوی کدها رو تو نرم‌افزار آردوینو باز کن و با زدن دکمه فلش سمت راست (آیکون Upload) تو نوار ابزار، برنامه رو روی برد کامپایل و منتقل کن.

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

مرحله ۶

ساخت بدنه ساعت دیواری

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

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

بردبورد و مدارت رو هم تو قسمت پشتی یا بالای این بدنه دایره‌ای نصب و فیکس کن.

مرحله ۷

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

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

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

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

مرحله ۸

اتصال آداپتور و تغذیه

یه فیش مادگی آداپتور (DC Jack) به مدار اضافه کن، اون رو تو بخش مرکزی پشت ساعت پیچ کن و سیم‌های مثبت و منفیش رو به خط 5 ولت بردبورد وصل کن تا برق‌رسانی کامل بشه.

مرحله ۹

تست اولیه ساعت

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

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

مرحله ۱۰

اتصال ساعت به شبکه وای‌فای

الان باید ساعت رو به شبکه وای‌فای خونه وصل کنیم تا زمان رو از اینترنت دریافت کنه. گوشیت رو بردار و تو لیست وای‌فای‌ها، به شبکه‌ای به اسم "The Light Clock" که خود ساعت ساخته، وصل شو.

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

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

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

مرحله ۱۱

شخصی‌سازی رنگ عقربه‌های نوری

کل طیف رنگی تو دستته! این ساعت می‌تونه میلیون‌ها رنگ رو نشون بده، پس می‌تونی رنگ‌هاش رو دقیقا با دکور اتاقت هماهنگ کنی.

برای پیدا کردن پنل تنظیمات ساعت تو شبکه محلی، از پروتکل mDNS استفاده می‌شه. این قابلیت تو محصولات اپل (آیفون و مک) از قبل فعاله و نیاز به کار خاصی نداری، اما اگه با لپ‌تاپ ویندوزی هستی، ممکنه لازم باشه ابزارهای کمکی مثل Bonjour رو نصب کنی تا آدرس‌های محلی رو باز کنه. حالا مرورگرت رو باز کن و عبارت thelightclock.local رو تو نوار آدرس تایپ کن (دقت کن که اولش www ننویسی).

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

مرحله ۱۲

تنظیمات پیشرفته‌تر ساعت

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

تازه می‌تونی یه سری نشانگر نوری کوچیک هم روشن کنی تا جای اعداد اصلی (مثل 12، 3، 6 و 9) رو بهت نشون بدن تا خوندن ساعت راحت‌تر بشه. تمام این امکانات از همین پنل تحت وب قابل تغییر هستن.

مرحله ۱۳

ساختیم و تموم شد!

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

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

ZIP lightclockwifiv2-master.zip
ZIP NeoPixelBus-master.zip
ZIP NTP-master.zip

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

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

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

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

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

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