فهرست مطالب:

لامپ LED هوشمند کنترل شده توسط تلفن هوشمند: 7 مرحله
لامپ LED هوشمند کنترل شده توسط تلفن هوشمند: 7 مرحله

تصویری: لامپ LED هوشمند کنترل شده توسط تلفن هوشمند: 7 مرحله

تصویری: لامپ LED هوشمند کنترل شده توسط تلفن هوشمند: 7 مرحله
تصویری: نه کاری که نمیدونستی گوشیت انجام میده | 9 کاربرد مخفی گوشی 2024, جولای
Anonim
Image
Image
لامپ LED هوشمند کنترل شده توسط بلوتوث
لامپ LED هوشمند کنترل شده توسط بلوتوث

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

برنامه این است که چراغ را با افزودن ماژول بلوتوث و نوار LED WS2812B RGB آدرس پذیر ، کاربرپسندتر کنید. این امر امکان کنترل رنگ روشنایی را تنها با استفاده از یک برنامه تلفن هوشمند امکان پذیر می کند.

مرحله 1: مواد را جمع آوری کنید

مواد را جمع آوری کنید
مواد را جمع آوری کنید
مواد را جمع آوری کنید
مواد را جمع آوری کنید

ابزارها:

• ایستگاه لحیم کاری

• تفنگ دمنده بخاری

• دستگاه حفاری

• اره گرد

• اره منبت کاری اره مویی

• انبردست سیم برش

• انبردست باریک بینی

مواد:

• تخته اکریلیک شفاف

• چوب سرو ژاپنی (یا می توانید از هر چوبی استفاده کنید تا زمانی که پایدار و محکم باشد)

• پیچ ها

• قطب یا چوب از جنس استنلس استیل

• سیم (من از سیم قرمز و سیاه استفاده می کنم)

• قلع لحیم کاری

قطعات الکترونیکی:

• آردوینو نانو

• بلوتوث ماژول HC-05 (من تصمیم گرفتم از این کد استفاده کنم زیرا کدگذاری نسبت به Wifi Module ESP8266 آسانتر است)

• نوار LED RGB آدرس پذیر WS2812B

• ماژول LM2596 Step-down Module

• جک پاور DC DC

مرحله 2: ایجاد ساختار لامپ

ساخت ساختار لامپ
ساخت ساختار لامپ
ساخت ساختار لامپ
ساخت ساختار لامپ

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

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

بعد ، برای قسمت پایین لامپ. متأسفانه … روزی که روی قسمت پایینی لامپ کار می کنم ، کاملاً فراموش کردم از ساختمان عکس بگیرم! وقتی این پروژه را به پایان رساندم متوجه شدم. اما من تمام تلاش خود را می کنم تا اندازه قسمت پایین لامپ را در اختیار شما قرار دهم.

اساساً ، شما فقط باید چهار بلوک چوب را با ابعاد 13x6x2cm برش دهید (LxHxW). در مرحله بعد ، شما باید یک برش پله مانند را در لبه چوب برش دهید. تصویر بالا نشان داده می شود.

مرحله 3: اشکال سه بعدی

اشکال سه بعدی
اشکال سه بعدی
اشکال سه بعدی
اشکال سه بعدی

برای هر کسی که چاپگر سه بعدی خود را دارد ، شما در مرحله درست هستید. این باعث شده که این لامپ کاربر پسند باشد.

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

من از Sketchup Pro برای طراحی ساختار لامپ استفاده می کنم. متأسفانه ، من آنقدر ماهر نیستم که بتوانم قسمت داخلی آن را طراحی کنم. پیوند مدل سه بعدی من در فایل زیر موجود است.

مرحله 4: شماتیک اجزاء

شماتیک اجزاء
شماتیک اجزاء

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

مرحله 5: کد

کد
کد

برای کدگذاری این چراغ خلق و خو ، از برخی کتابخانه های Arduino IDE استفاده کردم. کتابخانه ها در مرحله 7 فهرست شده اند.

برای کد ، باید خود نرم افزار Arduino را داشته باشید. لینک دانلود رو اینجا میذارم

همچنین ، طرح یا کد در زیر نشان داده می شود؟

من همچنین فایل کد را در Github.com ارائه دادم در صورتی که کد زیر برای کپی در اینجا طولانی باشد ؛)

#شامل #شامل #شامل #ifdef _AVR_ #شامل #endif

SoftwareSerial BT (10 ، 11) ؛

#تعریف LED_PIN 7 #تعریف NUM_LEDS 60 #تعریف روشنایی 200 #تعریف سرعت 10 #تعریف سریع

نوار Adafruit_NeoPixel = Adafruit_NeoPixel (NUM_LEDS ، LED_PIN ، NEO_GRB + NEO_KHZ800) ؛

bool offOld = LOW؛

bool WhiteOld = LOW؛ bool RedOld = LOW؛ bool GreenOld = LOW؛ bool BlueOld = LOW؛ bool TopazOld = LOW؛ bool LilacOld = LOW؛ bool RainbowOld = LOW؛ bool rgbOld = LOW؛ int showType = 0؛

void setup () {

FastLED.addLeds (leds ، NUM_LEDS) ؛ ///////////

BT.begin (9600) ؛

BT.println ("متصل به آردوینو") ؛

strip.setBrightness (BRIGHTNESS) ؛

strip.begin ()؛

strip.show ()؛

}

char a؛

حلقه خالی () {

برای (int i = 0 ؛ i <= 59؛ i ++) {leds = CRGB (255 ، 255 ، 255) ؛ FastLED.show ()؛ } bool off = LOW؛ bool White = LOW؛ bool Blue = LOW؛ bool Red = LOW؛ bool Green = LOW؛ bool Topaz = LOW؛ bool Lilac = LOW؛ bool Rainbow = LOW؛ bool rgb = LOW؛ bool ende؛ if (BT.available ()) {a = (char) BT.read ()؛

if (a == 'o')

{off = HIGH؛ BT.println ("خاموش کردن LED ها..") ؛

} دیگری {

خاموش = LOW؛ } // ============================================ ===========================================

اگر (a == 'w')

{سفید = بالا ؛ BT.println ("چرخاندن LED ها به سفید") ؛

} دیگری {

سفید = پایین ؛ } // ============================================ ==========================================

if (a == 'b')

{آبی = بالا ؛ BT.println ("تغییر رنگ آبی") ؛ } else {آبی = LOW؛ }

// ===========================================================================================

if (a == 'r')

{قرمز = بالا ؛ BT.println ("تغییر به قرمز") ؛ } else {قرمز = پایین ؛ }

// ===========================================================================================

if (a == 'g')

{سبز = بالا ؛ BT.println ("تغییر به سبز") ؛ } else {سبز = LOW؛ }

// ===========================================================================================

if (a == 't')

{Topaz = HIGH؛ BT.println ("تغییر به TOPAZ") ؛ } else {Topaz = LOW؛ }

// ===========================================================================================

اگر (a == 'l')

{یاس بنفش = بالا ؛ BT.println ("تغییر به لیلاک") ؛ } else {Lilac = LOW؛ }

// ===========================================================================================

اگر (a == 'a')

{رنگین کمان = بالا ؛ BT.println ("انیمیشن رنگین کمان") ؛ } else {رنگین کمان = LOW؛ } // ============================================ ==========================================

اگر (a == 'm')

{rgb = HIGH؛ BT.println ("MIX COLORS") ؛ } else {rgb = LOW؛ }} if (off == LOW && offOld == HIGH) {تأخیر (20)؛ if (خاموش == پایین) {showType = 0؛ // انیمیشن خاموش نوع 0 startShow (showType) ؛ }}

// ===========================================================================================

if (سفید == LOW && WhiteOld == HIGH) {

تأخیر (20) ؛ if (سفید == LOW) {showType = 1؛ // انیمیشن سفید نوع 1 startShow (showType) ؛ }}

// ============================================= ======================================== اگر (قرمز == پایین && RedOld == HIGH) {تاخیر (20)؛ if (قرمز == پایین) {showType = 2؛ // انیمیشن قرمز نوع 2 startShow (showType) ؛ }}

// ===========================================================================================

if (سبز == LOW && GreenOld == HIGH) {

تأخیر (20) ؛ if (سبز == پایین) {showType = 3؛ // انیمیشن سبز نوع 3 startShow (showType) ؛ }} // =========================================== ===========================================

if (آبی == LOW && BlueOld == HIGH) {

تأخیر (20) ؛ if (آبی == پایین) {showType = 4 ؛ // انیمیشن آبی نوع 4 startShow (showType) ؛ }}

// ===========================================================================================

if (Topaz == LOW && TopazOld == HIGH) {

تأخیر (20) ؛ if (Topaz == LOW) {showType = 5؛ // انیمیشن Topaz نوع 5 startShow (showType) ؛ }}

// ===========================================================================================

if (Lilac == LOW && LilacOld == HIGH) {

تأخیر (20) ؛ if (Lilac == LOW) {showType = 6؛ // انیمیشن Topaz نوع 6 startShow (showType) ؛ }} // =========================================== ===========================================

if (Rainbow == LOW && RainbowOld == HIGH) {

تأخیر (20) ؛

if (Rainbow == LOW) {

showType = 8؛ // انیمیشن رنگین کمان نوع 8 startShow (showType) ؛ }}

// ===========================================================================================

if (rgb == LOW && rgbOld == HIGH) {

تأخیر (20) ؛

if (rgb == LOW) {

showType = 7؛ // میکس انیمیشن نوع 7 rgb = HIGH؛

startShow (showType) ؛

} }

WhiteOld = سفید ؛

RedOld = قرمز ؛ BlueOld = آبی ؛ GreenOld = سبز ؛ TopazOld = توپاز؛ LilacOld = یاس بنفش ؛ offOld = خاموش؛ RainbowOld = Rainbow؛ rgbOld = rgb؛

}

void startShow (int i) {

تغییر (i) {

مورد 0: colorWipe (نوار. رنگ (0 ، 0 ، 0) ، SPEED) ؛ // سیاه/خاموش

زنگ تفريح؛

مورد 1: strip.setBrightness (255) ؛ // Brightness را به MAX تغییر می دهد

colorWipe (نوار رنگ (255 ، 255 ، 255) ، فوراً) ؛ // strip white.setBrightness (BRIGHTNESS) ؛ // تنظیم مجدد Brightness to Default value؛

مورد 2: colorWipe (نوار رنگ (255 ، 0 ، 0) ، SPEED) ؛ // قرمز

زنگ تفريح؛

مورد 3: colorWipe (نوار. رنگ (0 ، 255 ، 0) ، SPEED) ؛ // سبز

زنگ تفريح؛

مورد 4: colorWipe (نوار. رنگ (0 ، 0 ، 255) ، SPEED) ؛ // آبی

زنگ تفريح؛

مورد 5: colorWipe (نوار رنگ (0 ، 250 ، 255) ، SPEED) ؛ // توپاز

زنگ تفريح؛

مورد 6: colorWipe (نوار رنگ (221 ، 130 ، 255) ، SPEED) ؛ // بنفشه

زنگ تفريح؛ مورد 7: colorWipe (نوار رنگ (255 ، 0 ، 0) ، SPEED) ؛ // رنگ قرمز پاک کردن (نوار. رنگ (0 ، 255 ، 0) ، SPEED) ؛ // رنگ سبز پاک کردن (نوار. رنگ (0 ، 0 ، 255) ، SPEED) ؛ // Blue theaterChase (strip. Color (0، 0، 127)، SPEED) ؛ // Blue theaterChase (strip. Color (127 ، 0 ، 0) ، SPEED) ؛ // Red theaterChase (strip. Color (0 ، 127 ، 0) ، SPEED) ؛ // استراحت سبز ؛

مورد 8: rainbowCycle (25) ؛

زنگ تفريح؛ }} void colorWipe (uint32_t c، uint8_t wait) {for (uint16_t i = 0؛ i

void rainbowCycle (uint8_t wait) {

uint16_t i، j؛

برای (j = 0 ؛ j <256*10 ؛ j ++) {// 5 چرخه از همه رنگها در چرخ برای (i = 0 ؛ i <strip.numPixels () ؛ i ++) {strip.setPixelColor (i ، Wheel (((i * 256 / strip.numPixels ()) + j) & 255))؛ } strip.show ()؛ تأخیر (صبر) ؛ }}

void theaterChase (uint32_t c ، uint8_t wait) {

برای (int j = 0 ؛ j <10؛ j ++) {// 10 چرخه تعقیب (int q = 0 ؛ q <3؛ q ++) {برای (int i = 0 ؛ i <strip.numPixels () ؛ i = i+3) {strip.setPixelColor (i+q، c)؛ // هر پیکسل سوم را روشن کنید} strip.show ()؛

تأخیر (صبر) ؛

برای (int i = 0؛ i <strip.numPixels ()؛ i = i+3) {strip.setPixelColor (i+q، 0)؛ // هر پیکسل سوم را خاموش کنید}}}}

uint32_t Wheel (byte WheelPos) {

WheelPos = 255 - WheelPos ؛ if (WheelPos <85) {strip return. Color (255 - WheelPos * 3 ، 0 ، WheelPos * 3) ؛ } if (WheelPos <170) {WheelPos -= 85؛ نوار بازگشت. رنگ (0 ، WheelPos * 3 ، 255 - WheelPos * 3) ؛ } WheelPos -= 170 ؛ نوار بازگشت. رنگ (WheelPos * 3 ، 255 - WheelPos * 3 ، 0) ؛ }

مرحله 6: کنترل لامپ

کنترل لامپ
کنترل لامپ
کنترل لامپ
کنترل لامپ
کنترل لامپ
کنترل لامپ

رنگ لامپ را می توان با استفاده از تلفن هوشمند خود کنترل کرد.

ابتدا ، باید برنامه ای به نام "Bluetooth Terminal HC-05" را از Google Play Store یا Apple App Store نصب کنید.

مراحل کنترل لامپ از طریق تلفن هوشمند خود به شرح زیر است:

1. بلوتوث را در تلفن هوشمند خود روشن کنید.

2. برنامه ای را که "Bluetooth Terminal HC-05" است باز کنید.

3. اکنون باید دستگاه های مرتبط شده را روی صفحه مشاهده کنید. "HC-05" را انتخاب کنید.

4. اکنون می توانید یک صفحه سیاه در تلفن هوشمند خود مشاهده کنید که نشان می دهد 'متصل به آردوینو' است.

5. در اینجا قسمت سرگرم کننده است ، اگر "b" را در جعبه متن تایپ کنید ، چراغ به رنگ آبی در می آید. در اینجا لیستی از فرمان هایی است که می توانید برای لامپ تایپ کنید:

- w برای سفید

- ب برای آبی

- گرم برای رنگ سبز

- r برای قرمز

- t برای توپاز

- l برای یاس بنفش

- یک انیمیشن رنگین کمان

- o برای خاموش

تفریح درسته؟

6. در آخر اما نه کم اهمیت ، شما همچنین می توانید دکمه زیر صفحه را متن مورد نظر خود را مطابق تصویر بالا سفارشی کنید.

مرحله 7: از لامپ خلق و خوی خود لذت ببرید

از لامپ خلق و خوی خود لذت ببرید !!
از لامپ خلق و خوی خود لذت ببرید !!
از لامپ خلق و خوی خود لذت ببرید !!
از لامپ خلق و خوی خود لذت ببرید !!
از لامپ خلق و خوی خود لذت ببرید !!
از لامپ خلق و خوی خود لذت ببرید !!

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

با تشکر از شما برای خواندن و کریسمس مبارک!

توصیه شده: