Mündəricat:

Bluetooth Smartphone tərəfindən idarə olunan Smart LED Lampası: 7 addım
Bluetooth Smartphone tərəfindən idarə olunan Smart LED Lampası: 7 addım

Video: Bluetooth Smartphone tərəfindən idarə olunan Smart LED Lampası: 7 addım

Video: Bluetooth Smartphone tərəfindən idarə olunan Smart LED Lampası: 7 addım
Video: ƏN KİÇİK KAMERA 2IN1 | YENİ 2024, Noyabr
Anonim
Image
Image
Bluetooth Smartphone tərəfindən idarə olunan Smart LED Lampası
Bluetooth Smartphone tərəfindən idarə olunan Smart LED Lampası

Həmişə işıqlandırma cihazlarımı idarə etməyi xəyal edirəm. Sonra kimsə inanılmaz rəngli bir LED lampa etdi. Bu yaxınlarda Youtube -da Joseph Cashanın LED lampasına rast gəldim. Bundan ilham alaraq, müasir dizaynı qoruyarkən bir neçə funksiya əlavə etmək qərarına gəldim.

Plan, Bluetooth Modulu və ünvanlı WS2812B RGB LED şeridi əlavə edərək lampanı daha istifadəçi dostu etməkdir. Bu, yalnız bir smartfon tətbiqindən istifadə edərək işığın rəngini idarə etməyə imkan verdi.

Addım 1: Materialları toplayın

Materialları toplayın
Materialları toplayın
Materialları toplayın
Materialları toplayın

Alətlər:

• Lehimləmə məntəqəsi

• Qızdırıcı Blower Gun

• Qazma Maşını

• Dairəvi Mişar

• Yapboz

• Tel kəsici penslər

• Dar burun kəlbətinləri

Materiallar:

• Şəffaf akril lövhə

• Yapon Sərv Ağacı (və ya kifayət qədər dayanıqlı və möhkəm olduğu müddətdə istənilən ağacdan istifadə edə bilərsiniz)

• Vintlər

• Paslanmayan Polad Dirək və ya Çubuq

• Tellər (qırmızı və qara teldən istifadə edirəm)

• Lehimləmə Qalay

Elektronika komponentləri:

• Arduino Nano

• Bluetooth Modulu HC-05 (Wifi Modulu ESP8266-dan kodlaşdırmaq daha asan olduğu üçün bundan istifadə etmək qərarına gəldim)

• WS2812B Ünvanlı RGB LED Şeridi

• LM2596 aşağı salınma modulu

• DC Barel Power Jack

Addım 2: Lampanın Strukturunun Qurulması

Lampanın quruluşunun qurulması
Lampanın quruluşunun qurulması
Lampanın quruluşunun qurulması
Lampanın quruluşunun qurulması

Bu addımda, lampanın quruluşunu qurmağın iki yolu var- ağac emalı üsulu və 3D çap üsulu. Birinci üsuldan istifadə edirəm. Bir 3D printer istifadə edərək bunu etmək istəsəniz, hazırladığım model üçün 2. addıma keçməkdən çekinmeyin.

Lampanın yuxarı hissəsi üçün akril lövhəni yuxarıda göstərildiyi kimi 90 ° bucaq altında qızdırıram və əyirəm. Mükəmməl bir açı və istiqamətə bükmək üçün çox uzun vaxt alıram.

Sonra, lampanın aşağı hissəsi üçün. Təəssüf ki … lampanın aşağı hissəsində işlədiyim gün inşaatın şəklini çəkməyi tamamilə unutdum! Bu layihəni bitirdikdə başa düşdüm. Amma əlimdən gələni edəcəyəm ki, lampanın aşağı hissəsinin ölçüsünü sizə təqdim edim.

Əsasən, 13x6x2cm (LxHxW) ölçüsündə dörd ağac taxta kəsmək lazımdır. Sonra, ağacın kənarında nərdivan kimi bir kəsik kəsməlisiniz. Şəkil yuxarıda göstəriləcək.

Addım 3: 3D Formaları

3D formaları
3D formaları
3D formaları
3D formaları

Öz 3D printerinə sahib olan hər kəs üçün doğru addımdasınız. Bu lampanı istifadəçi dostu etdi.

Düzünü desəm, etdiyim ən çətin addım idi. Proqramı qurduqdan dərhal sonra etdiyim ilk şey budur!

Lampanın quruluşunu dizayn etmək üçün Sketchup Pro -dan istifadə edirəm. Təəssüf ki, onun daxili hissəsini hazırlayacaq qədər bacarıqlı deyiləm. 3D modelimə keçid aşağıdakı faylda.

Addım 4: Komponentlərin Şeması

Komponentlərin sxemi
Komponentlərin sxemi

Fritzing -dən komponentlərin sxemlərini qurmaq üçün istifadə edirəm. Şematik əslində olduqca asandır.

Addım 5: Kod

Kod
Kod

Bu əhval lampasının kodlaşdırılması üçün Arduino IDE -dən bəzi kitabxanalardan istifadə etdim. Kitabxanalar 7 -ci addımda siyahıya alınacaq.

Kod üçün Arduino proqramının özünə sahib olmalısan. Yükləmək üçün linki burada verəcəyəm.

Eskiz və ya kod aşağıda göstəriləcək?

Aşağıdakı kodun burada kopyalanması üçün çox uzun olması halında Github.com -da kod üçün fayl da verdim;)

#include #include #include #ifdef _AVR_ #include #endif

SoftwareSerial BT (10, 11);

#define LED_PIN 7 #NUM_LEDS müəyyən #60 PARLAKLIĞI təyin et # #HIZI təyin 10 #TƏMİZLƏ təyin et #GÜLGÜNÜ_HIZI 50 CRGB led [NUM_LEDS];

Adafruit_NeoPixel şeridi = 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;

boş quraşdırma () {

FastLED.addLeds (ledlər, NUM_LEDS); //////////

BT.begin (9600);

BT.println ("Arduinoya Bağlandı");

strip.setBrightness (BRIGHTNESS);

strip.begin ();

strip.show ();

}

char a;

boşluq döngəsi () {

for (int i = 0; i <= 59; i ++) {led = CRGB (255, 255, 255); FastLED.show (); } bool off = LOW; bool Ağ = LOW; bool Mavi = DÜŞÜK; bool Qırmızı = DÜŞÜK; bool Yaşıl = DÜŞÜK; bool Topaz = LOW; bool Lilac = LOW; bool Rainbow = LOW; bool rgb = LOW; bool ende; əgər (BT.available ()) {a = (char) BT.read ();

əgər (a == 'o')

{off = HIGH; BT.println ("LED -lərin söndürülməsi..");

} başqa {

off = LOW; } // ============================================== ==========================================

əgər (a == 'w')

{Ağ = YÜKSƏK; BT.println ("LEDləri AĞ AÇMA");

} başqa {

Ağ = LOW; } // ============================================== ==========================================

əgər (a == 'b')

{Mavi = YÜKSEK; BT.println ("MAVİYA DƏYİŞMƏK"); } başqa {Mavi = DÜŞÜK; }

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

əgər (a == 'r')

{Qırmızı = YÜKSEK; BT.println ("QIRMIZI DEĞİŞDİRİR"); } başqa {Qırmızı = DÜŞÜK; }

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

əgər (a == 'g')

{Yaşıl = YÜKSƏK; BT.println ("YEŞİLƏ DƏYİŞMƏK"); } başqa {Yaşıl = DÜŞÜK; }

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

əgər (a == 't')

{Topaz = YÜKSƏK; BT.println ("TOPAZA DƏYİŞMƏK"); } başqa {Topaz = LOW; }

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

əgər (a == 'l')

{Yasəmən = YÜKSƏK; BT.println ("Yasəmənə dəyişmə"); } başqa {yasəmən = LOW; }

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

əgər (a == 'a')

{Gökkuşağı = YÜKSƏK; BT.println ("Göy qurşağı animasiyası"); } başqa {Rainbow = LOW; } // ============================================== ==========================================

əgər (a == 'm')

{rgb = YÜKSƏK; BT.println ("MIX COLORS"); } başqa {rgb = LOW; }} if (off == LOW && OffOld == HIGH) {gecikmə (20); if (off == LOW) {showType = 0; // Off animasiya növü 0 startShow (showType); }}

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

əgər (Ağ == LOW && WhiteOld == YÜKSƏK) {

gecikmə (20); əgər (Ağ == LOW) {showType = 1; // Ağ animasiya Type 1 startShow (showType); }}

// ============================================== ========================================== əgər (Qırmızı == DÜŞÜK && RedOld == YÜKSEK) {gecikmə (20); əgər (Qırmızı == DÜŞÜK) {showType = 2; // Qırmızı animasiya Type 2 startShow (showType); }}

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

əgər (Yaşıl == LOW && GreenOld == YÜKSƏK) {

gecikmə (20); əgər (Yaşıl == LOW) {showType = 3; // Yaşıl animasiya Type 3 startShow (showType); }} // ============================================= ===========================================

əgər (Mavi == LOW && BlueOld == YÜKSƏK) {

gecikmə (20); əgər (Mavi == DÜŞÜK) {showType = 4; // Mavi animasiya Type 4 startShow (showType); }}

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

əgər (Topaz == LOW && TopazOld == YÜKSEK) {

gecikmə (20); if (Topaz == LOW) {showType = 5; // Topaz animasiyası Type 5 startShow (showType); }}

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

əgər (yasəmən == LOW & LilacOld == YÜKSƏK) {

gecikmə (20); əgər (yasəmən == LOW) {showType = 6; // Topaz animasiyası Type 6 startShow (showType); }} // ============================================ ===========================================

əgər (Rainbow == LOW && RainbowOld == HIGH) {

gecikmə (20);

əgər (Göy qurşağı == DÜŞÜK) {

showType = 8; // Göy qurşağı animasiyası Type 8 startShow (showType); }}

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

əgər (rgb == LOW && rgbOld == HIGH) {

gecikmə (20);

əgər (rgb == LOW) {

showType = 7; // Mix animasiyası Type 7 rgb = HIGH;

startShow (showType);

} }

WhiteOld = Ağ;

RedOld = Qırmızı; BlueOld = Mavi; GreenOld = Yaşıl; TopazOld = Topaz; LilacOld = yasəmən; offOld = off; RainbowOld = Gökkuşağı; rgbOld = rgb;

}

void startShow (int i) {

keçid (i) {

halda 0: colorWipe (strip. Color (0, 0, 0), SPEED); // Qara/söndür

fasilə;

hal 1: strip.setBrightness (255); // Parlaqlığı MAX -a dəyişir

colorWipe (zolaq. Rəng (255, 255, 255), TƏCİLİ); // Ağ şerit.setBrightness (PARLAKLIQ); // Parlaqlığın Varsayılan dəyər kəsilməsini sıfırlayın;

hal 2: colorWipe (strip. Rəng (255, 0, 0), SPEED); // Qırmızı

fasilə;

hal 3: colorWipe (strip. Color (0, 255, 0), SPEED); // Yaşıl

fasilə;

hal 4: colorWipe (strip. Color (0, 0, 255), SPEED); // Mavi

fasilə;

hal 5: colorWipe (strip. Rəng (0, 250, 255), SPEED); // Topaz

fasilə;

hal 6: colorWipe (strip. Rəng (221, 130, 255), SPEED); // yasəmən

fasilə; hal 7: colorWipe (strip. Rəng (255, 0, 0), SPEED); // Qırmızı colorWipe (strip. Color (0, 255, 0), SPEED); // Yaşıl colorWipe (strip. Rəng (0, 0, 255), SPEED); // Mavi teatrChase (strip. Color (0, 0, 127), SPEED); // Mavi teatrChase (strip. Rəng (127, 0, 0), SPEED); // Qırmızı teatrChase (strip. Color (0, 127, 0), SPEED); // Yaşıl fasilə;

hal 8: göy qurşağı dövrü (25);

fasilə; }} void colorWipe (uint32_t c, uint8_t gözləyin) {for (uint16_t i = 0; i

boş göy qurşağı dövrü (uint8_t gözləyin) {

uint16_t i, j;

for (j = 0; j <256*10; j ++) {// (i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, Wheel (((i * 256 / strip.numPixels ()) + j) & 255)); } strip.show (); gecikmə (gözləmək); }}

void teatrChase (uint32_t c, uint8_t gözləyin) {

for (int j = 0; j <10; j ++) {// (int q = 0; q <3; q ++) {üçün (int i = 0; i <strip.numPixels (); i = i+3) {strip.setPixelColor (i+q, c); // hər üçüncü pikseli yandırın} strip.show ();

gecikmə (gözləmək);

for (int i = 0; i <strip.numPixels (); i = i+3) {strip.setPixelColor (i+q, 0); // hər üçüncü pikseli söndürün}}}}

uint32_t Təkər (WheelPos bayt) {

WheelPos = 255 - WheelPos; if (WheelPos <85) {qayıtma zolağı. Color (255 - WheelPos * 3, 0, WheelPos * 3); } əgər (WheelPos <170) {WheelPos -= 85; geri zolaq. Color (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos -= 170; geri zolaq. Color (WheelPos * 3, 255 - WheelPos * 3, 0); }

Addım 6: Lampaya nəzarət

Lampaya nəzarət
Lampaya nəzarət
Lampaya nəzarət
Lampaya nəzarət
Lampaya nəzarət
Lampaya nəzarət

Smartfonunuzdan istifadə edərək lampanın rəngini idarə edə bilərsiniz.

Əvvəlcə Google Play Store və ya Apple App Store-dan 'Bluetooth Terminal HC-05' adlı proqramı yükləməlisiniz.

Şəxsi smartfonunuz vasitəsilə lampanı idarə etmək üçün aşağıdakı addımlar atılır:

1. Smartfonunuzda bluetooth yandırın.

2. 'Bluetooth Terminal HC-05' olan proqramı açın.

3. İndi ekranda qoşalaşmış cihazları görməlisiniz. 'HC-05' seçin.

4. İndi ağıllı telefonunuzda 'Arduino -ya qoşulduğunu' göstərən qara bir ekranın göründüyünü görə bilərsiniz.

5. İşin əyləncəli tərəfi, mətn qutusuna 'b' yazsanız, lampa mavi rəngə çevriləcək. Lampa üçün yaza biləcəyiniz əmrin siyahısı budur:

- ağ üçün w

- mavi üçün b

- yaşıl üçün g

- qırmızı üçün r

- topaz üçün

- yasəmən üçün

- göy qurşağı animasiyası üçün

- o üçün

Əyləncəli, hə?

6. Nəhayət, yuxarıdakı şəkildə göstərildiyi kimi ekranın altındakı düyməni istədiyiniz mətnə uyğunlaşdıra bilərsiniz.

Addım 7: Mood Lampanızdan zövq alın

Mood Lampanızdan Zövq alın !!
Mood Lampanızdan Zövq alın !!
Mood Lampanızdan Zövq alın !!
Mood Lampanızdan Zövq alın !!
Mood Lampanızdan Zövq alın !!
Mood Lampanızdan Zövq alın !!

Ümid edirəm bu təlimatları bəyənəcəksiniz. Mənim üçün çox çətin bir layihə idi, amma 14 yaşında bir oğlan olaraq tamamlaya bildim. Gələcək inkişaflar üçün mənə bir az geribildirim verin.

Oxuduğunuz üçün və Milad bayramınız üçün təşəkkür edirik!

Tövsiyə: