Բովանդակություն:
- Քայլ 1: Հավաքեք նյութերը
- Քայլ 2. Լամպի կառուցվածքի կառուցում
- Քայլ 3: 3D ձևեր
- Քայլ 4: Բաղադրիչների սխեման
- Քայլ 5: Կոդ
- Քայլ 6: Լամպի կառավարում
- Քայլ 7: Վայելեք ձեր տրամադրության լամպը:
Video: Bluetooth Սմարթֆոնի միջոցով կառավարվող Smart LED լամպ ՝ 7 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
Ես միշտ երազում եմ վերահսկել իմ լուսավորման սարքերը: Հետո ինչ -որ մեկը անհավանական գունագեղ LED լամպ պատրաստեց: Վերջերս Youtube- ում հանդիպեցի Lոզեֆ Կաշայի LED լամպին: Ոգեշնչվելով դրանից ՝ որոշեցի ավելացնել մի քանի գործառույթ ՝ պահպանելով ժամանակակից դիզայնը:
Theրագիրը նախատեսում է լամպը դարձնել ավելի հարմարավետ `ավելացնելով Bluetooth մոդուլ և հասցեագրվող WS2812B RGB LED ժապավեն: Սա հնարավորություն տվեց վերահսկել լուսավորության գույնը միայն սմարթֆոնների հավելվածի միջոցով:
Քայլ 1: Հավաքեք նյութերը
Գործիքներ:
• oldոդման կայան
• aterեռուցիչ փչող ատրճանակ
• Հորատման մեքենա
• Շրջանաձև սղոց
• ոլորահատ սղոց
• Մետաղալար տափակաբերան աքցան
• Նեղ քթի տափակաբերան աքցան
Նյութեր:
• Թափանցիկ ակրիլային տախտակ
• Japaneseապոնական Cypress Wood (կամ կարող եք օգտագործել ցանկացած փայտ, քանի դեռ այն բավականին կայուն և ամուր է)
• պտուտակներ
• Չժանգոտվող պողպատից բևեռ կամ ձողիկ
• Լարեր (ես օգտագործում եմ կարմիր և սև մետաղալարեր)
• oldոդման անագ
Էլեկտրոնիկայի բաղադրիչներ.
• Արդուինո Նանո
• Bluetooth մոդուլ HC-05 (ես որոշեցի օգտագործել այն, քանի որ այն ավելի հեշտ է ծածկագրել, քան Wifi մոդուլը ESP8266)
• WS2812B հասցեավորվող RGB LED ժապավեն
• LM2596 Հետընթաց մոդուլ
• DC Barrel Power Jack
Քայլ 2. Լամպի կառուցվածքի կառուցում
Այս քայլում ես ունեմ լամպի կառուցվածքը կառուցելու երկու եղանակ ՝ փայտամշակման և 3D տպագրության մեթոդ: Ես օգտագործում եմ առաջին մեթոդը: Եթե նախընտրում եք դա անել 3D տպիչի օգտագործմամբ, ազատ զգացեք անցնել 2 -րդ քայլին իմ նախագծած մոդելի համար:
Լամպի վերին հատվածի համար ես տաքացնում և թեքում եմ ակրիլային տախտակը 90 ° անկյան տակ, ինչպես ցույց է տրված վերևում: Ես բավականին երկար ժամանակ եմ պահանջում այն թեքելու համար կատարյալ անկյան և ուղղության վրա:
Հաջորդը, լամպի ստորին մասի համար: Unfortunatelyավոք… այն օրը, երբ ես աշխատում եմ լամպի ներքևի մասում, ես ամբողջովին մոռացա նկարել շինարարությունը: Ես դա հասկացա, երբ ավարտեցի այս նախագիծը: Բայց ես ամեն կերպ կփորձեմ ձեզ տրամադրել լամպի ստորին հատվածի չափումը:
Հիմնականում պարզապես անհրաժեշտ է կտրել չորս բլոկ ՝ 13x6x2 սմ չափսերով (LxHxW): Հաջորդը, դուք պետք է կտրեք աստիճանի նման կտրվածքը փայտի եզրին: Նկարը կցուցադրվի վերևում:
Քայլ 3: 3D ձևեր
Նրանց համար, ովքեր ունեն իրենց սեփական 3D տպիչը, դուք ճիշտ քայլի մեջ եք: Սա դարձրեց այս լամպը օգտագործողի համար հարմար:
Անկեղծ ասած, սա իմ կատարած ամենադժվար քայլն էր: Սա առաջին բանն է, որ ես արեցի ծրագրաշարը տեղադրելուց անմիջապես հետո:
Լամպի կառուցվածքը նախագծելու համար ես օգտագործում եմ Sketchup Pro- ն: Unfortunatelyավոք, ես այնքան հմուտ չեմ, որ կարողանամ նախագծել դրա ներքին բաղադրիչը: Իմ 3D մոդելի հղումը ստորև բերված ֆայլում է:
Քայլ 4: Բաղադրիչների սխեման
Ես օգտագործում եմ Fritzing- ը ՝ բաղադրիչների սխեմաները կառուցելու համար: Սխեման իրականում բավականին հեշտ է:
Քայլ 5: Կոդ
Այս տրամադրության լամպի կոդավորման համար ես որոշ գրադարաններ օգտագործեցի Arduino IDE- ից: Գրադարանները թվարկված կլինեն 7 -րդ քայլում:
Կոդի համար անհրաժեշտ է ունենալ Arduino ծրագրակազմը: Ներբեռնելու հղումը կտրամադրեմ այստեղ:
Բացի այդ, ուրվագիծը կամ ծածկագիրը կցուցադրվի՞ ստորև:
Ես նաև տրամադրեցի Github.com- ի ծածկագրի ֆայլը, եթե ստորև նշված կոդը այստեղ պատճենելու համար չափազանց երկար լինի;)
#ներառել #ներառել #ներառել #ifdef _AVR_ #ներառել #ավարտել
SoftwareSerial BT (10, 11);
#սահմանել LED_PIN 7 #սահմանել NUM_LEDS 60 #սահմանել ՊԱՀՈՍՏՈ #ԹՅՈ 200Ն 200 #սահմանել SPEED 10 #սահմանել ԱՆԳԱՄ 0 #սահմանել RAINBOW_SPEED 50 CRGB լուսարձակներ [NUM_LEDS];
Adafruit_NeoPixel շերտ = Adafruit_NeoPixel (NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);
bool offOld = LOW;
bool WhiteOld = OWԱOWՐ; bool RedOld = OWԱOWՐ; bool GreenOld = OWԱOWՐ; bool BlueOld = OWԱOWՐ; bool TopazOld = OWԱOWՐ; bool LilacOld = OWԱOWՐ; bool RainbowOld = OWԱOWՐ; bool rgbOld = OWԱOWՐ; int showType = 0;
void setup () {
FastLED.addLeds (լուսարձակներ, NUM_LEDS); ///////////
BT. Սկիզբ (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 = OWԱOWՐ; bool Lilac = LOW; bool Rainbow = LOW; bool rgb = OWԱOWՐ; bool ende; if (BT.available ()) {a = (char) BT.read ();
եթե (a == 'o')
{անջատված = Բարձր; BT.println («LED- ների անջատում..»);
} ուրիշ {
անջատված = OWԱOWՐ; } // =============================================== =============================================
եթե (a == 'w')
{Սպիտակ = Բարձր; BT.println («LED- ները սպիտակ են շրջում»);
} ուրիշ {
Սպիտակ = OWԱOWՐ; } // =============================================== =============================================
եթե (a == 'b')
{Կապույտ = Բարձր; BT.println («ՓՈՓՈԽՈԹՅՈՆ Կապույտին»); } else {Կապույտ = OWԱOWՐ; }
// ===========================================================================================
եթե (a == 'r')
{Կարմիր = Բարձր; BT.println («ՓՈԽՈՄ ԿԱՐՄԻՐԻՆ»); } else {Կարմիր = OWԱOWՐ; }
// ===========================================================================================
եթե (a == 'g')
{Կանաչ = Բարձր; BT.println («ՓՈՓՈԽՈԹՅՈՆ Կանաչին»); } else {Կանաչ = OWԱOWՐ; }
// ===========================================================================================
եթե (a == 't')
{Տոպազ = ԲԱՐՁՐ; BT.println («ՓՈՓՈԽՈՄ ԵՆ ԹՈՓԱZ»); } else {Topaz = LOW; }
// ===========================================================================================
եթե (a == 'l')
{Յասաման = ԲԱՐՁՐ; BT.println («ՓՈՓՈԽՈԹՅՈՆ ԼԻԼԱԿԻՆ»); } else {Lilac = LOW; }
// ===========================================================================================
եթե (a == 'a')
{Rիածան = ԲԱՐՁՐ; BT.println («RAիածանի անիմացիա»); } else {Rainbow = LOW; } // =============================================== =============================================
եթե (a == 'մ')
{rgb = ԲԱՐՁՐ; BT.println ("MIX COLORS"); } else {rgb = LOW; }} if (անջատված == LOW && offOld == HIGH) {ուշացում (20); եթե (անջատված == OWԱOWՐ) {showType = 0; // Անջատված անիմացիա Type 0 startShow (showType); }}
// ===========================================================================================
եթե (Սպիտակ == LOW && WhiteOld == Բարձր) {
ուշացում (20); եթե (Սպիտակ == OWԱOWՐ) {showType = 1; // Սպիտակ անիմացիա Type 1 startShow (showType); }}
// ================================================ =========================================== եթե (Կարմիր == OWածր && RedOld == HIGH) {ուշացում (20); եթե (Կարմիր == OWԱOWՐ) {showType = 2; // Կարմիր անիմացիա Type 2 startShow (showType); }}
// ===========================================================================================
եթե (Կանաչ == LOW && GreenOld == ԲԱՐՁՐ) {
ուշացում (20); եթե (Կանաչ == OWԱOWՐ) {showType = 3; // Կանաչ անիմացիա Type 3 startShow (showType); }} // ============================================== =============================================
եթե (Կապույտ == OWԱOWՐ && BlueOld == ԲԱՐՁՐ) {
ուշացում (20); եթե (Կապույտ == OWԱOWՐ) {showType = 4; // Կապույտ անիմացիա Type 4 startShow (showType); }}
// ===========================================================================================
եթե (Topaz == LOW && TopazOld == HIGH) {
ուշացում (20); եթե (Topaz == LOW) {showType = 5; // Topaz անիմացիա Type 5 startShow (showType); }}
// ===========================================================================================
եթե (Lilac == LOW && LilacOld == HIGH) {
ուշացում (20); if (Lilac == LOW) {showType = 6; // Topaz անիմացիա Type 6 startShow (showType); }} // ============================================== =============================================
եթե (Rainbow == LOW && RainbowOld == HIGH) {
ուշացում (20);
եթե (Rainbow == LOW) {
showType = 8; // Rainbow անիմացիա Type 8 startShow (showType); }}
// ===========================================================================================
եթե (rgb == LOW && rgbOld == HIGH) {
ուշացում (20);
եթե (rgb == LԱOWՐ) {
showType = 7; // Շարժապատկերների խառնուրդ Տեսակ 7 rgb = HIGH;
startShow (showType);
} }
WhiteOld = Սպիտակ;
RedOld = Կարմիր; BlueOld = Կապույտ; GreenOld = Կանաչ; TopazOld = Տոպազ; LilacOld = յասաման; offOld = անջատված; RainbowOld = ainիածան; rgbOld = rgb;
}
void startShow (int i) {
անջատիչ (i) {
գործ 0: colorWipe (շերտ. Գույն (0, 0, 0), SPEED); // Սև/անջատված
ընդմիջում;
գործ 1: strip.setBrightness (255); // Պայծառությունը փոխում է MAX- ի
գույնը սրբել (շերտ. Գույն (255, 255, 255), ԱՆՀՈՄ); // White strip.setBrightness (BRIGHTNESS); // Վերականգնել Brightness- ը Default արժեքի ընդմիջում;
գործ 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); // Red colorWipe (շերտ. Գույն (0, 255, 0), SPEED); // Green colorWipe (շերտ. Գույն (0, 0, 255), SPEED); // Blue theaterChase (շերտ. Գույն (0, 0, 127), SPEED); // Blue theaterChase (շերտ. Գույն (127, 0, 0), SPEED); // Red theaterChase (շերտ. Գույն (0, 127, 0), SPEED); // Կանաչ ընդմիջում;
գործ 8: rainbowCycle (25);
ընդմիջում; }} void colorWipe (uint32_t c, uint8_t սպասել) {for (uint16_t i = 0; i
void rainbowCycle (uint8_t սպասել) {
uint16_t i, j;
for (j = 0; j <256*10; j ++) {// անիվի բոլոր գույների 5 ցիկլ (i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, անիվ (((i * 256 / strip.numPixels ()) + j) & 255)); } strip.show (); ուշացում (սպասել); }}
void theaterChase (uint32_t գ, uint8_t սպասել) {
for (int j = 0; j <10; j ++) {// անել 10 ցիկլ հետապնդման համար (int q = 0; q <3; q ++) {for (int i = 0; i <strip.numPixels (); i = i+3) {strip.setPixelColor (i+q, գ); // միացնել յուրաքանչյուր երրորդ պիքսել} strip.show ();
ուշացում (սպասել);
համար (int i = 0; i <strip.numPixels (); i = i+3) {strip.setPixelColor (i+q, 0); // անջատել յուրաքանչյուր երրորդ պիքսել}}}}
uint32_t Անիվ (բայթ WheelPos) {
WheelPos = 255 - WheelPos; if (WheelPos <85) {վերադարձի շերտ. 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 տերմինալ HC-05» անունը կրող ծրագիրը Google Play Store- ից կամ Apple App Store- ից:
Ահա ձեր սեփական սմարթֆոնի միջոցով լամպը կառավարելու քայլերը.
1. Միացրեք Bluetooth- ը ձեր սմարթֆոնում:
2. Բացեք ծրագիրը, որը «Bluetooth տերմինալ HC-05» է:
3. Այժմ դուք պետք է էկրանին տեսնեք զուգավորված սարքերը: Ընտրեք «HC-05»:
4. Այժմ դուք կարող եք տեսնել, որ սմարթֆոնում հայտնվում է սև էկրան, որը ցույց կտա 'միացված է Arduino- ին':
5. Ահա զվարճալի մասը, եթե տեքստում մուտքագրեք «b», լամպը կդառնա կապույտ: Ահա այն հրամանի ցանկը, որը կարող եք մուտքագրել լամպի համար.
- w սպիտակի համար
- բ կապույտի համար
- կանաչ կանաչի համար
- r կարմիրի համար
- տ տոպազի համար
- լ յասամանի համար
- ծիածանի անիմացիայի համար
- o անջատելու համար
Funամանց, ճիշտ է:
6. Վերջին, բայց ոչ ամենակարևորը, նաև կարող եք էկրանի ներքևի կոճակը հարմարեցնել ձեր ցանկալի տեքստին, ինչպես ցույց է տրված վերևում նկարում:
Քայլ 7: Վայելեք ձեր տրամադրության լամպը:
Հուսով եմ, որ ձեզ դուր կգան այս հրահանգները: Ինձ համար դա շատ դժվար նախագիծ էր, բայց ես կարողացա այն ամբողջությամբ ավարտել որպես 14 տարեկան տղա: Տվեք ինձ հետադարձ կապ ապագա բարելավումների համար:
Շնորհակալություն ընթերցման համար և շնորհավոր Սուրբ Christmasնունդ:
Խորհուրդ ենք տալիս:
DIY -- Ինչպես պատրաստել սարդ ռոբոտ, որը կարելի է կառավարել սմարթֆոնի միջոցով Arduino Uno- ի միջոցով. 6 քայլ
DIY || Ինչպես պատրաստել սարդ ռոբոտ, որը կարելի է կառավարել սմարթֆոնի միջոցով Arduino Uno- ի միջոցով. Spider ռոբոտ պատրաստելիս կարելի է շատ բան սովորել ռոբոտաշինության մասին: Ինչպես և ռոբոտներ պատրաստելն ինչպես ժամանցային է, այնպես էլ դժվար: Այս տեսանյութում մենք ձեզ ցույց կտանք, թե ինչպես պատրաստել Spider ռոբոտ, որը կարող ենք գործել մեր սմարթֆոնի միջոցով (Անդրոյ
Arduino մեքենայով կառավարվող Bluetooth հավելվածի միջոցով. 4 քայլ (նկարներով)
Arduino Car Controlled Bluetooth App- ի միջոցով. Մենք բոլորս գիտենք, որ Arduino- ն հիանալի նախատիպային հարթակ է, հիմնականում այն պատճառով, որ այն օգտագործում է ծրագրավորման բարեկամական լեզու, և կան բազմաթիվ լրացուցիչ անհավանական բաղադրիչներ, որոնք մեզ հիանալի փորձ են ապահովում: Մենք կարող ենք Arduino- ն ինտեգրվել տարբեր
Հեշտ $ 5 խելացի լամպ սմարթֆոնի վեբ ինտերֆեյսով `4 քայլ
Հեշտ $ 5 խելացի լամպ սմարթֆոնի վեբ ինտերֆեյսով. Բարև: Իմ անունը Ռաֆայել է: Սա իմ առաջին հրահանգն է: Այս լամպի ստեղծման իմ հիմնական շարժառիթը շարժունակությունից անապահով մարդկանց կյանքին օգնելն է: Երբևէ մենք չենք ունենա անջատիչներ պատերին կամ դժվարամատչելի վարդակներ, այլ ավելի շուտ ՝ մեր սմարթֆոնները վերահսկելու համար
Կառավարեք Arduino- ն սմարթֆոնի միջոցով USB- ի միջոցով Blynk հավելվածով. 7 քայլ (նկարներով)
Կառավարեք Arduino- ն սմարթֆոնի միջոցով USB- ի միջոցով Blynk հավելվածով. Այս ձեռնարկում մենք սովորելու ենք, թե ինչպես օգտագործել Blynk ծրագիրը և Arduino- ն ՝ լամպը կառավարելու համար, համադրությունը լինելու է USB սերիական նավահանգստի միջոցով: Այս հրահանգի նպատակն է ցույց տալ ամենապարզ լուծումը ՝ հեռակառավարելով ձեր Arduino- ն կամ գ
Bluetooth- ով կառավարվող ռոբոտ -մեքենա Arduino- ի միջոցով. 8 քայլ (նկարներով)
Bluetooth- ով կառավարվող ռոբոտ -մեքենա Arduino- ի միջոցով. Այս ուսանելի ծրագրում ես ձեզ կառաջնորդեմ ձեր Android բջջային հեռախոսից Bluetooth- ը կառավարող ռոբոտ մեքենա պատրաստելու հարցում: Ոչ միայն դա, այլևս ռոբոտ -մեքենան ունի հատուկ հնարավորություն ՝ խուսափելու խոչընդոտներից, որոնց հանդիպում է մեքենան առաջ շարժելիս: Ռոբո