Mündəricat:
- Addım 1: Materialları toplayın
- Addım 2: Lampanın Strukturunun Qurulması
- Addım 3: 3D Formaları
- Addım 4: Komponentlərin Şeması
- Addım 5: Kod
- Addım 6: Lampaya nəzarət
- Addım 7: Mood Lampanızdan zövq alın
Video: Bluetooth Smartphone tərəfindən idarə olunan Smart LED Lampası: 7 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
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
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ı
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ı
Ö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ı
Fritzing -dən komponentlərin sxemlərini qurmaq üçün istifadə edirəm. Şematik əslində olduqca asandır.
Addım 5: 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
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
Ü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ə:
Təyyarə ilə idarə olunan radio idarə olunan ördək: 10 addım (şəkillərlə)
Jet Propelled Radio Controlled Duck: 40+ il əvvəl bir radio nəzarət qayığı almaq və yaxınlıqdakı Park Gölündə istifadə etmək istəyirdim, lakin Park Qapıcısı heç bir gəmiyə icazə verilməyəcəyini açıq şəkildə bildirdi. Bir gəmini ördək kimi gizlətmək üçün bu planı hazırladım. Bir az çatışmazlıq qiymət idi
Bluetooth və ya Potansiometr tərəfindən idarə olunan RGB Led: 5 addım
Bluetooth və ya Potansiometr tərəfindən idarə olunan RGB Led: Salam! Bu gün Arduino layihəmi sizinlə bölüşmək istədim. RGB rəhbərliyini Arduino tərəfindən idarə edildim. 3 rejimi və 2 interfeysi var. Birinci rejim əllə idarəetmə, ikinci sərin göy qurşağı və üçüncü rəng kilididir. Əvvəlcə potensiometrini kalibr edirsiniz. Sonra sən
Yerli Veb Server tərəfindən idarə olunan ESP 8266 Nodemcu Ws 2812 Neopixel Əsaslı LED MOOD Lampası: 6 Addım
ESP 8266 Nodemcu Ws 2812 Neopixel əsaslı LED MOOD Lampası Yerli Veb Server tərəfindən idarə olunur: ESP 8266 Nodemcu Ws 2812 Neopixel əsaslı LED MOOD Lampası Webserverdən istifadə edilərək idarə olunur
Smartfon tərəfindən idarə olunan Bluetooth LEDləri (Canlı Musiqi Sinxronizasiyası ilə): 7 addım
Smartfonla idarə olunan Bluetooth LEDləri (Canlı Musiqi Sinxronizasiyası ilə): İnşaat işlərini həmişə çox sevirdim, yeni kollec yataqxanamın dəhşətli işıqlandırmaya malik olduğunu öyrəndikdən sonra onu bir az da ədviyyat etmək qərarına gəldim. *** XƏBƏRDARLIQ *** mənim quruluşumla eyni miqyasda olan bu layihə, layiqli bir miqdar ilə işləyəcəksən
ARDUINO YUN tərəfindən idarə olunan ROOMBA STEFANO DALL'OLIO tərəfindən Wifi Tətbiqi ilə: 4 Addım (Şəkillərlə)
ARDUINO YUN tərəfindən idarə olunan ROOMBA, STEFANO DALL'OLIO tərəfindən Wifi Tətbiqi ilə: Bu təlimatla, Wifi vasitəsilə Roomba sürmək üçün ARDUINO YUN -u Roomba'ya bağlamaq üçün kodu paylaşıram. Kod və tətbiq tam olaraq özüm tərəfindən yaradılıb və Stefano Dall tərəfindən hazırlanmışdır. Olio.My Roomba Roomba 620 -dir, lakin eyni kodu digər Roomb üçün də istifadə edə bilərsiniz