Բովանդակություն:

Հսկա LED - հետևում է Ադամ Սևիջին. 13 քայլ (նկարներով)
Հսկա LED - հետևում է Ադամ Սևիջին. 13 քայլ (նկարներով)

Video: Հսկա LED - հետևում է Ադամ Սևիջին. 13 քայլ (նկարներով)

Video: Հսկա LED - հետևում է Ադամ Սևիջին. 13 քայլ (նկարներով)
Video: ՀՈՎՍԵՓԸ ԵՎ ՓԱՐԱՎՈՆԻ ԵՐԱԶԸ - Եթերաշրջան 2, դրվագ 2 - Ամբողջական դրվագ (Պաշտոնական HD տարբերակ) 2024, Հուլիսի
Anonim
Հսկա լուսադիոդ - հետևում է Ադամ Սևիջին
Հսկա լուսադիոդ - հետևում է Ադամ Սևիջին
Հսկա լուսադիոդ - հետևում է Ադամ Սևիջին
Հսկա լուսադիոդ - հետևում է Ադամ Սևիջին
Հսկա լուսադիոդ - հետևում է Ադամ Սևիջին
Հսկա լուսադիոդ - հետևում է Ադամ Սևիջին

Այստեղ դուք կգտնեք Հսկա լուսադիոդի վերարտադրություն, որը վերազինված է լինելու որպես Twitter, YouTube և Twitch ազդանշանային լամպի դեր: Ինձ համար հիմնական նպատակն է ահազանգ տալ, երբ կան թվիթեր, տեսանյութեր կամ twitch streams Ադամ Սևիջի և փորձարկված թիմի կողմից, և ազնիվ լինելու համար ՝ մի քանի այլ մարդկանց, որոնց ես հետևում եմ, ինչպիսիք են Ռոբերտ Քոուանը, Մարտի մեխանիկը և այլն:

Ակնհայտ է, որ ես կարող եմ օգտագործել twitter, twitch և այլն ՝ իմ հեռախոսի կամ նոութբուքի վրա, բայց այնքան շատ ահազանգեր կան այդքան ծառայություններից և ծանուցումներից, որ ես դրանք հիմնականում անջատում եմ, գումարած, որ երեկոյան ժամը 22 -ից հետո հեռախոսը անցնում է լուռ ռեժիմի: Webhooks- ը, որը ես ունեմ, նույնպես կազմաձևված է ՝ աշխատանքի հետ կապված Biq Query- ի որոշ աղյուսակներից թարմացումներ ստանալու համար, որպեսզի ինձ տեղյակ պահի, թե արդյոք դրանք արդիացվել են OK ՝ բավարար քանակությամբ գրառումներով ամեն օր:

Adafruit- ն ունի Adafruit IO ծառայություն, որը ես ուզում էի փորձել, և ես ամբողջ տարի նկատի ունեի փորձել և նորից հաղթահարել ESP8266- ը Wemos D1 Mini 3. թողարկման վերաբերյալ լավ խոսքեր լսելուց հետո: Ամեն ինչ սկսեց հավաքվել, երբ գտա Դիզայն ՝ տիեզերքում լուսադիոդի համար Astro73- ի կողմից: Ես սկսեցի դրանից և մի փոքր վերամշակեցի այն մասշտաբի համար, ինչպես նաև բազայի մեջ սեղմիչ կոճակ և որոշ այլ կոսմետիկ փոփոխություններ ավելացնելու համար: Ռեմիքսը կարող եք գտնել այստեղ ՝

Բացի այդ, այն կարող է ձայնով կառավարվել Alexa- ի միջոցով, ինչպես նաև IFTTT alexa ձգան բառի ի հայտ գալով:

Քայլ 1: Բաղադրությունը

Եթե ցանկանում եք դրանցից մեկը դարձնել, մասերի ցանկը բավականին փոքր է և նույնպես համապատասխանաբար էժան: Եթե դուք դեմ չեք սպասելուն, ապա կարող եք հիմնական մասերը արտասահմանից ստանալ, ինչպես նաև գինը է՛լ ավելի նվազեցնելով: Այնուամենայնիվ, հիմնական բաղադրիչը Giant LED պատյանն ու հիմքն են: Եթե ունեք 3D տպիչ, ապա ամեն ինչ պատրաստ է, եթե ոչ, կան մի քանի առցանց տպիչ ընկերություններ, որոնք տպելու են մասերը: Կան ընդամենը 3, այնպես որ դրանք նույնպես պետք է լինեն բավականին էժան:

1. Wemos D1 Mini R3

2. Neopixel 8 LED

3. Տպագրված հիմք և ոտքեր սև PETG- ով

4. Տպագրված ոսպնյակներ և լուսատու ՝ թափանցիկ PLA- ում

5. Սեղմեք կոճակի անջատիչ 12 մմ քառակուսի x1

6. Կլոր սեղմիչ կոճակի գլխարկ x1

7. USB կապ և ադապտեր էներգիայի համար

8. M3x20 կոճակի գլուխ

9. M3 ընկույզ

10. M2x8 մմ պտուտակ x2

11. M2 Ընկույզ x2

12. Սև, կարմիր և դեղին մետաղալարեր

13. 300-500 Օմ դիմադրություն

14. pieceերմացկման փոքր կտոր

Դուք կարող եք օգտագործել այլ ESP սարքեր կամ նույնիսկ Huzzah, բայց պատյանը նախատեսված էր մինի համար, որն ունի ամրացվող անցքեր և խուսափում է այն կպցնելուց:

Քայլ 2: Գործիքներ

Սա ստեղծելու և կառուցելու համար ձեզ հարկավոր է հետևյալը

1. 3D տպիչ

2. 1.5 մմ և 2 մմ Ալեն բանալին

3. oldոդման երկաթ և զոդ

4. Հաղորդալարեր

5. Տափակաբերան աքցան

6. Հումորի զգացում

7. Սկալպել կտրելու համար

Քայլ 3: Կոդի պահանջներ

Այսպիսով, նախքան կառուցվածքի մեջ մտնելը ես պատրաստվում եմ նախանշել որոշ պահանջներ, որոնք ես ցանկանում էի ներառել դրա մեջ: Դրանցից շատերը ես մտքում ունեի սկսելուց առաջ, և ես ուրվագծեցի մի քանի հոսք `պարզելու, թե ինչ եմ պատրաստվում փորձել: Շարունակելով, չնայած ես որոշ խնդիրներ հայտնաբերեցի ծառայությունների հետ, որոնց ես ուզում էի անդրադառնալ:

Պահանջներ:

Ես ուզում էի, որ LED- ն ինձ ցույց տա, երբ տեղադրվի նոր թվիթ կամ տեսանյութ, և պարզվի, երբ Twitch- ի հատուկ ալիք է բացվում: Ես նաև ցանկանում էի, որ ահազանգը շարունակվի մինչև չեղյալ հայտարարեմ այն, որպեսզի եթե որոշ ժամանակ բացակայեմ, իմանամ, թե ինչ է տեղի ունեցել, երբ ես բացակայել էի: Ես նաև ցանկանում էի, որ այն կարգավորելի լինի Wi-Fi- ի հասանելիության համար ՝ առանց ծրագրակազմը նույնպես փոփոխելու անհրաժեշտության: Մի վերջին բան, որը նույնպես հայտնվեց, բացի իրադարձություններին ուղիղ եթերից արձագանքելուց, ինձ պետք էր, որ ամեն 15 րոպեն մեկ ստուգեի այն սնվող տվյալների կարգավիճակը

Այսպիսով, հիմունքների առկայության դեպքում հաջորդը պետք է մշակվեր, թե ինչպես է յուրաքանչյուր մաս կատարվելու: Ստորև կարող եք տեսնել իմ գաղափարները, թե որ մասի հետ կապված որ տեսակի ծրագրակազմը կամ պլատֆորմը:

1. Adafruit IO, սա օգտագործվում է ահազանգերի հոսքերը կարգավորելու համար, այստեղ կարող եք հաշիվ ստանալ

Ես սա օգտագործելու եմ որպես հաղորդագրությունների հերթագրման ծառայություն, որտեղ ես այն ուղարկելու եմ հաղորդագրություններ IFTTT- ից, այնուհետև Հսկա LED- ն ստանում է այդ հաղորդագրությունները, որպեսզի կարողանա գործել դրանց վրա:

2. IFTTT, https://ifttt.com/ և սա օգտագործվում է ընտրված Twitter, YouTube և Twitch ալիքները սկանավորելու համար, այնուհետև իրադարձությունն ուղարկում է Adafruit IO

3. ESP8266 ծածկագիրը `այս հոսքերը կարդալու համար, և այն այրվում է ESP8266- ում` օգտագործելով ստանդարտ Arduino IDE- ն (v1.8.8)

4. Arduino կոդ, բեռնված ESP8266- ում ՝ Adafruit IO հոսքերը կարդալու և Neopixel- ը լուսավորելու համար:

5. Arduino կոդ ՝ ահազանգը մաքրելու համար կոճակ կարդալու համար

6. Կարողանաք կարգաբերել WiFi ադապտերը ՝ առանց ESP- ի հետ միացման, և դրա համար ես օգտագործել եմ Tzapu- ի WiFi Manager գրադարանը ՝ https://github.com/tzapu/WiFiManager, չնայած կարգավորումների ընտրանքներին անհրաժեշտ էր մի փոքր փոփոխություն Adafruit IO գրադարաններ:

Քայլ 4: Adafruit IO- ի ստեղծում

Adafruit IO- ի ստեղծում
Adafruit IO- ի ստեղծում

Սա առաջին քայլն է, քանի որ ձեզ հարկավոր կլինեն այստեղ ստեղծվող մուտքի բանալիները, ինչպես նաև պետք է ստեղծել այն հոսքերը, որոնց IFTTT- ը կուղարկի իրադարձություններ: Դուք կարող եք ստեղծել ինչպես այս, այնպես էլ IFTTT հաշիվը և գրեթե ամեն ինչ կարգավորել և աշխատել նախքան այս նախագծի Arduino մաս անցնելը:

Ադաֆրուտի օրինակները պատճենելու փոխարեն, այստեղ կարող եք գտնել հիմունքները ՝ https://learn.adafruit.com/gmailbox/adafruit-io-se…, որը կստանա կարգավորում:

Հետո GIANT LED- ի համար անհրաժեշտ կլինի նաև կանխադրված ալիքներին ավելացնել հետևյալ հոսքերը

1. գույն - սա մեզ թույլ է տալիս գույնը փոխել հեռակա կարգով ՝ Alexa- ի նման մի բանով

2. ցնցում

3. twitterfan

4. youtubefan

Հետո պետք է նաև ստեղծել նոր խումբ, եթե դեռ մուտքագրած չեք, ապա այս խմբում ստեղծեք նաև թվային կոչվող հոսք: Սա թույլ կտա նաև տեսնել կոճակը սեղմելու էֆեկտը, եթե մենք ցանկանայինք ընդլայնել այս սարքի օգտագործումը այլ նպատակների համար:

Եթե դուք նույնպես ցանկանում եք այս պահին խաղալ խաղատախտակի հետ, որպեսզի կարողանաք դրան ավելացնել դրանք ՝ տեղեկատվության և սխալներ գտնելու նպատակով:

Քայլ 5: IFTTT- ի կարգավորում

IFTTT- ի կարգավորում
IFTTT- ի կարգավորում
IFTTT- ի կարգավորում
IFTTT- ի կարգավորում

Կարող եք հետևել նաև Adafruit ուղեցույցին այստեղ ՝ https://learn.adafruit.com/gmailbox/ifttt-setup: Այնուհետև կարող եք ընտրել Twitter- ի, youtube- ի և twitch- ի գործողությունները `ձեր դիտումների ցուցակները կարգավորելու համար, այնուհետև դրանք ուղարկել համապատասխան լրահոսին: Ես կցել եմ մի պարզ տեսանյութ, որպեսզի տեսնեք, թե որքան արագ կարող է լինել:

Բացի այդ, եթե ցանկանում եք ձայնով վերահսկել ձեր LED- ի գույնը Alexa- ի միջոցով, այժմ կա Amazon Alexa հավելված: Սրանցից մեկը սահմանելու համար ընտրեք ծրագիրը և ընտրեք կապույտ բառը, այնուհետև միացրեք այն ձեր ստեղծած Adafruit հոսքին, որը կոչվում է գույն և մուտքագրեք 0000ff որպես տվյալ ալիք ուղարկելու տվյալներ: Կարող եք նաև լրացուցիչ հրամաններ փոխանցել այս կերպ GIANT LED- ին, ինչպիսիք են `վերականգնելը կամ վերագործարկումը, եթե ցանկանում եք:

Երբ դուք ստեղծում եք IFTTT ձգանը, դուք պետք է ընտրեք ուղարկված տվյալները, որոնք IFTTT- ում կոչվում են «Բաղադրիչներ»: Առաջին կտորը, որն անհրաժեշտ է մեզ, «Օգտվողի անունն» է, ապա բացատը, այնուհետև «Ստեղծվածը»

Մենք ընտրում ենք երկու տարրերն այնպես, որ երբ տվյալները հասնեն ESP8266, մենք կարողանանք պարզել, արդյոք դա նոր թվիթ է, և որ այն տարբերվում է նույն օգտվողների նախորդ թվիթերից: Դուք կարող եք տեսնել, թե ինչ պետք է դա դուր գա կցված պատկերից:

Քայլ 6. ESP8266 տախտակների տեղադրում Arduino IDE- ում

Սա այն է, որտեղ ամեն ինչ մի փոքր ավելի բարդ է և կարգավորման համար կարող է մի փոքր ավելի ժամանակ պահանջվել: Բացի ESP8266- ից, ձեզ անհրաժեշտ են նաև Adafruit IO գրադարանները, և նրանց համար կարող եք հետևել այս ուղեցույցին:

learn.adafruit.com/gmailbox/arduino-setup

Կա պարզ բացատրություն, թե ինչպես ավելացնել ESP8266 տախտակները նաև այստեղ

Մի մոռացեք համոզվել, որ ձեր Arduino IDE- ն նույնպես վերջին տարբերակն է, և ես դա գրելիս 1.8.8 էի օգտագործում:

Մեկ այլ գրադարան, որը մենք օգտագործում ենք, SimpleTimer- ն է, քանի որ դա մեզ թույլ կտա ստեղծել ֆոնային ժամաչափ, որպեսզի պարբերաբար ստուգենք հոսքերը, դրա վերաբերյալ ցուցումները կարելի է գտնել օգտագործման պարզեցված հասցեով ՝ https://playground.arduino.cc/Code/SimpleTimer# Բեռնել

Քայլ 7: Տեղադրեք WiFi մենեջերի գրադարանը

Մեզ հնարավորություն տալու ստանալ WiFi կարգաբերման հեռավոր կազմաձևում, մենք պատրաստվում ենք օգտագործել Tzapu Wifi Manger- ը, դրա մասին մանրամասները և ինչպես տեղադրել գրադարանները կարող եք գտնել այստեղ, github.com/tzapu/WiFiManager

Սա արտաքին գրադարանների բավականին պարզ տեղադրում է, և տարբերակը արդեն գտնվում է ձեր Arduino IDE գործիքների բաժնի Կառավարման գրադարանում:

Քայլ 8. ESP8266 ծածկագիրը `վրիպազերծման տպագրությամբ

// Այս կոդը պարունակում է տպագիր հայտարարություններ, որպեսզի կարողանաք վերահսկել դրա աշխատանքը Սերիական մոնիտորի միջոցով

// Adafruit IO RGB LED ելքային օրինակի հիման վրա // Adafruit- ը ժամանակ և միջոցներ է ներդնում `ապահովելով այս բաց կոդ: // Խնդրում ենք աջակցել Adafruit- ին և բաց կոդով սարքավորումներին ՝ ձեռք բերելով // ապրանքներ Adafruit- ից: // // Գրված է Todd Treece- ի կողմից Adafruit Industries- ի համար // Հեղինակային իրավունք (գ) 2016-2017 Adafruit Industries // Լիցենզավորված MIT լիցենզիայի ներքո: // // Բոլոր վերը նշված տեքստերը պետք է ներառվեն ցանկացած վերաբաշխման մեջ: // օգտագործում է պարզամիտ https://playground.arduino.cc/Code/SimpleTimer#Do… // https://playground.arduino.cc/Code/SimpleTimer#Do… // Այաքս onesոնսի մնացած կոդը https:// playground.arduino.cc/Code/SimpleTimer#Do // https://playground.arduino.cc/Code/SimpleTimer#Do… // ******************** ******* Կոնֆիգուրացիա ********************************/ #սահմանել IO_USERNAME «ձեր IO Օգտվողի անունը « #սահմանի IO_KEY« քո IO բանալին »// թողիր դատարկ, քանի որ մենք դրանք կստանանք Wifi Manager- ի միջոցով, կարծես թե լավ է աշխատում այս կերպ #սահմանել WIFI_SSID» « #սահմանել WIFI_PASS» "// մենք դա չենք ներառում որպես AdafruitIO ներառել դրա տարբերակը // #include //https://github.com/esp8266/Arduino // գրադարանի համար անհրաժեշտ #include #include #include "WiFiManager.h" //https://github.com/tzapu/WiFiManager # ներառել SimpleTimer ժմչփ; #ներառել «AdafruitIO_WiFi.h» AdafruitIO_WiFi io (IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS); // *********************** NeoPixel- ի կարգավորումներ ********************** ********* // #ներառել «Adafruit_NeoPixel.h» #սահմանել PIXEL_PIN 5 #սահմանել PIXEL_COUNT 8 ինտ NUM_LEDS = PIXEL_COUNT; #սահմանել PIXEL_TYPE NEO_GRB + NEO_KHZ800 Adafruit_NeoPixel պիքսել = Adafruit_NeoPixel (PIXEL_COUNT, PIXEL_PIN, PIXEL_TYPE); // Հիմնական գույներ և կանխադրված գույն երկար default_color = 865554; երկար RED_color = 2689027; // կարմիր #290803 երկար GREEN_color = 865554; // կանաչ #0d3512 երկար BLUE_color = 856117; // կապույտ #0d1035 երկար PURPLE_color = 2364968; // մանուշակագույն #241628 երկար BRIGHTRED_color = 15990784; // վառ կարմիր #f40000 // ---------------------------------------------- -------------------------------------------------- // ժամանակ գաղափարը վերցված է https://www.safaribooksonline.com/library/view/arduino-cookbook-2nd/9781449321185/ch12.html https://playground.arduino.cc/Code/SimpleTimer#Do… https:// խաղահրապարակ: arduino.cc/Code/SimpleTimer#Do… const long oneSecond = 1000; // վայրկյանը կազմում է հազար միլիվայրկյան const long oneMinute = oneSecond * 60; const long fiveMinutes = oneMinute * 5; const երկար տասնհինգ րոպե = հինգ րոպե * 3; const long oneHour = տասնհինգ րոպե * 4; // Twitter- ի այն օգտվողները, որոնք մեզ ամենաշատն են դուր գալիս, և դրանք կփայլվեն, և մեր ընտրած բոլոր թվիթերը պարզապես կփոխեն գույնը String SuperTweet = {"ajaxjones", "donttrythis", "prodnose", "testcom"}; Լարային SuperTuber = {"փորձարկված", "կովանի", "նահատակ"}; // սահմանում է ահազանգի կարգավիճակը, որպեսզի մենք կարողանանք LED- ները թարթել հիմնական հանգույցի bool- ում WHIZZY_TWEET = false; bool WHIZZY_TUBER = կեղծ; bool WHIZZY_TWITCH = կեղծ; // Պահպանում է վերջին թվիթը և youtube- ը, որպեսզի մենք կարողանանք ծառայությունը կրկնակի ստուգել մեկ -մեկ String lasttweet = ""; Լարային lasttube = ""; Լարային lasttwitch = ""; // թվային փին 5, սա այն կոճակն է, որը մենք օգտագործում ենք ազդանշանային գույները վերակայելու համար #սահմանեք BUTTON_PIN 4 // կոճակի վիճակը, իրականում այն չի օգտագործվում, քանի որ մենք փնտրում ենք անջատիչ bool current = false կոճակը: bool last = false; // ստեղծեք «գույնի» հոսքը, որպեսզի մենք կարողանանք գույները փորձարկել և ուղարկել ըստ պահանջի կամ օգտագործել Alexa trigger AdafruitIO_Feed *color = io.feed («գույն»); // ստեղծեք «twitterfan» հոսքը - Blue AdafruitIO_Feed *twitter = io.feed («twitterfan»); // ստեղծեք «youtubefan» հոսքը - Red AdafruitIO_Feed *youtube = io.feed («youtubefan»); // ստեղծեք «twitch» հոսքը - Purple AdafruitIO_Feed *twitch = io.feed («twitch»); // ստեղծել «թվային» թարմացվող բովանդակություն AdafruitIO_Feed *digital = io.feed («input.digital»); // ---------------------------------------------------- --------------------------------------------- void setup () {// set the կոճակի քորոցը ՝ որպես մուտքագրում, մենք օգտագործում ենք INPUT_PULLUP, քանի որ պարտադիր չէ օգտագործել արտաքին դիմադրիչների pinMode (BUTTON_PIN, INPUT_PULLUP); // Կցեք անջատում ISR վեկտորին ՝ կցել կոճակը ՝ attachInterrupt (digitalPinToInterrupt (BUTTON_PIN), handleInterrupt, FALLING); // Սկսեք սերիալը և սպասեք սերիական մոնիտորի բացմանը, ապա միացեք io.adafruit.com Serial.begin (115200); իսկ (! Սերիա); // neopixel begin pixels.begin (); // Ներքին վիճակը կարմիր դարձրեք, որպեսզի իմանանք, որ անցանց ենք և աշխատում ենք setAll (0xf4, 0x00, 0x00); // կարմիր // փորձարկման համար դա ցույց կտա WiFi WiFi- ի կարգավիճակը: printDiag (Սերիա); WiFiManager wifiManager; // սահմանել հետադարձ կապ, որը զանգվում է նախորդ WiFi- ին միանալիս ձախողվում է և մտնում Մուտքի կետի ռեժիմ wifiManager.setAPCallback (configModeCallback); // վերականգնել պահված կարգավորումները, չմեկնաբանել այս հաջորդ տողը ՝ WiFi մենեջերի փորձարկումը ստիպելու համար, որպեսզի կարողանաք միանալ // օգտագործեք ձեր հեռախոսը կամ պլանշետը ՝ փնտրելու Հսկա LED ցանցը, որը կհայտնվի //wifiManager.resetSettings (); // սահմանում է ժամկետ, մինչև կազմաձևման պորտալն անջատվի // օգտակար է, որ ամեն ինչ նորից փորձի կամ քնի // վայրկյանների ընթացքում wifiManager.setTimeout (240); եթե (! wifiManager.autoConnect ("GIANT LED")) {Serial.println (F («չհաջողվեց միանալ և սեղմել ժամկետը»)); // վերակայել և նորից փորձել հետաձգել (3000); ESP.reset (); ուշացում (1000); } // թեստավորման համար մենք կարող ենք տեսնել, թե արդյոք մենք ունենք համապատասխան հավատարմագրեր //Serial.println (WiFi. SSID ()) միացնելու համար; //Serial.println(WiFi.psk())//WiFi.begin(WIFI_SSID, WIFI_PASS); // while (WiFi.status ()! = WL_CONNECTED) {// ուշացում (500); //Serial.print ("."); //} Serial.println (); Serial.println (F («WiFi- ն միացված է»)); Serial.println (F ("IP հասցե` ")); Serial.println (WiFi.localIP ()); // այժմ մենք միանում ենք IO ծառայությանը Serial.print (F ("Connecting to Adafruit IO")); io.connect (); // ստեղծել «գույնի» հոսքի համար հաղորդագրությունների մշակող: գույն-> onMessage (handleMessage); // ստեղծեք հաղորդագրությունների մշակող «twitterfan» հոսքի համար: twitter-> onMessage (twitterMessage); // ստեղծեք հաղորդագրությունների մշակող «youtubefan» հոսքի համար: youtube-> onMessage (youtubeMessage); // ստեղծեք հաղորդագրությունների մշակող «twitch» հոսքի համար: twitch-> onMessage (twitchMessage); // սպասեք միացման միաժամանակ (io.status () <AIO_CONNECTED) {Serial.print (F (".")); ուշացում (500); } // մենք կապված ենք Serial.println (); Serial.println (io.statusText ()); //Serial.println (չափը ((SuperTweet)); //Serial.println (մեծության (SuperTweet [0]))); // Տպեք Twitter- ի այն հաշիվների ցուցակը, որին մենք սպասում ենք (բայթ idx = 0; idx <sizeof (SuperTweet) / sizeof (SuperTweet [0]); idx ++) {Serial.print (F ("SuperTweet [")); Serial.print (idx); Serial.print ("] = '"); Serial.print (SuperTweet [idx]); Serial.println ("'"); } // Տպեք այն YouTube հաշիվների ցուցակը, որին մենք սպասում ենք (բայթ idx = 0; idx get (); // խնդրեք հոսքերի առկա վիճակները, այնպես որ դուք պետք է սեղմեք վերակայումը ՝ YouTube- ի գործարկման ժամանակ -> ստանալ (); twitter-> ստանալ (); twitch-> ստանալ (); for (int i = 0; i get (); twitter-> get (); twitch-> get (); Serial.print («որոշ թվիթներ ստանալը»); Serial.print ("uptime (s):"); Serial.println (millis () / 1000);} // ---------------- ------------------------------------------------------ ----------------------- void loop () {// io.run (); պահանջվում է բոլոր ուրվագծերի համար: io.run (); ժամանակաչափ: run (); if (WHIZZY_TWEET == true) {RunningLights (0x0d, 0x10, 0x35, 250);} if (WHIZZY_TUBER == true) {RunningLights (0x29, 0x08, 0x03, 250);} if (WHIZZY_TWITCH ==) {RunningLights (0x24, 0x16, 0x28, 250);}} // --------------------------------- ------------------------------------------------------ ------ // սահմանեք միջամտությունը `կոճակը սեղմելիս ազդանշանը մաքրելու համար և ստուգեք ինտերնետի անվավեր handleInterrupt () {WHIZZY_TWEET = կեղծ; WHIZZY_TUBER = կեղծ; WHIZZY_TWITCH = կեղծ; ընթացիկ = ճշմարիտ; // ուղարկել ընթացիկ վիճակը adafruit io- ի «input.digital» աղբյուրին, որպեսզի մենք տեսնենք այն թվային-> save (current); for (int i = 0; i ")); Serial.print (current); Serial.print (F (" and default color ")); Serial.println (default_color); current = false; digital-> save (current); while (WiFi.status ()! = WL_CONNECTED) {հետաձգում (500); setAll (0xeb, 0xfb, 0x03); // դեղին ebfb03}} // -------------- ------------------------------------------------------ -------------------- {String tweeter = (data-> toString ()); tweeter.toLowerCase (); if ((lasttweet! = Tweeter) && (tweeter! = "")) {Lasttweet = tweeter; setAll (0x0d, 0x10, 0x35); // Սահմանել tweet կապույտ գույնը Serial.print (F ("Tweet:")); Serial.print (tweeter); // ստուգել նախընտրած թվիթերի համար (byte idx = 0; idx = 0) {// Եկեք դրանք դարձնենք tweets whizzy #0d1035 WHIZZY_TWEET = true; Serial.print ("by"); Serial.print (SuperTweet [idx]);}} Serial.println ("");}} // --------- ------------------------------------------------------ -------------------------------- - // սա կոչվում է ամեն անգամ, երբ «youtube» հաղորդագրություն է գալիս- LED- ը սահմանեք RED void youtubeMessage (AdafruitIO_Data *data) {String tuber = (data-> toString ()); tuber.toLowerCase (); if ((lasttube! = tuber) && (tuber! = "")) {lasttube = tuber; setAll (0x29, 0x08,0x03); // Սահմանել youtube- ի կարմիր գույնը 290803 Serial.print (F ("Youtube:")); Serial.println (պալար); // ստուգեք նախընտրած Youtuber- ի համար (բայթ idx = 0; idx = 0) {// Թույլ տվեք նրանց տեսանյութերը դարձնել whizzy #0d1035 WHIZZY_TUBER = true; Serial.print («ըստ»); Serial.print (SuperTuber [idx]); }} Serial.println (""); }} // ---------------------------------------------- ---------------------------------------------- // սա կոչվում է, երբ ա «twitch» հաղորդագրությունը գալիս է. LED- ն սահմանել PURPLE void twitchMessage (AdafruitIO_Data *data) {String twitch = (data-> toString ()); twitch.toLowerCase (); եթե ((lasttwitch! = twitch) && (twitch! = "")) {lasttwitch = twitch; setAll (0x24, 0x16, 0x28); // Սահմանել twitch մանուշակագույն գույնը #241628 Serial.print (F ("Twitch:")); Serial.println (ցնցում); // Ոչ մի նախընտրելի Twitcher- ի համար մենք հետևում ենք միայն մեկին WHIZZY_TUBER = true; Serial.println (""); }} // ---------------------------------------------- ---------------------------------------------- // այս գործառույթը կոչվում է ամեն անգամ ստացվում է «գունավոր» հաղորդագրություն // որը գործարկման ժամանակ կդնի կանխադրված գույնը ՝ հիմնվելով վերջին գույնի արժեքի անվավեր բռնակի վրա: ")); Serial.println (տվյալները-> արժեքը ()); երկար գույն = տվյալներ>> toNeoPixel (); // լռելյայն_գույն = գույն; Serial.print (F («Ստացվել է HEX երկարությամբ».)); Serial.println (գույն); (int i = 0; i <PIXEL_COUNT; ++ i) {pixels.setPixelColor (i, գույն); } showStrip (); } // --------------------------------------------------- ---------------------------------------------- անվավեր RunningLights (բայթ կարմիր, բայթ կանաչ, բայտ կապույտ, int WaveDelay) {int Պաշտոն = 0; համար (int j = 0; j <NUM_LEDS; j ++) {դիրք ++; // = 0; // պաշտոն + տոկոսադրույք; (int i = 0; i <NUM_LEDS; i ++) {setPixel (i, ((sin (i + Position) * 127 + 128) / 255) * կարմիր, ((sin (i + Position) * 127 + 128) / 255)*կանաչ, ((մեղք (i + Դիրք)*127 + 128) / 255)*կապույտ); } showStrip (); ուշացում (WaveDelay); }} // ---------------------------------------------- ---------------------------------------------- // Neopixel routines անվավեր setAll (բայթ կարմիր, բայթ կանաչ, բայտ կապույտ) {for (int i = 0; i getConfigPortalSSID ()); // մտավ կազմաձևման ռեժիմ, Neo Pixel- ը սահմանեց մանուշակագույն #241628 = 2364968 // setAll (0x24, 0x16, 0x28); setAll (0xeb, 0xfb, 0x03); // դեղին ebfb03}

Քայլ 9: Ամեն ինչ միասին կպցրեք

Վաճառելով այդ ամենը միասին
Վաճառելով այդ ամենը միասին
Վաճառելով այդ ամենը միասին
Վաճառելով այդ ամենը միասին
Վաճառելով այդ ամենը միասին
Վաճառելով այդ ամենը միասին

Այս դիզայնի մեջ ամեն ինչ զոդված է միասին և պետք է լինի բավականին հեշտ կառավարելի: Ես օգտագործել եմ 3 տարբեր գույնի լարեր ՝ ամեն ինչ հեշտ դարձնելու համար, և առաջինը ՝ neopixel- ի մետաղալարերը WEMOS- ին չափելն է: Ես դրանք հյուսեցի և դրա վրա դրեցի մի փոքր կտոր ջերմամեկուսիչ, այնուհետև դրանք զոդեցի, ինչպես ցույց է տրված, այնպես որ այն հարթ կդնի ոսպնյակի մեջ:

Կոճակը հաջորդն էր և ամուր կտեղավորվի հիմքի մեջ: Կոճակի մի կողմը գնում է դեպի Gnd և այն ոլորվում է neopixel- ի Ground լարի հետ միասին: Այնուհետև ես դրանք պահածոյացրեցի և դրանք մեկ -մեկ կպցրեցի WEMOS- ի գրունտային քորոցին:

Neopixel- ի էներգիայի հոսանքը գնում է 5v PIn: Նեոպիքսելի ազդանշանային լարը կամ Di (տվյալները ներսում) զոդվում են Wemos փինին որպես D1: Կան որոշ կայքեր, որոնք առաջարկում են սերիայով տեղադրել 300-500 Օմ ռեզիստոր, բայց մինչ այժմ ես խնդիրներ չեմ ունեցել, առայժմ դա ուղղակի կապ է:

Լավ պրակտիկա ապահովելու և Adafruit- ի նման կայքերի խորհրդով ես 330R ռեզիստոր եմ դրել շարքով ՝ Di գծով մինչև նեոպիքսել: Դա այն է, որ օղակի առաջին LED- ը չթողնի կախարդական պիքսիաները և պարզապես արվի մետաղալարերը կտրելով և ռեզիստորը ներս մտցնելով: heatերմահեղձման փոքր կտորը կդադարեցնի ցանկացած կամակոր շորտեր: Դուք կարող եք բավականին կարճ կտրել դիմադրիչը և պարզապես մի օղակ դնել յուրաքանչյուր ծայրում և նույնն անել մետաղալարով:

Կոճակի մյուս մետաղալարն ուղղակիորեն անցնում է D2 կապին: Քաշելու դիմադրության կարիք չկա, քանի որ այն մշակվում է ծրագրաշարի ներսում ՝ PIN- ի հրամանը դնելով այդ քորոցին:

Հիմնականում դա այն ամենն է, ինչ կա դրանում:

Քայլ 10: 3D տպում

Այստեղ կցված են STL ֆայլերը, որոնք մենք օգտագործում ենք Giant LED- ի համար: Ֆայլերը astro73- ի ռեմիքս/վերամշակում են, և դուք կարող եք գրավել բոլոր ֆայլերը նաև https://www.thingiverse.com/thing:3290837 կայքից:

Ոտքերի և հիմքի համար ես օգտագործել եմ Sunlu PETG+ թել, որն իրոք լավ է աշխատում Prusa i3- ի վրա և օգտագործել եմ կամ 10 կամ 20% գիրոիդ լցոն:

LED- ի համար ես օգտագործում եմ Sunlu թափանցիկ PLA և օգտագործում եմ մոտ 10% լցոնում համակենտրոն վերին և ստորին շերտերով:

Յուրաքանչյուրի հետ ես օգտագործում եմ միայն Prusa PET և Prusa PLA բաժնետոմսերը Slic3r- ում, և դրանք բոլորը լավ են մշակվել: Ես մի քիչ լար եմ ստանում ոտքերիս վրա, բայց ես նրանց վրա փչակ եմ թափում, և լարն անհետանում է:)

Քայլ 11: Հսկա LED հավաքում

Հսկա LED հավաքածու
Հսկա LED հավաքածու
Հսկա LED հավաքածու
Հսկա LED հավաքածու
Հսկա LED հավաքածու
Հսկա LED հավաքածու

Բոլոր կտորները իսկապես հեշտությամբ համակցված են, դուք պետք է M3 ընկույզը սեղմեք հիմքի մեջ, որպեսզի պտուտակն իրը միասին պահի: Անհրաժեշտ է նաև NeoPixel- ը WEMOS- ին միացնել ոտքերի միջոցով: Ես մտածում էի, թե ինչպես միակցիչներ տեղադրել, բայց որոշեցի, որ այն ապագայում չի քանդվի:

Ոսպնյակը պարզապես հրում է ոտքերի վրա, և նրանք իրենց հերթին ամրացվում են հիմքին ՝ մեկ M3x20 մմ պտուտակով: Հնարավոր է, որ անհրաժեշտ լինի դանակ վազել կոճակի անցքի ներսում, որպեսզի այն գեղեցիկ և ազատ տեղաշարժվի: Wemos- ն ամրացված է ներքևից ներքև պտուտակված 2 M2x8 վարդակից:

Ավարտելու համար անհրաժեշտության դեպքում կարող եք սոսնձել զգեստի մի կտոր հիմքի վրա `ցանկացած սայթաքում դադարեցնելու համար:

Քայլ 12: Կարգավորման և շահագործման հրահանգներ

Image
Image
Կարգավորման և շահագործման հրահանգներ
Կարգավորման և շահագործման հրահանգներ
Կարգավորման և շահագործման հրահանգներ
Կարգավորման և շահագործման հրահանգներ

Երբ ամեն ինչ պատրաստ է և ներբեռնված ծրագրակազմը մի փոքր ուժ տվեք USB- ին, և GIANT LED- ը պետք է հայտնվի, և LED- ը կգնա ԿԱՐՄԻՐ, այնուհետև կփոխվի դեղին: Սա ցույց է տալիս, որ այն անցանց է և սպասում է wifi կարգավորմանը: Օգտագործելով հեռախոս կամ նմանատիպ որոնում GIANT LED wifi ցանցի համար և միացեք, և դուք կստանաք WiFi մենեջերի էկրան: Այն սկանավորելու է ձեր տեղական տարածքը, և դուք պարզապես մուտքագրում եք ձեր wifi տվյալները, ESP- ը կվերագործարկվի, և դուք այժմ կլինեք առցանց ՝ կանաչ լույսով: Այս պահին այն նաև կկապվի IO- ի հետ, և ահազանգի լույսերը կբարձրանան, քանի որ դեռ չի տեսել որևէ նախորդ հաղորդագրություն: Մի քանի անգամ սեղմեք կոճակը, և GIANT LED- ն այժմ պատրաստ է թարմացումների գալուն:

Այս պահին կարող եք անցնել Adafruit IO- ի վահանակ և յուրաքանչյուր տվյալի մեջ ավելացնել որոշ տվյալներ և տեսնել, որ լույսերը անցնում են ահազանգի ռեժիմի:

Զվարճանալ !

Քայլ 13: Ի՞նչ կարող է անել հսկա LED- ը

Ինչ այլ բան կարող է անել հսկա LED- ը
Ինչ այլ բան կարող է անել հսկա LED- ը
Ինչ այլ բան կարող է անել հսկա LED- ը
Ինչ այլ բան կարող է անել հսկա LED- ը

Երբ դուք ունեք այսպիսի դիզայնի հիմունքները և IFTTT- ի միջոցով կարող եք այն օգտագործել շատ բաների համար: Gmail- ի մուտքի արկղի մասին ահազանգը շատ հեշտ է, և քանի որ Adafruit- ն աշխատում է նաև Webhooks- ի հետ, այլ ծրագրեր նույնպես կարող են տվյալներ ուղարկել դրան: Այս պահին ստեղծվում է մեկը, որը հետևում է Big Query- ի տվյալների վերբեռնումներին ՝ որպես աշխատանքային ծրագրի մաս:

Նաև կոճակի միջոցով կարող եք այն ազդանշանել այլ GIANT LED- ներին, կարող եք ունենալ մեկ այլ տներում և օգտագործել այն որպես հեռավոր ցուցիչ, որպեսզի մյուս կողմը սեղմի լույսը չեղարկելու կոճակը:

Ահա օգտակար հղում ՝ տվյալների հոսքին ուղարկելու webhook եղանակին: Այս դեպքում այն օգտագործում է IFTTT հավելված, բայց նույնքան հեշտությամբ կարող եք օգտագործել CURL մեթոդը python- ի հետ:

io.adafruit.com/blog/notebook/2018/11/26/f…

Իրականում նույնիսկ հնարավոր է OLED 128x32- ը տեղավորել բազայի մեջ `լուսադիոդային տեքստը որոշ տեքստային բովանդակությամբ լրացնելու համար, և ես այժմ աշխատում եմ դրա վրա և կթարմացնեմ STL- ները և կտրամադրեմ IO- ն դրա օգտագործման կոդը:

Խորհուրդ ենք տալիս: