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: Part 3 - The Return of Sherlock Holmes Audiobook by Sir Arthur Conan Doyle (Adventures 06-08) 2024, Juli
Anonim
Gigantska LED - praćenje Adama Savagea
Gigantska LED - praćenje Adama Savagea
Gigantska LED - praćenje Adama Savagea
Gigantska LED - praćenje Adama Savagea
Gigantska LED - praćenje Adama Savagea
Gigantska LED - praćenje Adama Savagea

Ovdje ćete pronaći izvedbu gigantske LED diode, čija je namjena da djeluje kao Twitter, YouTube i Twitch lampica upozorenja. Glavna svrha mi je pružiti upozorenje kada postoje tweetovi, video zapisi ili twitch streamovi Adama Savagea i testiranog tima, i da budem pošten, još nekoliko ljudi koje pratim, poput Roberta Cowana, Martyja Mehaničara i drugih.

Očigledno bih mogao koristiti twitter, twitch itd. Na svom telefonu ili laptopu, ali ima toliko upozorenja sa 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 radom 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 ponovo 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 za LED diodu na stvari Astro73. Počeo sam s tim i malo ga preradio za skalu, a dodao sam i gumb u bazu te neke druge kozmetičke promjene. Remiks možete pronaći ovdje

Osim toga, sada se može upravljati glasom preko 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 je međutim Giant LED kućište i baza. Ako imate 3D štampač, onda ste spremni, ako ne, postoji nekoliko kompanija za štampanje na mreži koje će štampati delove. Postoje samo 3 pa bi i one trebale biti prilično jeftine.

1. Wemos D1 Mini R3

2. LED dioda Neopixel 8

3. Štampana baza i noge u crnom PETG -u

4. Štampano sočivo i držač svetla u providnom PLA

5. Prekidač tipke 12 mm kvadrat x1

6. Okrugli zatvarač dugmeta x1

7. USB kabl i adapter za napajanje

8. Glava dugmeta M3x20

9. M3 Matica

10. M2x8mm vijak x2

11. M2 Matica x2

12. Malo crne, crvene i žute žice

13. 300-500 Ohm Resistor

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 da ga morate lijepiti.

Korak 2: Alati

Da biste ovo stvorili i izgradili, trebat će vam sljedeće

1. 3D štampač

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

3. Lemilica i lemljenje

4. Rezači žica

5. Klješta

6. Smisao za humor

7. Skalpel za podrezivanje

Korak 3: Zahtjevi koda

Dakle, prije nego što zađemo u izgradnju, iznijet ću 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 šta ću pokušati. Kako se to događalo, otkrila sam neke probleme sa uslugama koje sam htjela riješiti.

Zahtevi.

Htio sam da mi LED prikazuje kada se objavi novi tweet ili video, a ispadne i 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 mi je da provjerava svakih 15 minuta status podataka koji su joj dostavljeni

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 kojim dijelom bi se bavila koja vrsta softvera ili platforme.

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

Koristit ću ovo kao uslugu čekanja poruka u kojoj ć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 Twitter, YouTube i Twitch, a zatim šalje događaj na IO Adafruit

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

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

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

6. Moći ćete konfigurirati WiFi adapter bez potrebe za ponovnim trošenjem ESP -a, a za to sam koristio biblioteku WiFi Manager tvrtke Tzapu, https://github.com/tzapu/WiFiManager, iako je u postavkama bilo potrebno malo promijeniti kako bi se prilagodili Adafruit IO biblioteke.

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 kreirate ovdje, a također morate stvoriti i feedove na koje će IFTTT slati događaje. Možete postaviti i ovaj i IFTTT račun i prilično postaviti i postaviti sve prije nego što pređete na Arduino dio ovog projekta.

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

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

1. boja - ovo nam omogućava 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 stvorite i feed zvan digitalni. Ovo će nam omogućiti da vidimo i učinak pritiska na dugme 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

Vodič za Adafruit možete pratiti i ovdje, https://learn.adafruit.com/gmailbox/ifttt-setup. Zatim možete odabrati Twitter, youtube i twitch radnje za postavljanje vaših lista 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. Da biste postavili jednu 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 GIANT LED -u, poput resetiranja ili ponovnog pokretanja ako želite.

Prilikom postavljanja IFTTT okidača morate odabrati podatke koji se šalju, 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 možemo tada otkriti je li riječ o novom tweetu i razlikuje li se od prethodnih tweetova istih korisnika. Na priloženoj slici možete vidjeti šta bi ovo trebalo izgledati.

Korak 6: Instaliranje ESP8266 ploča u Arduino IDE

Ovdje su stvari malo teže i možda će trebati malo više vremena da se riješe. Osim ESP8266, potrebne su vam i Adafruit IO biblioteke, 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 tajmera tako da možemo povremeno provjeravati sažetke sadržaja, upute za to se mogu pronaći na stranici simpletimer https://playground.arduino.cc/Code/SimpleTimer# Skinuti

Korak 7: Instaliranje biblioteke WiFi Manager

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

Ovo je prilično jednostavna instalacija vanjskih biblioteka, a opcija se već nalazi u odjeljku Upravljanje bibliotekom u odjeljku alata za Arduino IDE.

Korak 8: Kôd ESP8266 - sa ispisivanjem za otklanjanje grešaka

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

// Na osnovu 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 kupovinom // proizvoda od Adafruit! // // Napisao Todd Treece za Adafruit Industries // Autorska prava (c) 2016-2017 Adafruit Industries // Licencirano pod licencom MIT. // // Sav gornji tekst mora biti uključen u bilo koju 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 biblioteku #include #include #include "WiFiManager.h" //https://github.com/tzapu/WiFiManager # uključuje SimpleTimer mjerač vremena; #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 GREEN_color = 865554; // zelena #0d3512 duga PLAVA_boja = 856117; // plava #0d1035 duga PURPLE_color = 2364968; // ljubičasta #241628 duga BRIGHTRED_color = 15990784; // svijetlo crveno #f40000 // ------------------------------------------ ----------------------------------------------- // vrijeme ideja preuzeta sa https://www.safaribooksonline.com/library/view/arduino-cookbook-2nd/9781449321185/ch12.html https://playground.arduino.cc/Code/SimpleTimer#Do… https:// igralište. arduino.cc/Code/SimpleTimer#Do… const long oneSecond = 1000; // sekunda je hiljadu 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; // Twitter Korisnici 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 svijetliti LED -ovima u bool -u glavne petlje WHIZZY_TWEET = false; bool WHIZZY_TUBER = netačno; bool WHIZZY_TWITCH = netačno; // Pohranjuje zadnji tweet i youtube kako bismo mogli provjeriti uslugu da svako malo provjerava String lasttweet = ""; String lasttube = ""; String lasttwitch = ""; // digitalni pin 5, ovo je dugme koje koristimo za poništavanje boja upozorenja #define BUTTON_PIN 4 // stanje dugmeta, ne baš tako korišćeno jer tražimo dugme za prekid bool current = false; bool last = false; // postavljamo 'color' feed, samo da možemo 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"); // postavite 'youtubefan' feed - Red AdafruitIO_Feed *youtube = io.feed ("youtubefan"); // postavljanje 'twitch' feeda - ljubičasti AdafruitIO_Feed *twitch = io.feed ("twitch"); // postavljanje 'digitalnog' izvora 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čimo prekid na ISR vektor za dugme 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 van 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 na prethodni WiFi ne uspije i ulazi u način pristupne tač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 ponovo 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 na IO uslugu Serial.print (F ("Povezivanje 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 'youtubefan' feed. 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])); // Odštampajte listu Twitter naloga koje čekamo (bajt idx = 0; idx <sizeof (SuperTweet) / sizeof (SuperTweet [0]); idx ++) {Serial.print (F ("SuperTweet [")); Serial.print (idx); Serial.print ("] = '"); Serial.print (SuperTweet [idx]); Serial.println ("'"); } // Odštampajte listu YouTube naloga koje čekamo (bajt idx = 0; idx get (); // zatražite postojeća stanja izvora, pa ćete morati pritisnuti reset dok se pokreće youtube -> get (); twitter-> get (); twitch-> get (); for (int i = 0; i get (); twitter-> get (); twitch-> get (); Serial.print ("dobivanje tweetova"); Serial.print ("vrijeme rada (a):"); Serial.println (millis () / 1000);} // ---------------- -------------------------------------------------- ----------------------- void loop () {// io.run (); potrebno je za sve skice. io.run (); timer. 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 dugme pritisnuto i provjerite ručku za internet voidInterrupt () {WHIZZY_TWEET = false; WHIZZY_TUBER = netačno; WHIZZY_TWITCH = netačno; current = true; // šaljemo trenutno stanje na 'input.digital' feed na adafruit io tako da ga vidimo 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 "twitter" poruka-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ćavamo tweets whizzy #0d1035 WHIZZY_TWEET = true; Serial.print ("by"); Serial.print (SuperTweet [idx]);}} Serial.println ("");}} // --------- -------------------------------------------------- ---------------------------- - // ovo se poziva 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); // Postavljanje youtube crvene boje 290803 Serial.print (F ("Youtube:")); Serial.println (gomolj); // provjeravamo omiljeni Youtuber za (bajt idx = 0; idx = 0) {// Omogućavamo 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 *data) {String twitch = (data-> toString ()); twitch.toLowerCase (); if ((lasttwitch! = twitch) && (twitch! = "")) {lasttwitch = twitch; setAll (0x24, 0x16, 0x28); // Postavi twitch ljubičastu boju #241628 Serial.print (F ("Twitch:")); Serial.println (trzanje); // Nema provjere omiljenog Twitchera, pratimo samo jedan WHIZZY_TUBER = true; Serial.println (""); }} // ---------------------------------------------- ------------------------------------------- // ova funkcija se poziva svaki put primljena je poruka u boji // koja će postaviti zadanu boju pri pokretanju na osnovu posljednje vrijednosti unosa boje void handleMessage (AdafruitIO_Data *podaci) {// ispisati RGB vrijednosti i heksadecimalnu 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, bajt plavo, int WaveDelay) {int Pozicija = 0; for (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 (bajt crveni, bajt zeleni, bajt plavi) {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.

Dugme je bilo sljedeće i dobro će se uklopiti u bazu. Jedna strana gumba ide na Gnd i ovo je uvijeno zajedno sa žicom za uzemljenje neopiksela. Zatim sam ih konzervirao i lemio kao jedan u uzemljeni pin 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 za sada samo direktna veza.

Kako bih osigurao dobru praksu, a na savjet web lokacija poput Adafruita, stavio sam otpornik 330R u seriju s linijom Di na neopiksel. To je kako bi se spriječilo da prva LED dioda u prstenu pusti čarobne piksele, a jednostavno se to učini presjecanjem žice i postavljanjem otpornika. 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 dugme ide direktno na pin D2. Nema potrebe za pullup otpornikom jer se to rješava unutar softvera postavljanjem PULLUP naredbe 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 sa

Za noge i podlogu 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. Nekoliko me žica na nogama, ali samo zamahujem lampom i žice nestaju:)

Korak 11: Divovski LED sklop

Divovski LED sklop
Divovski LED sklop
Veliki LED sklop
Veliki LED sklop
Veliki LED sklop
Veliki LED sklop

Svi se dijelovi lako spajaju, morate pritisnuti M3 maticu 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 da ubacim neke konektore, ali sam odlučio da se to neće raspasti u budućnosti.

Objektiv se jednostavno pritisne 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 rupice za gumb kako bi se lijepo i slobodno kretala. Wemos se drži na mjestu sa 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 dioda koja ć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 Manager. 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 povezati s IO i svjetla upozorenja će se upaliti jer još nije vidjela nikakve prethodne poruke. Pritisnite dugme nekoliko puta i GIANT LED je sada spreman za nadogradnje.

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

Zabavi se !

Korak 13: Šta drugo može učiniti gigantska LED dioda

Šta drugo može učiniti gigantska LED dioda
Šta drugo može učiniti gigantska LED dioda
Šta drugo može učiniti Giant LED
Šta drugo može učiniti Giant LED

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 kako Adafruit radi i s Webhooksima, i drugi programi mogu mu slati podatke. Trenutno imam jednu postavljenu za praćenje nekih otpremanja podataka Big Query -a kao dijela radnog projekta.

Također pomoću gumba možete ga upotrijebiti za signalizaciju i drugih GIANT LED dioda, mogli biste imati jedan u različitim kućama i koristiti ga kao daljinski indikator kako biste natjerali drugu stranu da pritisne dugme da ugasi svjetlo.

Evo korisne veze na webhook metodu slanja podataka u feed. U ovom slučaju koristi IFTTT aplet, ali isto tako lako možete koristiti CURL metodu s pythonom.

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

U stvari, čak je moguće ugraditi OLED 128x32 u bazu kako bi LED bio dopunjen nekim tekstualnim sadržajem, a ja trenutno radim na tome i ažurirat ću STL -ove i isporučiti kôd za korištenje IO -a sa ovim.

Preporučuje se: