فهرست مطالب:

چراغ طلوع خورشیدی قابل کنترل: 6 مرحله
چراغ طلوع خورشیدی قابل کنترل: 6 مرحله

تصویری: چراغ طلوع خورشیدی قابل کنترل: 6 مرحله

تصویری: چراغ طلوع خورشیدی قابل کنترل: 6 مرحله
تصویری: گوز زدن پریانکا چوپرا هنرپیشه بالیوود در یکی از برنامه های لایف تلویزیونی |C&C 2024, جولای
Anonim
چراغ طلوع خورشیدی قابل کنترل روشن
چراغ طلوع خورشیدی قابل کنترل روشن
چراغ طلوع خورشیدی قابل کنترل روشن
چراغ طلوع خورشیدی قابل کنترل روشن

آیا تا به حال در 7 صبح ، زمان معمول مورد نیاز برای بیدار شدن در محل کار ، بیدار شده اید و در تاریکی قرار گرفته اید؟ زمستان زمان وحشتناکی است ، درست است؟ شما باید نصف شب بیدار شوید (وگرنه چرا اینقدر تاریک است؟) ، خودتان را از تخت پاره کنید و بدن نیمه هوشیار خود را به دوش بفرستید.

هدف این پروژه حل یکی از مسائل - تاریکی صبح است.

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

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

مرحله 1: آرایه لامپ

آرایه لامپ
آرایه لامپ
آرایه لامپ
آرایه لامپ

اول از همه ، ما به خود لامپ نیاز داریم. من یک اتاق نسبتاً بزرگ با دیوارها و سقف سفید دارم ، بنابراین به دنبال 7 لامپ LED GU10 ، هر چیزی حدود 6 وات ، بیش از 40 وات قدرت خالص ، رفتم! این کافی است تا احساس کنید روز از قبل است. همچنین می تواند به عنوان یک روشنایی معمول اتاق در طول روز استفاده شود.

مهم نیست که چگونه آن را مونتاژ می کنید ، از چه لامپ هایی با کدام سوکت استفاده می کنید. همه چیز مهم - اینها باید لامپهای کم نور باشند!

در مورد من ، من یک تخته چوبی دارم که 7 سوکت GU10 به آن متصل است ، همه به هم متصل شده اند. بعداً داخل جعبه پلاستیکی می گذارم.

مرحله 2: نظریه کاهش نور

نظریه کاهش نور
نظریه کاهش نور

از نظر تئوری هیچ تفاوتی بین نظریه و عمل وجود ندارد. در عمل وجود دارد.

به نظر می رسد کنترل دیمر از ESP32/Arduino آنطور که تصور می کردم ساده نیست. من یکی از ماژول های RobotDyn AC Light Dimmer را دریافت کردم. سازنده کتابخانه ای را برای آن پیشنهاد می کند. روی ESP32 کار نمی کند (و انطباق آن واقعاً سخت است ، زیرا از سطوح پایینی برای رجیستری مخصوص ATMega استفاده می کند) ، در Arduino Nano کار می کند و درخشندگی متوسطی را درخشان می کند. به همین دلیل من مدتی را صرف بررسی نحوه کار همه اینها و ایجاد راه خودم کردم.

کمی نظریه

ماژول دیمر انتخاب شده از TRIAC بسیار محبوب استفاده می کند: BTA16. مقالات زیادی در مورد آن وجود دارد. من سعی می کنم آن را در اینجا خلاصه کنم.

TRIAC یک ماژول است که می تواند ولتاژ مثبت یا منفی ورودی را به خروجی منتقل کند یا آن را مسدود کند. به طور پیش فرض همه چیز را مسدود می کند. برای باز کردن آن ، باید سیگنال بالایی را در ورودی دروازه برای 100 ما به آن بدهیم. سپس تا زمانی که جریان به صفر نرسد ، باز می ماند ، این اتفاق زمانی رخ می دهد که ولتاژ ورودی علامت را تغییر داده و از ولتاژ صفر عبور می کند. سپس در چرخه بعدی باید 100 پالس دیگر و غیره انجام دهیم. با انتخاب زمان دادن به یک نبض ، ما روشنایی را کنترل می کنیم: این کار را در همان ابتدا انجام دهید و نزدیک به 100 transmission انتقال قدرت خواهد بود. بعداً این کار را انجام دهید ، تاریک می شود. نمودار بالا را بررسی کنید و آن را توضیح دهید.

برای تولید پالس در یک نقطه از چرخه ، باید دقیقاً بدانیم که آن زمان از چه زمانی شروع می شود. به همین دلیل است که ماژول دیمر دارای یک آشکارساز Zero-Cross است. هر بار که ولتاژ از صفر عبور می کند ، یک سیگنال (که ما آن را به عنوان وقفه سخت افزاری در آردوینو می گیریم) را افزایش می دهد.

مرحله 3: تمرین کاهش نور

تمرین کاهش نور
تمرین کاهش نور

بله ، اینگونه بیدار خواهید شد ، اگر لامپ شما کم نور نباشد و تمام توان 40 وات را در چشمان خواب آلود شما قرار دهد.

مسائل مشترک

مسائل متعددی وجود دارد که باید به آنها بپردازیم.

سوسو زدن

زمانبندی میکروکنترلر باید در روشن و خاموش کردن خروجی دروازه واقعاً دقیق باشد. کتابخانه ای که RobotDyn پیشنهاد می کند ، هر 100 ساعت یک تایمر را قطع می کند و سطح دروازه را فقط در تایمر تغییر می دهد. این بدان معناست که می تواند +/- 50 میکروثانیه از مقدار مطلوب فاصله داشته باشد. در روشنایی بالا نتیجه خوبی می دهد ، اما در روشنایی پایین بسیار چشمک می زند. همچنین اگر میکروکنترلر کارهای زیادی انجام دهد ، دقت زمان را کاهش می دهد ، بنابراین در حالت ایده آل باید از میکروکنترلر اختصاصی برای دیمر استفاده کرد.

حداقل روشنایی. LED ها دارای مبدل قدرت داخلی هستند که بدون قدرت کافی از کار خودداری می کند. به نظر می رسد لامپ های من از 10-11 fine خوب کار می کنند.

حتی با این ارزش ، برخی از لامپ های من از روشن شدن در ابتدا خودداری کردند. حتی وقتی بعداً روشنایی را افزایش دهید ، آنها تاریک می مانند. به همین دلیل است که وقتی از حالت OFF به روشنایی مثبت می رسیم ، با گرم کردن 5 سیکل شروع می کنیم ، زمانی که قدرت کامل را به لامپ ها می دهیم. سپس با روشنایی دلخواه ادامه می دهیم. تقریباً قابل توجه نیست ، اما واقعاً کمک می کند.

فرکانس اصلی 50/60 هرتز باید بدانید که تا صفر بعدی چقدر باید منتظر بمانید. این بسیار ساده است - ما فقط به تفاوت زمانی بین دو وقفه اخیر نگاه می کنیم.

تغییر تدریجی روشنایی. ESP32 بسیار کند است ، 0.5 ثانیه طول می کشد تا یک HTTP بی اهمیت یا حتی درخواست WebSocket پردازش شود ، بنابراین منتظر انتقال روشنایی یکنواخت نباشید ، باید به نحوی در سطح کم نور اجرا شود. به همین دلیل است که وقتی از درگاه سریال روشنایی جدیدی دریافت می کند ، فقط هدف را تعیین می کند ، و سپس به آرامی به مرور زمان به آن نزدیک می شود.

راه حل

در اینجا کد ساده آردوینو من برای کم نور است. منتظر فرمان (یک بایت با روشنایی جدید) از ورودی سریال است ، وقفه های صفر-متقابل را کنترل می کند ، TRIAC را کنترل می کند و تمام مسائل بالا را برطرف می کند.

مرحله 4: کنترل کننده لامپ (ESP32)

کنترل کننده لامپ (ESP32)
کنترل کننده لامپ (ESP32)
کنترل کننده لامپ (ESP32)
کنترل کننده لامپ (ESP32)

در اینجا طرح اتصال همه ملفه هایی که دارم ارائه می شود. برد ESP32 با آنچه من از آن استفاده می کنم (Heltec) بسیار متفاوت است ، بنابراین پین های انتخاب شده کمی عجیب به نظر می رسند ، اما هنوز هم باید خوب کار کند. با خیال راحت از پین های مختلف در پروژه خود استفاده کنید.

در اینجا کد کنترل کننده همه چیز است. تقریباً مستقیم است

ویژگی های اصلی

قابل کنترل. لامپ به WiFi متصل می شود ، یک سرور WebSocket را روی پورت 81 راه اندازی می کند ، منتظر دستورات است. فرمت دستور

در حال حاضر فقط دو فرمان پشتیبانی می شود: "set_brightness" و "update_settings" ، که … بسیار توصیفی هستند.

گرفتن زمان از NTP. من نمی خواهم مسائل را بیش از حد پیچیده کنم و یک ساعت زمان واقعی را به طرح اضافه کنم. ما دسترسی به اینترنت داریم ، به این معنی که می توانیم زمان واقعی را از برخی سرورهای NTP دریافت کنیم و سپس با استفاده از تایمرهای سیستم زمان فعلی را پیگیری کنیم.

زنگ طلوع آفتاب. شما می توانید یک زنگ هشدار تنظیم کنید. واقعاً چه می کند: با حداقل روشنایی شروع می شود و به تدریج در عرض 10 دقیقه به روشنایی کامل می رسد. سپس چند ساعت روشن می ماند. سپس به تدریج بیش از 60 ثانیه خاموش می شود.

همه پارامترهای بالا قابل تنظیم هستند.

پرندگان آواز می خوانند. DFPlayer mini برای پخش موسیقی استفاده می شود. راهنمای زیادی برای آن وجود دارد ، اما در اصل شما فقط باید یک کارت MicroSD ، فرمت شده در FAT32 را با یک فایل به نام 0001.mp3 وصل کنید. این فایل می تواند هر چیزی را که دوست دارید داشته باشد ، در مورد من 15 دقیقه پرنده می خواند (حلقه می شود) ، و صبح من را شگفت انگیز می کند. توجه داشته باشید که یک خازن بزرگ در قدرت و 1 کیلو اهم مقاومت در خط سریال بین ESP32 و DFplayer - اختیاری هستند ، اما به کاهش نویز کمک می کنند.

ذخیره تنظیمات در EEPROM. همه تنظیمات در EEPROM نوشته شده و در شروع بارگذاری می شوند. این امکان را می دهد که از لامپ با حداقل ویژگی زنگ هشدار بدون اتصال کنترل کننده استفاده کنید.

ارائه برخی اطلاعات به صفحه OLED. Heltec ESP32 من دارای یک صفحه داخلی SSD1306 128X64 I2C است. تمام اطلاعات ضروری بر روی آن ارائه شده است. می دانم ، جعبه زشت به نظر می رسد ، من فقط برخی از وسایل را به صورت سه بعدی چاپ کرده و سوراخ ها و پنجره ها را با یک مته برش داده ام. سریع ، کثیف ، اما کار می کند!

مرحله 5: کنترل پنل

صفحه کنترل
صفحه کنترل
صفحه کنترل
صفحه کنترل

این قلب پروژه است. رزبری پای با صفحه نمایش اصلی 7 اینچی ، دارای مقداری صفحه اصلی Kivy است.

در اینجا کد منبع کامل آمده است.

ویژگی ها

نوشته شده در پایتون. من عاشق Kivy هستم ، این یک چارچوب پایتون برای رابط های کاربری است. بسیار ساده ، در عین حال انعطاف پذیر و کارآمد (از کد C زیادی در داخل برای عملکرد بالا و شتاب سخت افزاری استفاده می کند).

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

کنترل کننده SunriseLamp. یک صفحه دیگر اطلاعات اولیه در مورد زنگ هشدار را نمایش می دهد و به شما امکان می دهد روشنایی را تنظیم کنید. اگر به تنظیمات بروید ، می توانید هر پارامتر لامپ ، از جمله برنامه زنگ هشدار ، حداکثر میزان صدا و غیره را پیکربندی کنید.

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

قبلاً بیش از آن وجود داشت ، اما به نظر می رسید سایر موارد بی فایده است.

نصب و راه اندازی

من همه چیز را به صورت دستی روی Raspbian نصب کردم و اکنون می توانم بگویم: اشتباهاتم را تکرار نکنید. از KivyPie استفاده کنید ، همه چیز از قبل نصب شده است.

جدا از آن ، فقط راهنمای نصب را در مخزن کد دنبال کنید.

مرحله ششم: لذت ببرید

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

می دانم که دستورالعمل ها چندان جامع و توصیفی نیستند. اگر کسی همین کار را انجام دهد و مشکلی داشته باشد - خوشحال می شوم به شما کمک کنم!

توصیه شده: