Kazalo:

Velikanska LED - sledenje Adamu Savageu: 13 korakov (s slikami)
Velikanska LED - sledenje Adamu Savageu: 13 korakov (s slikami)

Video: Velikanska LED - sledenje Adamu Savageu: 13 korakov (s slikami)

Video: Velikanska LED - sledenje Adamu Savageu: 13 korakov (s slikami)
Video: ZEITGEIST: MOVING FORWARD | OFFICIAL RELEASE | 2011 2024, Julij
Anonim
Velikanska LED - sledenje Adamu Savageu
Velikanska LED - sledenje Adamu Savageu
Velikanska LED - sledenje Adamu Savageu
Velikanska LED - sledenje Adamu Savageu
Velikanska LED - sledenje Adamu Savageu
Velikanska LED - sledenje Adamu Savageu

Tu boste našli upodobitev velikanske LED diode, ki naj bi ponovno delovala kot opozorilna svetilka Twitter, YouTube in Twitch. Moj glavni namen je, da opozorim, ko se pojavijo tweeti, videoposnetki ali twitch streami Adama Savagea in preizkušene ekipe, in po pravici povedano še nekaj drugih ljudi, ki jih spremljam, kot so Robert Cowan, Marty the Mechanic in drugi.

Očitno bi lahko v telefonu ali prenosnem računalniku uporabljal twitter, twitch itd., Vendar je toliko opozoril iz toliko storitev in obvestil, da jih v bistvu izklopim, telefon pa preide v tihi način po 22. uri, saj bo deloval tudi z Webhooks Imam tudi enega, ki je konfiguriran za prejemanje posodobitev iz nekaterih tabel Biq Query, ki so povezane z delom, tako da me obvesti, če so bile posodobljene v redu z zadostnim številom zapisov vsak dan.

Adafruit ima storitev Adafruit IO, ki sem jo želel preizkusiti in vse leto sem si želel poskusiti znova rešiti ESP8266, potem ko sem slišal nekaj dobrih besed o izdaji Wemos D1 Mini 3. Vse se je začelo združevati, ko sem našel zasnova za LED na stvarju Astro73. Začel sem s tem in ga nekoliko predelal za obseg ter dodal tudi gumb v bazo in nekatere druge kozmetične spremembe. Remix najdete tukaj

Poleg tega ga lahko zdaj upravljate z Alexa tudi s pojavom sprožilne besede IFTTT alexa.

Korak: Sestavine

Če želite narediti enega od teh, je seznam delov precej majhen in tudi relativno poceni. Če vas čakanje ne moti, lahko glavne dele nabavite iz tujine in stroške še dodatno znižate. Glavna sestavina pa je ohišje in osnova Giant LED. Če imate 3D tiskalnik, ste pripravljeni, če ne, obstaja nekaj spletnih podjetij, ki bodo tiskala dele. Obstajajo le 3, zato bi moralo biti tudi precej poceni.

1. Wemos D1 Mini R3

2. LED dioda Neopixel 8

3. Tiskana podlaga in noge v črni barvi PETG

4. Tiskana leča in držalo za svetlobo v prozornem PLA

5. Gumb s stikalom 12 mm kvadrat x1

6. Okrogel pokrovček gumba x1

7. Kabel USB in adapter za napajanje

8. Glava gumba M3x20

9. Matica M3

10. Vijak M2x8 mm x2

11. M2 matica x2

12. Nekaj črne, rdeče in rumene žice

13. 300-500 ohmski upor

14. Majhen kos hladilnega telesa

Uporabite lahko druge naprave ESP ali celo Huzzah, vendar je bilo ohišje zasnovano za mini, ki ima pritrdilne luknje in se mu izogne, da bi ga zlepil.

2. korak: Orodja

Če želite to ustvariti in zgraditi, potrebujete naslednje

1. 3D tiskalnik

2. 1,5 mm in 2 mm imbus ključ

3. Spajkalnik in spajkanje

4. Stroji za rezanje žic

5. Klešče

6. Smisel za humor

7. Skalpel za obrezovanje

3. korak: Zahteve za kodo

Torej, preden se potopimo v gradnjo, bom orisal nekatere zahteve, ki sem jih želel vključiti v to. Večino teh sem imel v mislih pred začetkom in narisal sem nekaj tokov, da bi ugotovil, kaj bom poskusil. Ko se je nadaljevalo, sem odkril nekaj težav s storitvami, ki sem jih želel odpraviti.

Zahteve.

Želel sem, da mi LED prikaže, ko je bil objavljen nov tvit ali video, in tudi izkaže se, ko se zažene poseben kanal Twitch. Prav tako sem želel, da se opozorilo nadaljuje, dokler ga ne prekličem, da bi, če bi bil nekaj časa odsoten, vedel, kaj se je zgodilo, ko sem bil odsoten. Želel sem tudi, da bi bil nastavljiv za dostop do Wi-Fi, ne da bi mi bilo treba znova preoblikovati programsko opremo. Še zadnja stvar, ki se je pojavila, je bila poleg odzivanja na dogodke v živo, da sem vsakih 15 minut preveril stanje podatkov, ki so ji bili posredovani

Torej, z osnovami na mestu, je bila naslednja stvar ugotoviti, kako bo vsak del izveden. Spodaj si lahko ogledate moje zamisli o tem, kateri del programske opreme ali platforme bi se obdeloval.

1. Adafruit IO, to se uporablja za nastavitev virov za opozorila, račun lahko dobite tukaj

To bom uporabljal kot storitev čakalne vrste sporočil, kjer ji bom pošiljal sporočila iz IFTTT, nato pa velikanska LED prejema ta sporočila, tako da lahko na njih deluje.

2. IFTTT, https://ifttt.com/ in se uporablja za skeniranje izbranih kanalov Twitter, YouTube in Twitch ter nato pošlje dogodek v IO Adafruit

3. Koda ESP8266 za branje teh virov, ki se z uporabo standardnega Arduino IDE (v1.8.8) vžge v ESP8266

4. Koda Arduino, naložena na ESP8266 za branje virov Adafruit IO in prižiganje Neopixela

5. Arduino koda za branje potisnega gumba za brisanje opozorila

6. Biti sposoben konfigurirati vmesnik WiFi, ne da bi moral povrniti ESP, zato sem uporabil knjižnico WiFi Manager, ki jo je ustvaril Tzapu, https://github.com/tzapu/WiFiManager, čeprav so bile nastavitvene možnosti potrebne za spremembo Knjižnice Adafruit IO.

4. korak: Nastavitev Adafruit IO

Nastavitev Adafruit IO
Nastavitev Adafruit IO

To je prvi korak, saj boste potrebovali dostopne ključe, ki jih ustvarite tukaj, prav tako pa morate ustvariti vire, na katere bo IFTTT pošiljal dogodke. Ta račun in račun IFTTT lahko nastavite in skoraj vse nastavite in delujete, preden se premaknete na del tega projekta Arduino.

Namesto kopiranja primerov adafruit lahko najdete osnove tukaj https://learn.adafruit.com/gmailbox/adafruit-io-se…, ki vam bodo omogočile nastavitev.

Nato boste za LED GIANT morali privzetim kanalom dodati tudi naslednje vire

1. barva - to nam omogoča, da barvo na daljavo spremenimo z nečim, kot je Alexa

2. trzanje

3. twitterfan

4. youtubefan

Nato morate ustvariti tudi novo skupino, če še niste poklicali vnosa, nato pa v to skupino ustvarite tudi vir, imenovan digitalni. Tako bomo videli tudi učinek pritiska na gumb, če želimo razširiti uporabo te naprave za druge namene.

Če želite na tej točki tudi igrati z armaturno ploščo, da ji lahko dodate te vire za informacije in iskanje napak.

5. korak: Nastavitev IFTTT

Nastavitev IFTTT
Nastavitev IFTTT
Nastavitev IFTTT
Nastavitev IFTTT

Vodniku Adafruit lahko sledite tudi tukaj, https://learn.adafruit.com/gmailbox/ifttt-setup. Nato lahko izberete dejanja Twitterja, youtube in twitch, da nastavite svoje sezname ogledov, in jih nato pošljete v ustrezne vire. Priložil sem preprost video, da vidite, kako hitro je lahko.

Poleg tega, če želite glasovno nadzorovati barvo LED diode Alexa, je zdaj programček Amazon Alexa. Če želite nastaviti eno od teh, izberite aplikacijo in izberite besedo modro, nato jo povežite z virom Adafruit, ki ste ga nastavili, imenovano barva, in vnesite 0000ff kot podatke za pošiljanje na ta kanal. Na ta način lahko na GIANT LED posredujete tudi dodatne ukaze, na primer ponastavitev ali ponovni zagon, če želite.

Ko nastavljate sprožilec IFTTT, morate izbrati podatke, ki se pošljejo, in to se v IFTTT imenuje "Sestavine". Prvi del, ki ga potrebujemo, je "UserName", nato presledek in nato "CreatedAt"

Oba elementa izberemo tako, da lahko, ko podatki prispejo v ESP8266, ugotovimo, ali gre za nov tvit in ali se razlikuje od prejšnjih tvitov istih uporabnikov. Na priloženi sliki lahko vidite, kaj bi to moralo biti všeč.

6. korak: Namestitev plošč ESP8266 v Arduino IDE

Tu so stvari nekoliko bolj zapletene in lahko traja nekaj več časa, da se zadeva uredi. Poleg ESP8266 potrebujete tudi knjižnice Adafruit IO in jim lahko sledite tem priročniku.

learn.adafruit.com/gmailbox/arduino-setup

Tukaj je tudi preprosta razlaga, kako dodati plošče ESP8266

Ne pozabite se prepričati, da je vaš Arduino IDE najnovejša različica in da sem v času pisanja tega uporabljal 1.8.8.

Še ena knjižnica, ki jo uporabljamo, je SimpleTimer, saj nam bo to omogočilo nastavitev časovnika za ozadje, da bomo lahko redno preverjali vire, navodila za to najdete na naslovu Uporablja simpletimer https://playground.arduino.cc/Code/SimpleTimer# Prenesi

7. korak: Namestitev knjižnice upravitelja WiFi

Če želite omogočiti oddaljeno konfiguracijo nastavitve WiFi, bomo uporabili Tzapu Wifi Manager, podrobnosti o tem in kako namestiti knjižnice najdete tukaj, github.com/tzapu/WiFiManager

To je precej preprosta namestitev zunanjih knjižnic, možnost pa je že v razdelku Upravljanje knjižnice v razdelku z orodji Arduino IDE.

8. korak: Koda ESP8266 - s tiskanjem za odpravljanje napak

// Ta koda vsebuje izjave za tiskanje, tako da lahko spremljate njeno delovanje prek serijskega monitorja

// Na podlagi primera Adafruit IO RGB LED izhoda // Adafruit vlaga čas in sredstva za to odprtokodno kodo. // Prosimo, podprite Adafruit in odprtokodno strojno opremo z nakupom // izdelkov pri Adafruit! // // Napisal Todd Treece za Adafruit Industries // Avtorske pravice (c) 2016-2017 Adafruit Industries // Licencirano pod licenco MIT. // // Vse zgornje besedilo mora biti vključeno v kakršno koli prerazporeditev. // uporablja simpletimer https://playground.arduino.cc/Code/SimpleTimer#Do… // https://playground.arduino.cc/Code/SimpleTimer#Do… // ostalo kodo Ajax Jones https:// playground.arduino.cc/Code/SimpleTimer#Do // https://playground.arduino.cc/Code/SimpleTimer#Do… // ******************* ******* Konfiguracija ***********************************/ #define IO_USERNAME "vaš IO Uporabniško ime "#define IO_KEY" your IO Key "// pustite prazno, saj jih bomo dobili prek upravitelja Wifi, zdi se, da deluje tako #define WIFI_SSID" "#define WIFI_PASS" "// tega ne vključujemo, kot bo AdafruitIO vključi njegovo različico // #include //https://github.com/esp8266/Arduino // potrebno za knjižnico #include #include #include "WiFiManager.h" //https://github.com/tzapu/WiFiManager # vključite časovnik SimpleTimer; #include "AdafruitIO_WiFi.h" AdafruitIO_WiFi io (IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS); // ************************ Konfiguracije NeoPixel ********************** ********* // #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 slikovnih pik = Adafruit_NeoPixel (PIXEL_COUNT, PIXEL_PIN, PIXEL_TYPE); // Glavne barve in privzeta barva dolga default_color = 865554; dolga RED_barva = 2689027; // rdeča #290803 dolga ZELENA_barva = 865554; // zelena #0d3512 dolga MODRA_barva = 856117; // modra #0d1035 dolga PURPLE_color = 2364968; // vijolična #241628 dolga BRIGHTRED_color = 15990784; // svetlo rdeča #f40000 // ------------------------------------------ ----------------------------------------------- // čas ideja vzeta 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 tisoč milisekund const long oneMinute = oneSecond * 60; const dolgih pet minut = ena minuta * 5; const dolgih petnajst minut = pet minut * 3; const dolga ena ura = petnajst minut * 4; // Twitter uporabniki, ki so nam najbolj všeč in ti bodo utripali in vsi drugi tviti, ki smo jih izbrali, bodo samo spremenili barvo String SuperTweet = {"ajaxjones", "donttrythis", "prodnose", "testingcom"}; String SuperTuber = {"preizkušeno", "cowan", "marty"}; // določi stanje opozorila, tako da lahko še naprej utripamo LED -je v glavni zanki WHIZZY_TWEET = false; bool WHIZZY_TUBER = napačno; bool WHIZZY_TWITCH = napačno; // Shrani zadnji tweet in youtube, tako da lahko storitev občasno preverimo in preverimo String lasttweet = ""; String lasttube = ""; String lasttwitch = ""; // digitalni pin 5, to je gumb, ki ga uporabljamo za ponastavitev opozorilnih barv #define BUTTON_PIN 4 // stanje gumba, v resnici ni tako uporabljeno, kot iščemo gumb za prekinitev bool tok = false; bool last = false; // nastavimo vir 'color', samo zato, da lahko na zahtevo preizkusimo in pošljemo barve ali uporabimo Alexa sprožilec AdafruitIO_Feed *color = io.feed ("color"); // nastavimo vir 'twitterfan' - Blue AdafruitIO_Feed *twitter = io.feed ("twitterfan"); // nastavite vir 'youtubefan' - Red AdafruitIO_Feed *youtube = io.feed ("youtubefan"); // nastavimo vir 'twitch' - vijolično AdafruitIO_Feed *twitch = io.feed ("twitch"); // nastavimo „digitalni“vir AdafruitIO_Feed *digital = io.feed ("input.digital"); // ------------------------------------------------ ----------------------------------------- void setup () {// nastavite datoteko pin pin kot vhod, uporabljamo INPUT_PULLUP, saj nam ni treba uporabljati zunanjih uporov pinMode (BUTTON_PIN, INPUT_PULLUP); // Priključimo prekinitev vektorju ISR za gumb attachInterrupt (digitalPinToInterrupt (BUTTON_PIN), handleInterrupt, FALLING); // Zaženite serijo in počakajte, da se serijski monitor odpre, nato pa se povežite z io.adafruit.com Serial.begin (115200); while (! Serijski); // neopixel begin pixels.begin (); // Nastavimo začetno stanje na rdečo, da vemo, da smo brez povezave in delujemo setAll (0xf4, 0x00, 0x00); // rdeče // za testiranje bo prikazano stanje WiFi WiFi.printDiag (serijski); WiFiManager wifiManager; // nastavimo povratni klic, ki se pokliče ob neuspešni povezavi s prejšnjo WiFi, in vstopi v način dostopne točke wifiManager.setAPCallback (configModeCallback); // ponastavite shranjene nastavitve, odstranite komentar v naslednji vrstici, da prisilite testiranje upravitelja WiFi, da se lahko povežete // s telefonom ali tabličnim računalnikom poiščete omrežje Giant LED, ki se bo prikazalo //wifiManager.resetSettings (); // nastavi časovno omejitev, dokler se konfiguracijski portal ne izklopi // koristno, da se vse znova poskusi ali zaspi // v sekundah wifiManager.setTimeout (240); if (! wifiManager.autoConnect ("GIANT LED")) {Serial.println (F ("povezava ni uspela in časovna omejitev udarca")); // ponastavite in poskusite znova delay (3000); ESP.reset (); zamuda (1000); } // za testiranje lahko vidimo, ali imamo prave poverilnice za povezavo //Serial.println (WiFi. SSID ()); //Serial.println(WiFi.psk());//WiFi.begin(WIFI_SSID, WIFI_PASS); // while (WiFi.status ()! = WL_CONNECTED) {// zakasnitev (500); //Serial.print ("."); //} Serial.println (); Serial.println (F ("WiFi povezan")); Serial.println (F ("naslov IP:")); Serial.println (WiFi.localIP ()); // zdaj se povežemo s storitvijo IO Serial.print (F ("Povezovanje z Adafruit IO")); io.connect (); // nastavimo rokovanje s sporočili za vir 'barva'. barva-> onMessage (handleMessage); // nastavimo rokovanje s sporočili za vir 'twitterfan'. twitter-> onMessage (twitterMessage); // nastavimo rokovanje s sporočili za vir 'youtubefan'. youtube-> onMessage (youtubeMessage); // nastavimo rokovanje s sporočili za vir 'twitch'. twitch-> onMessage (twitchMessage); // čakanje na povezavo while (io.status () <AIO_CONNECTED) {Serial.print (F (".")); zamuda (500); } // povezani smo Serial.println (); Serial.println (io.statusText ()); //Serial.println(sizeof(SuperTweet)); //Serial.println(sizeof(SuperTweet[0])); // Natisnite seznam računov Twitter, ki jih čakamo (byte idx = 0; idx <sizeof (SuperTweet) / sizeof (SuperTweet [0]); idx ++) {Serial.print (F ("SuperTweet [")); Serial.print (idx); Serial.print ("] = '"); Serial.print (SuperTweet [idx]); Serial.println ("'"); } // Natisnite seznam računov YouTube, ki jih čakamo (bajt idx = 0; idx get (); // zahtevajte obstoječa stanja virov, zato boste morali pritisniti na ponastavitev, ko se zažene youtube -> get (); twitter-> get (); twitch-> get (); for (int i = 0; i get (); twitter-> get (); twitch-> get (); Serial.print ("pridobivanje nekaj tvitov"); Serial.print ("čas delovanja (-ov):"); Serial.println (millis () / 1000);} // ---------------- -------------------------------------------------- ----------------------- void loop () {// io.run (); je potreben za vse 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);}} // --------------------------------- -------------------------------------------------- ------ // nastavite prekinitev, da počisti opozorilo, ko pritisnete gumb, in preverite ročaj internetne praznine Interrupt () {WHIZZY_TWEET = napačno; WHIZZY_TUBER = napačno; WHIZZY_TWITCH = napačno; tok = res; // pošljemo trenutno stanje v vir 'input.digital' na adafruit io, da ga vidimo digitalno-> shrani (trenutno); for (int i = 0; i ")); Serial.print (current); Serial.print (F (" in privzeta barva ")); Serial.println (default_color); current = false; digital-> save (current); while (WiFi.status ()! = WL_CONNECTED) {delay (500); setAll (0xeb, 0xfb, 0x03); // rumena ebfb03}} // -------------- -------------------------------------------------- ------------------------- // to se pokliče, ko pride sporočilo 'twitter'-nastavite LED na modro void twitterMessage (podatki AdafruitIO_Data *) {String tweeter = (data-> toString ()); tweeter.toLowerCase (); if ((lasttweet! = Tweeter) && (tweeter! = "")) {Lasttweet = tweeter; setAll (0x0d, 0x10, 0x35); // Nastavi tweet modro barvo Serial.print (F ("Tweet:")); Serial.print (visokotonec); // preveri, ali je priljubljen visokotonec za (bajt idx = 0; idx = 0) {// Omogočamo, da tweets whizzy #0d1035 WHIZZY_TWEET = true; Serial.print ("by"); Serial.print (SuperTweet [idx]);}} Serial.println ("");}} // --------- -------------------------------------------------- ---------------------------- - // to se pokliče, ko pride sporočilo 'youtube'- nastavite LED na RDEČO void youtubeMessage (AdafruitIO_Data *data) {String tuber = (data-> toString ()); tuber.toLowerCase (); if ((lasttube! = gomolj) && (tuber! = "")) {lasttube = gomolj; setAll (0x29, 0x08,0x03); // Nastavi youtube rdečo barvo 290803 Serial.print (F ("Youtube:")); Serial.println (gomolj); // preveri priljubljen Youtuber za (bajt idx = 0; idx = 0) {// Omogočimo, da bodo njihovi videoposnetki bleščeči #0d1035 WHIZZY_TUBER = true; Serial.print ("by"); Serial.print (SuperTuber [idx]); }} Serial.println (""); }} // ---------------------------------------------- ------------------------------------------- // to se pokliče kadar koli Prihaja sporočilo 'twitch' - nastavite LED na PURPLE void twitchMessage (AdafruitIO_Data *podatki) {String twitch = (data-> toString ()); twitch.toLowerCase (); if ((lasttwitch! = trzanje) && (trzanje! = "")) {lasttwitch = trzanje; setAll (0x24, 0x16, 0x28); // Set twitch purple color #241628 Serial.print (F ("Twitch:")); Serial.println (trzanje); // Brez preverjanja priljubljenega Twitcherja, sledimo le enemu WHIZZY_TUBER = true; Serial.println (""); }} // ---------------------------------------------- ------------------------------------------- // ta funkcija se pokliče kadar koli prejme se sporočilo 'barva' //, ki bo pri zagonu nastavilo privzeto barvo na podlagi zadnje vrednosti vnosa vira void handleMessage (AdafruitIO_Data *data) {// natisne vrednosti RGB in šestnajstiško vrednost Serial.print (F ("Prejeta vrednost HEX: ")); Serial.println (data-> value ()); dolga barva = podatki-> doNeoPixel (); // privzeta_barva = barva; Serial.print (F ("Prejeto HEX dolg:")); Serial.println (barvno); for (int i = 0; i <PIXEL_COUNT; ++ i) {pixels.setPixelColor (i, barva); } showStrip (); } // ----------------------------------------------- ------------------------------------------ void RunningLights (bajt rdeč, bajt zelen, bajt modra, int WaveDelay) {int Position = 0; for (int j = 0; j <NUM_LEDS; j ++) {Položaj ++; // = 0; // Položaj + Stopnja; for (int i = 0; i <NUM_LEDS; i ++) {setPixel (i, ((sin (i + Position) * 127 + 128) / 255) * rdeča, ((sin (i + Position) * 127 + 128) / 255)*zelena, ((sin (i + položaj)*127 + 128) / 255)*modra); } showStrip (); zamuda (WaveDelay); }} // ---------------------------------------------- ------------------------------------------- // Neopixel rutine void setAll (bajt rdeča, bajt zelena, bajt modra) {for (int i = 0; i getConfigPortalSSID ()); // vstopili v konfiguracijski način, nastavite Neo Pixel na vijolično #241628 = 2364968 // setAll (0x24, 0x16, 0x28); setAll (0xeb, 0xfb, 0x03); // rumena ebfb03}

9. korak: Spajkajte vse skupaj

Spajkanje skupaj
Spajkanje skupaj
Spajkanje skupaj
Spajkanje skupaj
Spajkanje skupaj
Spajkanje skupaj

Vse v tej zasnovi je spajano skupaj in bi moralo biti zelo enostavno upravljati. Za olajšanje sem uporabil 3 žice različnih barv. Prva stvar je, da izmerim žico za neopixel do WEMOS. Pletel sem jih in dal majhen košček toplotno skrčljivega in jih nato spajkal, kot je prikazano, tako da bo ležal ravno v leči.

Gumb je bil naslednji in se bo tesno prilegal podstavku. Ena stran gumba gre v Gnd in ta je zvita skupaj z ozemljitveno žico neopiksela. Nato sem jih pokosil in spajal kot enega v ozemljitveni zatič WEMOS -a.

Napajalni kabel za Neopixel gre na 5V PIn. Signalna žica ali Di (podatki v) neopiksela je spajkana na Wemos pin kot D1. Obstaja nekaj spletnih mest, ki predlagajo, da se s tem zaporedno vstavi upor 300-500 Ohmov, vendar zaenkrat še nisem imel težav, tako da je zaenkrat le neposredna povezava.

Da bi zagotovili dobro prakso, sem po nasvetu spletnih mest, kot je Adafruit, umeril 330R upor z linijo Di na neopixel. Preprečiti je treba, da bi prva LED v obroču izpustila čarobne piksle in preprosto naredila tako, da bi prerezala žico in vstavila upor. Majhen košček hladilnega vložka bo ustavil kakršne koli nagajive kratke hlače. Upor lahko precej kratko prerežete in na vsak konec postavite obroč in enako storite z žico.

Druga žica za gumb gre neposredno na pin D2. Spustni upor ni potreben, saj to v programski opremi obravnavate tako, da na ta zatič postavite ukaz PULLUP.

To je v bistvu vse.

10. korak: 3D tiskanje

Tukaj so priložene datoteke STL, ki jih uporabljamo za velikansko LED. Datoteke so remiks/predelava astro73 in vse datoteke lahko vzamete tudi s spletnega mesta

Za noge in podlago sem uporabil žarilno nitko Sunlu PETG+, ki se zelo dobro obnese na Prusa i3 in uporabil sem 10 ali 20% polnilo ščitnice.

Za samo LED uporabljam prozorno PLA Sunlu in uporabljam približno 10% polnilo s koncentričnimi zgornjo in spodnjo plastjo.

Pri vsakem uporabljam samo nastavitve Prusa PET in Prusa PLA v Slic3r in vse sta se dobro izkazala. Na nogah me sicer malo naniza, ampak jih samo potegnem z gorilnikom in nizanje izgine:)

Korak 11: Velikanski LED sklop

Velikanski LED sklop
Velikanski LED sklop
Velikanski LED sklop
Velikanski LED sklop
Velikanski LED sklop
Velikanski LED sklop

Vsi kosi se zlahka združijo, v podstavek morate pritisniti matico M3, da lahko vijak drži stvar skupaj. Prav tako morate NeoPixel priključiti na WEMOS skozi noge. Razmišljal sem, kako vstaviti nekaj priključkov, vendar sem se odločil, da se v prihodnosti ne bo razpadel.

Objektiv je samo potisni na noge, ti pa so pritrjeni na dno z enim samim vijakom M3x20 mm. Morda boste morali z nožem zagnati notranjost luknje za gumb, da se bo lepo in svobodno premikala. Wemos je pritrjen na mestu z 2 vtičnima vijakoma M2x8, privitima od spodaj.

Za zaključek lahko na podlago prilepite kos filca, da po potrebi preprečite drsenje.

12. korak: Navodila za namestitev in uporabo

Image
Image
Navodila za namestitev in uporabo
Navodila za namestitev in uporabo
Navodila za namestitev in uporabo
Navodila za namestitev in uporabo

Ko je vse pripravljeno in naložena programska oprema, uporabite nekaj moči na USB -ju, prižgati se mora VELIKA LED -dioda, ki bo postala RDEČA, nato pa se spremeni v rumeno barvo. To kaže, da je brez povezave in čaka na konfiguracijo wifi. Z uporabo telefona ali podobnega poiščite GIANT LED wifi omrežje in se povežite, in dobili boste zaslon WiFi Manager. Prebral bo vaše lokalno območje in vnesli boste samo svoje podatke o WiFi, ESP se bo znova zagnal in zdaj boste na spletu dobili zeleno luč. Na tej točki se bo povezal tudi z IO in zasvetile bodo opozorilne lučke, saj še ni videl nobenega prejšnjega sporočila. Nekajkrat pritisnite gumb in LED GIANT je zdaj pripravljen za posodobitve.

Na tej točki lahko greste na nadzorno ploščo Adafruit IO in vsakemu viru dodate nekaj podatkov in vidite, kako luči preidejo v način opozarjanja.

Zabavaj se !

13. korak: Kaj še lahko naredi velikanska LED

Kaj še lahko naredi velikanska LED
Kaj še lahko naredi velikanska LED
Kaj še lahko naredi velikanska LED
Kaj še lahko naredi velikanska LED

Ko imate osnove takšnega oblikovanja in ga z IFTTT lahko uporabite za marsikaj. Opozorilo za mapo »Prejeto« v Gmailu je enostaven in ker Adafruit deluje tudi z Webhooki, mu lahko tudi drugi programi pošiljajo podatke. Trenutno imam nastavljeno eno za spremljanje nalaganja nekaterih podatkov Big Query v okviru delovnega projekta.

Z gumbom lahko uporabite tudi za signaliziranje drugih GIANT LED, lahko ga imate v različnih hišah in ga uporabite kot daljinski indikator, da bi druga stran pritisnila gumb, da prekliče luč.

Tu je koristna povezava do metode pošiljanja podatkov v vir webhook. V tem primeru uporablja programček IFTTT, vendar lahko enako preprosto uporabite metodo CURL s pythonom.

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

Pravzaprav je celo mogoče vstaviti OLED 128x32 v osnovo, da LED dopolni z nekaj besedilne vsebine, in trenutno delam na tem in bom posodobil STL -je in dobavil kodo za uporabo IO tudi s tem.

Priporočena: