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

با ESP8266 و حلقه‌های LED یک ساعت اینترنتی جذاب بساز

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

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

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

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

مرحله ۱

مونتاژ حلقه LED و لحیم‌کاری اتصالات

حلقه‌های 60تایی WS2812B معمولا به صورت 4 تا ربع دایره (15تایی) فروخته می‌شن. اول باید این 4 قطعه رو کنار هم بچینی و لبه‌های اضافی‌شون رو صاف کنی تا یه دایره کامل تشکیل بشه. برای شروع، پایه‌های GND رو به هم وصل می‌کنیم.

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

حالا نوبت پایه‌های 5 ولت هست. دقیقا همین روند رو تکرار کن و هر 4 جفت پایه ولتاژ رو به هم لحیم کن. الان برق به کل بردها متصل شده، اما برای اینکه بتونی رنگ هر ال‌ای‌دی رو کنترل کنی، باید دیتا به صورت زنجیره‌ای بینشون منتقل بشه.

هر ال‌ای‌دی یه پایه ورودی دیتا (Data In) و یه خروجی (Data Out) داره. هر کدومشون برای روشن شدن به 24 بیت دیتا نیاز دارن (8 بیت سبز، 8 بیت قرمز، 8 بیت آبی).

وقتی یه ال‌ای‌دی دیتای 24 بیتی خودش رو دریافت کرد، بقیه اطلاعات رو از طریق پایه خروجی به ال‌ای‌دی بعدی می‌فرسته. پس پایه Data Out باید به Data In دایره بعدی وصل بشه.

طبق دیتاشیت WS2812B، باید پایه Data Out از هر ربع دایره رو به پایه Data In ربع دایره بعدی وصل کنی. این کار رو فقط برای 3 تا از درزها انجام بده. اتصال چهارم رو باز بذار، چون قراره ورودی اصلی دیتا رو از اونجا به برد ESP8266 وصل کنیم.

مرحله ۲

آماده‌سازی سیم‌های اصلی تغذیه و دیتا

حالا باید سیم‌هایی که قراره حلقه ال‌ای‌دی رو به برد کنترلر وصل کنن رو لحیم کنی. از یه پین هدر 4تایی استفاده کن و اون‌ها رو با کمی زاویه روی آخرین نقطه اتصال لحیم کن تا پایه‌های 5 ولت، Data In، Data Out و GND بدون اینکه به هم اتصالی کنن، در دسترس باشن. البته ما تو این پروژه نیازی به خروجی دیتای نهایی نداریم. سیم قرمز رو برای 5 ولت، سیم آبی رو برای Data In و سیم مشکی رو برای GND لحیم کن.

مرحله ۳

اتصال حلقه نئوپیکسل به برد ESP8266

وقتشه که سیم‌های حلقه نوری رو به مغز متفکر پروژه یعنی ماژول ESP8266 متصل کنی. نزدیک سوکت USB روی برد، پایه‌های 5 ولت (یا Vin) و GND رو پیدا کن و سیم قرمز و مشکی رو به این پایه‌ها وصل کن.

تقریبا وسط‌های لبه کناری ماژول، پایه‌ای به اسم D5 وجود داره. این پایه خروجی دیتای برد به حساب میاد. سیم آبی رنگی که به Data In حلقه وصل کرده بودی رو مستقیما به این پایه متصل کن.

مرحله ۴

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

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

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

باید اسم وای‌فای (SSID) و رمز عبور شبکه‌ات رو پیدا کنی و داخل کد قرار بدی. برو سراغ خطوطی که برای این کار در نظر گرفته شده و اطلاعاتت رو داخل علامت کوتیشن قرار بده.

مقادیری مثل ssid و password رو با دقت با اسم وای‌فای و رمز خودت جایگزین کن. قدم بعدی تنظیم منطقه زمانیه. خطی که مربوط به متغیر hours_Offset_From_GMT هست رو پیدا کن.

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

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

قبل از آپلود نهایی، روی دکمه Verify کلیک کن تا مطمئن بشی کد ارور نمی‌ده. ممکنه کتابخونه‌های لازم رو روی سیستمت نداشته باشی. از منوی آردوینو برو به بخش Sketch، بعد Include Library و Manage Libraries رو باز کن.

کلمه NTP رو جستجو کن و کتابخونه NTPClient رو نصب کن. کتابخونه Time هم باید نصب باشه. بعد از اون کلمه Neopixel رو سرچ کن و مطمئن شو که Adafruit NeoPixel نصب شده. حالا همه‌چیز برای کامپایل آماده‌ست.

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

مرحله ۵

ساخت پایه رومیزی و جمع‌بندی کار

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

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

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

ZIP Wol_Clock.zip
PDF WS2812B.pdf
INO Wol_Clock.ino

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

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

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

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

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

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