فهرست مطالب:

بدون چراغ آبی: 4 مرحله
بدون چراغ آبی: 4 مرحله

تصویری: بدون چراغ آبی: 4 مرحله

تصویری: بدون چراغ آبی: 4 مرحله
تصویری: تکچرخ 2024, نوامبر
Anonim
بدون لامپ آبی
بدون لامپ آبی
بدون لامپ آبی
بدون لامپ آبی
بدون لامپ آبی
بدون لامپ آبی
بدون لامپ آبی
بدون لامپ آبی

بنابراین این Lazy Old Geek (L. O. G.) روی یک پروژه Blue Light کار کرده است:

www.instructables.com/id/Blue-Light-Projec…

www.instructables.com/id/Blue-Light-Projec…

خوب ، برای مرحله بعدی من یک لامپ می خواستم که در روز روشن باشد و در شب/شب نور آبی نداشته باشد.

سخت افزار طراحی:

تصمیم گرفتم از RTC (ساعت زمان واقعی) برای کنترل زمان تغییرات نور استفاده کنم.

من DS3231 را انتخاب کردم زیرا دقت زمان بیشتری نسبت به DS1307 دارد. DS3231 می تواند 5 ولت یا 3.3 ولت باشد.

برای نور ، من از یک رشته LED WS2812B استفاده می کنم. اینها دارای رابط سه سیم ساده و LED های قرمز ، سبز و آبی قابل کنترل هستند. WS2812B دستگاه های 5 ولت هستند.

برای میکروکنترلر از Pro Micro ، 5v 16MHz استفاده خواهم کرد.

در حالی که WS2812B احتمالاً با 3.3 ولت کار می کند ، بهتر است از آردوینو 5 ولت استفاده کنید.

Pro Micro یک آردوینو ارزان قیمت است که از میکروکنترلر Atmega32U4 استفاده می کند.

لامپ دارای کلید روشن/خاموش برای روشن یا خاموش کردن لامپ است.

یک پتانسیومتر برای کنترل روشنایی وجود دارد.

نرم افزار طراحی:

DS3231 RTC می تواند زمان را کنترل کند ، دارای پشتیبان گیری از باتری است بنابراین حتی در صورت قطع برق باید زمان را حفظ کند.

در طول روز ، همه LED های RGB روشن هستند ، که قابل کنترل تا حداکثر شدت توسط گلدان هستند.

در اوایل شب ، LED های آبی خاموش ، قرمز و سبز حداکثر.

با پیشرفت عصر ، LED های قرمز و سبز کم رنگ می شوند و رنگ قرمز بیشتر از سبز ترجیح داده می شود (آزمایش من در قسمت 2 نشان می دهد که LED های سبز دارای مقداری آبی هستند).

بعد از حدود ساعت 10 صبح همه LED ها خاموش می شوند

مسئله:

بازگشت به ماژول DS3231 RTC ، من همانند سایر اجزای خود ، از Aliexpress خریدم.

اینها قرار است با باتری قابل شارژ LIR2032 کار کرده و شارژ کنند. من آن را امتحان کردم. بعد از حدود یک روز ، باتری تمام شده بود.

خوب بعد از کمی جستجو در اینترنت ، این مقاله را پیدا کردم.

www.onetransistor.eu/2019/07/zs042-ds3231-…

من با این تجزیه و تحلیل موافقم ، اما فکر می کردم LIR2032 به اندازه کافی شارژ می شود اما نه بیش از حد. ظاهراً اشتباه کردم DS3231 من اگرچه به عنوان ZS-042 همانطور که در مقاله مشخص شده بود کمی متفاوت بود اما تقریباً یکسان بود. بنابراین من دیودی را که در تصویر مشاهده می شود فروختم و یک باتری CR2032 نصب کردم. بدون دیود ، ماژول سعی نمی کند باتری را شارژ کند. در حال حاضر DS3231 زمان صحیح را حتی در صورت قطع برق نگه می دارد و باتری باید سالها خوب باشد.

نیازمندی های قدرت:

WS2812B رشته ای از LED های RGB است که گاهی اوقات NeoPixels نیز نامیده می شود. هر NeoPixel حداکثر به 60mA نیاز دارد. من از 12 Neo Pixel استفاده می کنم بنابراین به 0.72A نیاز دارم. من از آداپتور USB 2A استفاده می کنم ، بنابراین جریان زیادی داشته باشید.

مرحله 1: PCB BlueLamp

PCB BlueLamp
PCB BlueLamp
PCB BlueLamp
PCB BlueLamp

بنابراین طبق معمول ، از نرم افزار رایگان Eagle Cadsoft (در حال حاضر Autodesk) برای چیدمان و ایجاد PCB خود استفاده کردم.

www.autodesk.com/products/eagle/free-downl…

فایلهای شماتیک و تخته ایگل به همراه شماتیک در یک تصویر ضمیمه شده است.

یک نظر در مورد طرح کلی ، مقاومت 330 اهم و خازن 10 000uFd توصیه های راهنمای نئوپیکسل Adafruit است:

learn.adafruit.com/adafruit-neopixel-uberg…

دکمه ضامن من "سوئیچ دکمه مشعل" استفاده کردم از اینجا بود:

www.aliexpress.com/item/32904942704.html؟s…

پتانسیومتر 10K (B103) از اینجا:

www.aliexpress.com/item/32672253655.html؟s…

مرحله 2: مونتاژ لامپ

مونتاژ لامپ
مونتاژ لامپ
مونتاژ لامپ
مونتاژ لامپ

من به طور اتفاقی یک پایه سنگین از لامپ خریداری شده داشتم. یک سنجاق گرد بزرگ روی آن بود. من یک تکه لوله PVC برداشتم که روی آن قرار داشت. کمی شل بود بنابراین یک پیچ و مهره برداشتم تا بتوانم آن را محکم کنم. (تصویر را ببینید)

WS2812B را می توان به تعداد NeoPixels مورد نظر خود تقسیم کرد. نواری که خریدم فضاهای وسیعی بین NeoPixels دارد. من می خواستم کمی روشن تر باشد ، بنابراین دو نوار 6 NeoPixel را برش دادم و آنها را به طور موازی کمی افست کردم. نوارهای WS2812B را می توان بین NeoPixels برش داد. در این مورد من نیاز به تغییر 180 درجه داشتم ، بنابراین نوار را بریدم و سیم های بلوز را بین آنها اجرا کردم. در صورت انجام این کار ، مطمئن شوید که سیگنال ها و پیکان های جهت درست هستند. (تصویر را ببینید)

این WS2812B همچنین دارای سیم و کانکتور است (اگر می خواهید از آن در جاهای دیگر استفاده کنید ، این کانکتور کانکتور JST-SM 3pin است). از آنجا که این اتصال قبلاً وجود داشت ، من فقط سیمها را به PCB خود لحیم کردم. برای این WS2812B سیم قرمز 5 ولت ، سبز سیگنال و سفید زمین است.

هنگامی که PCB را ساختم ، مقداری نوار را در قسمت پایین قرار دادم و به پایه چسباندم. سپس Pro Micro و DS3231 را وصل کردم.

مرحله 3: طرح آردوینو

طرح آردوینو
طرح آردوینو

اگرچه Pro Micro خود را از Aliexpress.com خریداری کردم ، اما از اطلاعات زیر برای کار Arduino استفاده کردم:

learn.sparkfun.com/tutorials/pro-micro--fi…

برای نصب کتابخانه برای DS3231 ، از این کتابخانه استفاده می کنم:

github.com/PaulStoffregen/DS1307RTC

فایل Zip را بارگیری کنید

Arduino را باز کنید ، "Sketch" "Include Library" "Add.zip library" را انتخاب کنید

موارد زیر را با استفاده از همان روش نصب کنید

کتابخانه زمان PaulStoffregen

github.com/PaulStoffregen/Time

کتابخانه منطقه زمانی

github.com/JChristensen/Timezone

پس از اتمام ، آردوینو را راه اندازی کنید.

در بخش Tools Boards "Sparkfun Pro Micro" را انتخاب کنید

دوباره روی Tools کلیک کنید ، انتخابی برای پردازنده وجود دارد

ممکن است لازم باشد آن را "Atmega32U4 (5V 16Mhz)" تغییر دهید

هشدار: اگر مانند من بی خیال هستید ، "Atmega32U4 (3.3V 8Mhz)" را به اشتباه انتخاب کردم. این کار آن را "خرد" کرد تا آردوینو نتواند آن را ببیند. خوب ، من معمولاً سعی می کنم مطالب جدید را قبل از دریافت و یادآوری چیزی در مورد این اتفاق بخوانم:

learn.sparkfun.com/tutorials/pro-micro--fi…

در این راهنما ، بخشی وجود دارد به نام "چگونه می توان یک Micro" Bricked "Pro را احیا کرد" همانطور که ذکر شده است ، این یک روش پیچیده است ، اما من موفق به بازیابی آن شدم.

FYI: اگر می پرسید چرا دو نسخه با ولتاژ و سرعت متفاوت وجود دارد ، Atmega32U4 (همان Atmega328) در 5 ولت با کلاک 16 مگاهرتز خوب کار می کند. اما در 3.3V مشخصات طراحی می گوید ساعت 16 مگاهرتز کار نخواهد کرد ، به همین دلیل آنها دارای کلاک 8 مگاهرتز هستند. به طور کلی ، صحبت کردن با نرم افزار آردوینو هرگونه مشکل زمان بندی را برطرف می کند.

نکته RTC: اکثر نرم افزارهایی که برای DS1307 نوشته شده اند با DS3231 کار خواهند کرد زیرا نرم افزارهای بسیار مشابهی دارند.

نور روز صرفه جویی در زمان

خوب ، من می خواستم DST را پیاده سازی کنم ، بنابراین مجبور نبودم چراغ خود را دو بار در سال برنامه ریزی کنم. من چندین روز روی این کار کردم. من نتوانستم توضیحات ساده و خوبی در مورد نحوه کار Time ، TimeLib و RTClib پیدا کنم.

من در واقع چند کد DST برای IPClock خود نوشتم:

www.instructables.com/id/NO-MORE-SPRING-FO…

که برای زمان اینترنت کار می کرد اما من نتوانستم آن را برای زمان RTC کار کنم.

من در نهایت با موارد زیر توسط JChristensen برخورد کردم:

forum.arduino.cc/index.php؟topic=96891.0

github.com/JChristensen/Timezone

برای استفاده از این ، ابتدا باید RTC را روی UTC (زمان جهانی هماهنگ) تنظیم کنید ، این زمان در گرینویچ ، انگلستان است. خوب ، من نمی دانم چگونه این کار را انجام دهم ، اما این مقاله را پیدا کردم:

www.justavapor.com/archives/2482

آن را برای زمان کوه بازنویسی (پیوست) UTCtoRTC.ino

سپس من منطقه زمانی را در طرح خود وارد کردم. صادقانه بگویم ، من آن را آزمایش نکرده ام فقط با فرض اینکه کار می کند.

طرح من MTS_BlueLamp.ino ضمیمه شده است.

مرحله 4: نتیجه گیری

نتیجه
نتیجه

من یک قلاب کوچک در بالا برای ماسک صورت CPAP خود درست کردم. من آن را روی چراغ خواب قدیمی ام آویزان می کردم.

در اصل از این لامپ بسیار خوشحالم. در طول روز کاملاً روشن است و در عصر و شب آبی وجود ندارد.

چیزی که من دوست ندارم این است که نمی توانم بعد از ساعت 10 صبح از آن استفاده کنم. و قبل از 5 صبح

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

در آینده ، ممکن است طرح را بازنویسی کرده و دکمه را به سوئیچ برنامه ریزی شده یا برنامه ریزی نشده (کامل روشن) تغییر دهم. اما با مهارت های ضعیف در برنامه نویسی ، ممکن است کمی صبر کنم.

توصیه شده: