Sadržaj:

Divovska LED - praćenje Adama Savagea: 13 koraka (sa slikama)
Divovska LED - praćenje Adama Savagea: 13 koraka (sa slikama)

Video: Divovska LED - praćenje Adama Savagea: 13 koraka (sa slikama)

Video: Divovska LED - praćenje Adama Savagea: 13 koraka (sa slikama)
Video: REVAN - THE COMPLETE STORY 2024, Srpanj
Anonim
Divovska LED - praćenje Adama Savagea
Divovska LED - praćenje Adama Savagea
Divovska LED - praćenje Adama Savagea
Divovska LED - praćenje Adama Savagea
Divovska LED - praćenje Adama Savagea
Divovska LED - praćenje Adama Savagea

Ovdje ćete pronaći izvedbu divovske LED diode, koja je ponovno namjenjena da djeluje kao žaruljica upozorenja na Twitteru, YouTubeu i Twitchu. Glavna svrha mi je pružiti upozorenje kada postoje tweetovi, video zapisi ili twitch streamovi Adama Savagea i testiranog tima, a da budem iskren, još nekoliko ljudi koje pratim poput Roberta Cowana, Martyja Mehaničara i drugih.

Očito bih mogao koristiti twitter, twitch itd. Na svom telefonu ili prijenosnom računalu, ali ima toliko upozorenja s toliko usluga i obavijesti da ih u osnovi sve isključujem, a telefon prelazi u nečujni način rada nakon 22 sata, jer će raditi i sa Webhooks Imam i jednu konfiguriranu za primanje ažuriranja iz nekih Biq Query tablica koje su povezane s poslom kako bi me obavijestile jesu li ažurirane u redu s dovoljnim brojem zapisa svaki dan.

Adafruit ima uslugu pod nazivom Adafruit IO koju sam želio isprobati i mislio sam cijelu godinu pokušati ponovno pristupiti ESP8266 nakon što sam čuo neke dobre riječi o izdanju Wemos D1 Mini 3. Sve se počelo slagati kad sam pronašao dizajn LED diode na stvarima by Astro73. Počeo sam s tim i malo ga preradio za mjerenje i također dodao gumb u bazu i neke druge kozmetičke promjene. Remiks možete pronaći ovdje

Osim toga, sada se može upravljati glasom putem Alexa, kao i pojavom pokretačke riječi IFTTT alexa.

Korak 1: Sastojci

Ako želite napraviti jedan od ovih, popis dijelova je prilično mali i također relevativno jeftin. Ako vam ne smeta čekanje, možete nabaviti glavne dijelove iz inozemstva, a i dodatno smanjiti troškove. Glavni sastojak ipak je Giant LED kućište i baza. Ako imate 3D pisač, onda ste spremni, ako ne, postoji nekoliko mrežnih tvrtki koje će ispisivati dijelove. Postoje samo 3 pa bi i to trebalo biti prilično jeftino.

1. Wemos D1 Mini R3

2. LED dioda Neopixel 8

3. Tiskana baza i noge u crnom PETG -u

4. Tiskane leće i držač svjetla u prozirnom PLA

5. Prekidač tipke 12 mm kvadrat x1

6. Okrugli zatvarač s gumbom x1

7. USB kabel i adapter za napajanje

8. Glava gumba M3x20

9. Matica M3

10. Vijak M2x8 mm x2

11. M2 Matica x2

12. Nešto crne, crvene i žute žice

13. Otpornik 300-500 Ohma

14. Mali komad hladnjaka

Možete koristiti druge ESP uređaje, pa čak i Huzzah, ali kućište je dizajnirano za mini koji ima rupe za montažu i izbjegava njegovo lijepljenje.

Korak 2: Alati

Za izradu i izgradnju ovoga trebat će vam sljedeće

1. 3D pisač

2. imbus ključ od 1,5 mm i 2 mm

3. Lemilica i lemljenje

4. Strojevi za rezanje žica

5. kliješta

6. Smisao za humor

7. Skalpel za podrezivanje

Korak 3: Zahtjevi koda

Stoga ću prije nego što uđemo u gradnju iznijeti neke zahtjeve koje sam htio uključiti u ovo. Većinu ovih sam imao na umu prije početka i skicirao sam nekoliko tokova kako bih utvrdio što ću pokušati. Kako se to događalo, otkrila sam neke probleme sa uslugama koje sam htjela riješiti.

Zahtjevi.

Htio sam da mi LED prikazuje kad se objavi novi tweet ili video, a isto tako ispadne kada se pokrene određeni Twitch kanal. Također sam želio da upozorenje nastavi sve dok ga ne otkažem kako bih, ako me neko vrijeme nije bilo, znao što se dogodilo dok sam bio odsutan. Također sam želio da se može konfigurirati za Wi-Fi pristup bez potrebe za ponovnim ažuriranjem softvera. Još jedna posljednja stvar koja se pojavila bila je osim odgovora na događaje uživo, trebala sam to provjeravati svakih 15 minuta status podataka koji su joj uneseni

Dakle, s osnovama na mjestu, sljedeća stvar je bila utvrditi kako će se svaki dio izvesti. U nastavku možete vidjeti moje ideje o tome koji dio bi se bavio nekom vrstom softvera ili platforme.

1. Adafruit IO, koristi se za postavljanje feedova za upozorenja, račun možete dobiti ovdje

Koristit ću ovo kao uslugu čekanja poruka gdje ću joj slati poruke s IFTTT -a, a zatim Giant LED prima te poruke kako bi mogao djelovati na njih.

2. IFTTT, https://ifttt.com/ i koristi se za skeniranje odabranih kanala Twittera, YouTubea i Twitcha, a zatim šalje događaj na IO Adafruit

3. Kôd ESP8266 za čitanje ovih izvora, a on se zapisuje u ESP8266 pomoću standardnog Arduino IDE -a (v1.8.8)

4. Arduino kôd, učitan na ESP8266 za čitanje Adafruit IO feedova i osvjetljavanje Neopixela

5. Arduino kôd za čitanje tipke za brisanje upozorenja

6. Moći konfigurirati WiFi adapter bez potrebe za ponovnim trošenjem ESP -a, a za to sam upotrijebio biblioteku WiFi Managera tvrtke Tzapu, https://github.com/tzapu/WiFiManager, iako je u postavkama potrebno malo promijeniti kako bi se smjestili Knjižnice Adafruit IO.

Korak 4: Postavljanje Adafruit IO -a

Postavljanje Adafruit IO -a
Postavljanje Adafruit IO -a

Ovo je prvi korak jer će vam trebati pristupni ključevi koje stvorite ovdje, a također morate stvoriti feedove na koje će IFTTT slati događaje. Možete postaviti i ovaj i IFTTT račun i poprilično sve postaviti i raditi prije nego prijeđete na Arduino dio ovog projekta.

Umjesto kopiranja primjera adafruita, ovdje možete pronaći osnove https://learn.adafruit.com/gmailbox/adafruit-io-se… što će vam omogućiti postavljanje.

Zatim ćete za GIANT LED također morati zadanim kanalima dodati sljedeće izvore

1. boja - ovo nam omogućuje daljinsku promjenu boje s nečim poput Alexa

2. trzati

3. twitterfan

4. youtubefan

Zatim također trebate stvoriti novu grupu ako već niste pozvali input, a zatim u ovoj grupi također stvorite feed zvan digitalni. To će nam omogućiti i da vidimo učinak pritiska na gumb ako želimo proširiti upotrebu ovog uređaja u druge svrhe.

Ako se također želite u ovom trenutku morate igrati s nadzornom pločom tako da joj možete dodati ove izvore radi informacija i pronalaska grešaka.

Korak 5: Postavljanje IFTTT -a

Postavljanje IFTTT -a
Postavljanje IFTTT -a
Postavljanje IFTTT -a
Postavljanje IFTTT -a

Ovdje možete pratiti i vodič za Adafruit, https://learn.adafruit.com/gmailbox/ifttt-setup. Zatim možete odabrati radnje na Twitteru, youtubeu i twitchu za postavljanje popisa za gledanje, a zatim ih poslati do relevantnih izvora. Priložio sam jednostavan video kako biste vidjeli koliko to može biti brzo.

Osim toga, ako želite glasovno kontrolirati boju svoje LED diode od strane Alexa, sada postoji Amazon Alexa applet. Za postavljanje jednog od ovih odaberite aplikaciju i odaberite riječ plava, zatim je povežite s Adafruit feedom koji ste postavili pod nazivom boja i unesite 0000ff kao podatke za slanje na taj kanal. Na ovaj način možete proslijediti i dodatne naredbe na GIANT LED, poput resetiranja ili ponovnog pokretanja ako želite.

Prilikom postavljanja IFTTT okidača morate odabrati podatke koji će se poslati, a to se u IFTTT -u naziva "Sastojci". Prvi dio koji nam je potreban je "UserName", zatim razmak, a zatim "CreatedAt"

Odabrali smo obje stavke tako da kada podaci stignu u ESP8266 tada možemo otkriti radi li se o novom tweetu i razlikuje li se od prethodnih tweetova istih korisnika. Na priloženoj slici možete vidjeti što bi ovo trebalo voljeti.

Korak 6: Instaliranje ploča ESP8266 u Arduino IDE

Ovdje su stvari malo složenije i moglo bi potrajati malo više vremena da se riješe. Osim ESP8266, potrebne su vam i Adafruit IO knjižnice, a za njih možete slijediti ovaj vodič.

learn.adafruit.com/gmailbox/arduino-setup

Postoji jednostavno objašnjenje kako dodati ploče ESP8266 i ovdje

Ne zaboravite provjeriti je li vaš Arduino IDE najnovija verzija, a ja sam koristio 1.8.8 u vrijeme pisanja ovoga.

Još jedna biblioteka koju koristimo je SimpleTimer jer će nam to omogućiti postavljanje pozadinskog odbrojavanja tako da možemo povremeno provjeravati izvore, upute za to mogu se pronaći na stranici simpletimer koristi https://playground.arduino.cc/Code/SimpleTimer# preuzimanje datoteka

Korak 7: Instaliranje biblioteke WiFi Managera

Kako bismo nam omogućili daljinsko konfiguriranje WiFi postavke, koristit ćemo Tzapu Wifi Manager, detalje o tome i kako instalirati knjižnice možete pronaći ovdje, github.com/tzapu/WiFiManager

Ovo je prilično jednostavna instalacija vanjskih knjižnica, a opcija se već nalazi u odjeljku Upravljanje knjižnicom u odjeljku alata za Arduino IDE.

Korak 8: Kôd ESP8266 - s ispisom za otklanjanje pogrešaka

// Ovaj kod sadrži ispisne izjave tako da možete pratiti njegov rad putem serijskog monitora

// Na temelju primjera Adafruit IO RGB LED izlaza // Adafruit ulaže vrijeme i resurse pružajući ovaj otvoreni kod. // Molimo vas da podržite Adafruit i hardver otvorenog koda kupnjom // proizvoda od Adafruit! // // Napisao Todd Treece za Adafruit Industries // Autorska prava (c) 2016-2017 Adafruit Industries // Licencirano pod licencom MIT-a. // // Sav gornji tekst mora biti uključen u bilo kakvu preraspodjelu. // koristi simpletimer https://playground.arduino.cc/Code/SimpleTimer#Do… // https://playground.arduino.cc/Code/SimpleTimer#Do… // ostatak koda Ajax Jones https:// playground.arduino.cc/Code/SimpleTimer#Do // https://playground.arduino.cc/Code/SimpleTimer#Do… // ******************* ******* Konfiguracija ***********************************/ #define IO_USERNAME "vaš IO Korisničko ime "#define IO_KEY" vaš IO ključ "// ostavite prazno jer ćemo ih dobiti putem Wifi Managera, čini se da radi na ovaj način #define WIFI_SSID" "#define WIFI_PASS" "// ovo ne uključujemo kao što će AdafruitIO uključi svoju verziju // #include //https://github.com/esp8266/Arduino // potrebno za knjižnicu #include #include #include "WiFiManager.h" //https://github.com/tzapu/WiFiManager # uključiti mjerač vremena SimpleTimer; #include "AdafruitIO_WiFi.h" AdafruitIO_WiFi io (IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS); // ************************ NeoPixel konfiguracije ********************** ********* // #include "Adafruit_NeoPixel.h" #define PIXEL_PIN 5 #define PIXEL_COUNT 8 int NUM_LEDS = PIXEL_COUNT; #define PIXEL_TYPE NEO_GRB + NEO_KHZ800 Adafruit_NeoPixel piksela = Adafruit_NeoPixel (PIXEL_COUNT, PIXEL_PIN, PIXEL_TYPE); // Glavne boje i zadana boja long default_color = 865554; duga RED_boja = 2689027; // crvena #290803 duga ZELENA_boja = 865554; // zelena #0d3512 duga PLAVA_boja = 856117; // plava #0d1035 duga PURPLE_color = 2364968; // ljubičasta #241628 duga BRIGHTRED_color = 15990784; // svijetlocrveno #f40000 // ------------------------------------------ ----------------------------------------------- // vrijeme ideja preuzeta s https://www.safaribooksonline.com/library/view/arduino-cookbook-2nd/9781449321185/ch12.html https://playground.arduino.cc/Code/SimpleTimer#Do… https:// playground. arduino.cc/Code/SimpleTimer#Do… const long oneSecond = 1000; // sekunda je tisuću milisekundi const long oneMinute = oneSecond * 60; const long pet minuta = jedna minuta * 5; const long petnaest minuta = pet minuta * 3; const long jedan sat = petnaest minuta * 4; // Korisnici Twittera koji nam se najviše sviđaju i oni će zasvijetliti, a svi ostali tweetovi koje smo odabrali samo će promijeniti boju String SuperTweet = {"ajaxjones", "donttrythis", "prodnose", "testingcom"}; String SuperTuber = {"testirano", "cowan", "marty"}; // postavlja status upozorenja tako da možemo nastaviti bljeskati LED diode u bool -u glavne petlje WHIZZY_TWEET = false; bool WHIZZY_TUBER = netočno; bool WHIZZY_TWITCH = netočno; // Sprema posljednji tweet i youtube kako bismo mogli provjeriti uslugu da svako malo provjeri String lasttweet = ""; String lasttube = ""; String lasttwitch = ""; // digitalni pin 5, ovo je gumb koji koristimo za poništavanje boja upozorenja #define BUTTON_PIN 4 // stanje gumba, zapravo ne tako korišteno jer tražimo gumb za prekid bool current = false; bool last = false; // postavljamo 'color' feed, samo kako bismo mogli testirati i slati boje na zahtjev ili koristiti Alexa okidač AdafruitIO_Feed *color = io.feed ("color"); // postavljanje 'twitterfan' feeda - Blue AdafruitIO_Feed *twitter = io.feed ("twitterfan"); // postavljanje feeda 'youtubefan' - Red AdafruitIO_Feed *youtube = io.feed ("youtubefan"); // postavljanje 'twitch' feeda - Purple AdafruitIO_Feed *twitch = io.feed ("twitch"); // postavljanje 'digitalnog' feeda AdafruitIO_Feed *digital = io.feed ("input.digital"); // ------------------------------------------------ ----------------------------------------- void setup () {// postavite datoteku pin pin kao ulaz, koristimo INPUT_PULLUP jer ne moramo koristiti vanjske otpornike pinMode (BUTTON_PIN, INPUT_PULLUP); // Priključite prekid ISR vektoru za gumb attachInterrupt (digitalPinToInterrupt (BUTTON_PIN), handleInterrupt, FALLING); // Pokrenite serijski program i pričekajte da se serijski monitor otvori, a zatim se povežite na io.adafruit.com Serial.begin (115200); while (! Serijski); // neopixel begin pixels.begin (); // Postavimo početno stanje na crveno kako bismo znali da smo izvan mreže i da radimo setAll (0xf4, 0x00, 0x00); // crveno // za testiranje, ovo će pokazati status WiFi WiFi.printDiag (serijski); WiFiManager wifiManager; // postavlja povratni poziv koji se poziva pri povezivanju s prethodnom WiFi mrežom ne uspije i ulazi u način pristupne točke wifiManager.setAPCallback (configModeCallback); // resetirajte spremljene postavke, uklonite komentar u ovom sljedećem retku kako biste prisilili testiranje WiFi Managera kako biste se mogli povezati // pomoću telefona ili tableta potražite Giant LED mrežu koja će se pojaviti //wifiManager.resetSettings (); // postavlja vremensko ograničenje do isključivanja konfiguracijskog portala // korisno kako bi sve pokušalo ili otišlo u stanje mirovanja // u sekundama wifiManager.setTimeout (240); if (! wifiManager.autoConnect ("GIANT LED")) {Serial.println (F ("povezivanje nije uspjelo i vremensko ograničenje udarca")); // resetiranje i pokušaj ponovno delay (3000); ESP.reset (); kašnjenje (1000); } // za testiranje možemo vidjeti imamo li odgovarajuće vjerodajnice za povezivanje //Serial.println (WiFi. SSID ()); //Serial.println(WiFi.psk());//WiFi.begin(WIFI_SSID, WIFI_PASS); // while (WiFi.status ()! = WL_CONNECTED) {// odgoda (500); //Serial.print ("."); //} Serial.println (); Serial.println (F ("WiFi povezan")); Serial.println (F ("IP adresa:")); Serial.println (WiFi.localIP ()); // sada se povezujemo s IO uslugom Serial.print (F ("Spajanje na Adafruit IO")); io.connect (); // postavljanje rukovatelja porukama za feed u boji. color-> onMessage (handleMessage); // postavljanje rukovatelja porukama za 'twitterfan' feed. twitter-> onMessage (twitterMessage); // postavljanje rukovatelja porukama za feed 'youtubefan'. youtube-> onMessage (youtubeMessage); // postavljanje rukovatelja porukama za 'twitch' feed. twitch-> onMessage (twitchMessage); // čekamo vezu while (io.status () <AIO_CONNECTED) {Serial.print (F (".")); kašnjenje (500); } // povezani smo Serial.println (); Serial.println (io.statusText ()); //Serial.println(sizeof(SuperTweet)); //Serial.println(sizeof(SuperTweet[0])); // Ispišite popis Twitter računa koje čekamo (byte idx = 0; idx <sizeof (SuperTweet) / sizeof (SuperTweet [0]); idx ++) {Serial.print (F ("SuperTweet [")); Serijski.ispis (idx); Serial.print ("] = '"); Serial.print (SuperTweet [idx]); Serial.println ("'"); } // Ispišite popis računa usluge YouTube koje čekamo (bajt idx = 0; idx get (); // zatražite postojeća stanja feedova, pa ćete morati pritisnuti reset pri pokretanju youtube -a -> get (); twitter-> get (); twitch-> get (); for (int i = 0; i get (); twitter-> get (); twitch-> get (); Serial.print ("dobivanje tweetova"); Serial.print ("vrijeme rada (i):"); Serial.println (millis () / 1000);} // ---------------- -------------------------------------------------- ----------------------- void loop () {// io.run (); potrebno je za sve skice. io.run (); mjerač vremena. run (); if (WHIZZY_TWEET == true) {RunningLights (0x0d, 0x10, 0x35, 250);} if (WHIZZY_TUBER == true) {RunningLights (0x29, 0x08, 0x03, 250);} if (WHIZZY_TWITCH == true) {RunningLights (0x24, 0x16, 0x28, 250);}} // --------------------------------- -------------------------------------------------- ------ // postavite prekid za brisanje upozorenja kada je gumb pritisnut i provjerite ručku za internet voidInterrupt () {WHIZZY_TWEET = lažno; WHIZZY_TUBER = lažno; WHIZZY_TWITCH = lažno; struja = istina; // šaljemo trenutno stanje u feed 'input.digital' na adafruit io kako bismo ga vidjeli digitalno-> spremi (trenutno); for (int i = 0; i ")); Serial.print (trenutni); Serial.print (F (" i zadana boja ")); Serial.println (zadana_boja); current = false; digitalno-> spremi (trenutno); while (WiFi.status ()! = WL_CONNECTED) {delay (500); setAll (0xeb, 0xfb, 0x03); // Žuta ebfb03}} // -------------- -------------------------------------------------- ------------------------- // poziva se svaki put kad stigne poruka 'twitter'-postavite LED na Blue void twitterMessage (AdafruitIO_Data *podaci) {String tweeter = (data-> toString ()); tweeter.toLowerCase (); if ((lasttweet! = Tweeter) && (tweeter! = "")) {Lasttweet = tweeter; setAll (0x0d, 0x10, 0x35); // Postavi tweet plavu boju Serial.print (F ("Tweet:")); Serial.print (visokotonac); // provjeri ima li omiljenog visokotonca za (bajt idx = 0; idx = 0) {// Omogućuje tweets whizzy #0d1035 WHIZZY_TWEET = true; Serial.print ("by"); Serial.print (SuperTweet [idx]);}} Serial.println ("");}} // --------- -------------------------------------------------- ---------------------------- - // poziva se svaki put kad stigne poruka 'youtube'- postavite LED na CRVENO void youtubeMessage (AdafruitIO_Data *data) {String tuber = (data-> toString ()); tuber.toLowerCase (); if ((lasttube! = gomolj) && (tuber! = "")) {lasttube = gomolj; setAll (0x29, 0x08,0x03); // Postavite youtube crvenu boju 290803 Serial.print (F ("Youtube:")); Serijski.println (gomolj); // provjeravamo omiljeni Youtuber za (bajt idx = 0; idx = 0) {// Omogućimo njihovim videozapisima da budu # #dd1035 WHIZZY_TUBER = true; Serial.print ("by"); Serial.print (SuperTuber [idx]); }} Serial.println (""); }} // ---------------------------------------------- ------------------------------------------- // poziva se kad god a Stiže poruka 'twitch' - postavite LED na PURPLE void twitchMessage (AdafruitIO_Data *podaci) {String twitch = (data-> toString ()); twitch.toLowerCase (); if ((lasttwitch! = trzanje) && (trzanje! = "")) {lasttwitch = trzanje; setAll (0x24, 0x16, 0x28); // Postavi twitch ljubičastu boju #241628 Serial.print (F ("Twitch:")); Serijski.println (trzanje); // Nema provjere omiljenog Twitchera, pratimo samo jedan WHIZZY_TUBER = true; Serial.println (""); }} // ---------------------------------------------- ------------------------------------------- // ova se funkcija poziva svaki put primljena je poruka 'boja' // koja će postaviti zadanu boju pri pokretanju na temelju posljednje vrijednosti unosa boje void handleMessage (AdafruitIO_Data *data) {// ispisati RGB vrijednosti i hex vrijednost Serial.print (F ("Primljena HEX vrijednost: ")); Serial.println (data-> value ()); long color = data-> toNeoPixel (); // zadana_boja = boja; Serial.print (F ("Primljeno HEX dugo:")); Serial.println (boja); za (int i = 0; i <PIXEL_COUNT; ++ i) {piksela.setPixelColor (i, boja); } showStrip (); } // ----------------------------------------------- ------------------------------------------ void RunningLights (bajt crven, bajt zelen, byte blue, int WaveDelay) {int Position = 0; za (int j = 0; j <NUM_LEDS; j ++) {Pozicija ++; // = 0; // Pozicija + stopa; za (int i = 0; i <NUM_LEDS; i ++) {setPixel (i, ((sin (i + Pozicija) * 127 + 128) / 255) * crveno, ((sin (i + Pozicija) * 127 + 128) / 255)*zelena, ((sin (i + Pozicija)*127 + 128) / 255)*plava); } showStrip (); kašnjenje (WaveDelay); }} // ---------------------------------------------- ------------------------------------------- // Neopixel rutine void setAll (byte red, byte green, byte blue) {for (int i = 0; i getConfigPortalSSID ()); // ušli u konfiguracijski način, postavili Neo Pixel na ljubičastu #241628 = 2364968 // setAll (0x24, 0x16, 0x28); setAll (0xeb, 0xfb, 0x03); // Žuta ebfb03}

Korak 9: Spajajte sve zajedno

Lemljenje sve zajedno
Lemljenje sve zajedno
Lemljenje sve zajedno
Lemljenje sve zajedno
Lemljenje sve zajedno
Lemljenje sve zajedno

Sve u ovom dizajnu je lemljeno zajedno i njime bi trebalo biti prilično lako upravljati. Koristio sam 3 žice u različitim bojama kako bih olakšao stvari, a prvo je izmjeriti žicu za neopiksel do WEMOS -a. Upleo sam ih i stavio mali komad termoskupljajućeg materijala, a zatim ih lemio kako je prikazano tako da će ravno ležati u objektivu.

Gumb je bio sljedeći i dobro će se uklopiti u bazu. Jedna strana gumba ide prema Gnd -u i ona je uvijena zajedno s žicom za uzemljenje neopiksela. Zatim sam ih konzervirao i lemio kao jedan u uzemljenje WEMOS -a.

Napajanje Neopixela ide na 5V PIn. Signalna žica ili Di (podaci u) neopiksela lemljeni su na Wemos pin kao D1. Postoje neke web stranice koje predlažu umetanje otpornika od 300-500 Ohma u seriju s ovim, ali zasad nisam imao problema pa je to zasad samo izravna veza.

Kako bih osigurao dobru praksu, a prema savjetima web lokacija poput Adafruita, postavio sam otpornik 330R u nizu s linijom Di neopikselu. To je kako bi se spriječilo da prva LED dioda u prstenu pusti čarobne piksele, a jednostavno to učinite tako što ćete prerezati žicu i umetnuti otpornik. Mali komad hladnjaka će zaustaviti sve svojevrsne kratke hlače. Otpornik možete skratiti prilično kratko i samo staviti obruč na svaki kraj i učiniti isto sa žicom.

Druga žica za gumb ide izravno na pin D2. Nema potrebe za pullup otpornikom jer se to rješava unutar softvera stavljanjem naredbe PULLUP na taj pin.

To je u osnovi sve.

Korak 10: 3D ispis

Ovdje su priložene STL datoteke koje koristimo za Giant LED. Datoteke su remiks/prerada astro73, a sve datoteke možete preuzeti i s

Za noge i bazu koristio sam Sunlu PETG+ filament koji jako dobro funkcionira na Prusa i3 i koristio sam ispunu od 10 ili 20% žiroida.

Za samu LED sam koristio Sunlu prozirnu PLA i koristio sam oko 10% ispune s koncentričnim gornjim i donjim slojevima.

Sa svakim koristim samo dionice Prusa PET i Prusa PLA postavke u Slic3r -u i sve su dobro funkcionirale. Nešto me žica na nogama, ali samo ih prebacim femorom i žice nestanu:)

Korak 11: Divovski LED sklop

Divovski LED sklop
Divovski LED sklop
Divovski LED sklop
Divovski LED sklop
Divovski LED sklop
Divovski LED sklop

Svi se dijelovi jako lako spajaju, morate pritisnuti maticu M3 u podnožje kako bi vijak mogao držati stvar zajedno. NeoPixel također morate prvo spojiti na WEMOS kroz noge. Razmišljao sam kako ubaciti neke konektore, ali sam odlučio da se to neće raspasti u budućnosti.

Objektiv je samo potiskivanje na noge, a oni su zatim pričvršćeni za bazu jednim vijkom M3x20 mm. Možda ćete morati provući nož po unutrašnjosti rupe za gumb kako bi se lijepo i slobodno kretala. Wemos se drži na mjestu s 2 vijka sa utičnicom M2x8 pričvršćenima odozdo.

Za kraj možete nalijepiti komad filca na podnožje kako biste spriječili klizanje ako je potrebno.

Korak 12: Upute za postavljanje i rad

Image
Image
Upute za postavljanje i rad
Upute za postavljanje i rad
Upute za postavljanje i rad
Upute za postavljanje i rad

Kad je sve spremno i učitani softver primijenite malo napajanja na USB i trebala bi se pojaviti GIANT LED i LED će svijetliti CRVENO, a zatim će se promijeniti u žutu boju. Ovo pokazuje da je izvan mreže i da čeka konfiguraciju za WiFi. Koristeći telefon ili slično potražite GIANT LED wifi mrežu i povežite se i dobit ćete zaslon WiFi Managera. Skenirat će vaše lokalno područje, a vi samo unesite svoje podatke o WiFi -u, ESP će se ponovno pokrenuti i bit ćete na mreži sa zelenim svjetlom. Također će se u ovom trenutku spojiti na IO i svjetla upozorenja će se upaliti jer još nije vidjela nikakve prethodne poruke. Pritisnite gumb nekoliko puta i GIANT LED je sada spreman za nadogradnje.

U ovom trenutku možete otići na nadzornu ploču Adafruit IO i dodati neke podatke u svaki feed i vidjeti kako svjetla prelaze u način upozorenja.

Zabavi se !

Korak 13: Što drugo može učiniti velika LED dioda

Što inače može učiniti LED lampica
Što inače može učiniti LED lampica
Što inače može učiniti LED lampica
Što inače može učiniti LED lampica

Kad steknete osnove ovakvog dizajna i s IFTTT -om možete ga koristiti za mnoge stvari. Upozorenje o pristigloj pošti na Gmailu jedno je jednostavno, a budući da Adafruit radi i s Webhooksima, i drugi programi mogu mu slati podatke. Trenutno imam jednu postavljenu za praćenje nekih prijenosa podataka Big Queryja kao dijela radnog projekta.

Također pomoću gumba možete ga upotrijebiti i za signalizaciju drugih GIANT LED -a, mogli biste imati jedan u različitim kućama i koristiti ga kao daljinski indikator kako biste natjerali drugu stranu da pritisne gumb za poništavanje svjetla.

Ovdje je korisna veza na webhook metodu slanja podataka u feed. U ovom slučaju koristi IFTTT applet, ali isto tako jednostavno možete koristiti CURL metodu s pythonom.

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

Zapravo je čak moguće ugraditi OLED 128x32 u bazu kako bi LED diodu dopunio nekim tekstualnim sadržajem, a ja trenutno radim na tome te ću ažurirati STL -ove i isporučiti kôd za korištenje IO -a i s ovim.

Preporučeni: