Sisällysluettelo:

Jättiläinen LED - Adam Savagen seuranta: 13 vaihetta (kuvilla)
Jättiläinen LED - Adam Savagen seuranta: 13 vaihetta (kuvilla)

Video: Jättiläinen LED - Adam Savagen seuranta: 13 vaihetta (kuvilla)

Video: Jättiläinen LED - Adam Savagen seuranta: 13 vaihetta (kuvilla)
Video: Навязчивые идеи Адама Севиджа 2024, Heinäkuu
Anonim
Jättiläinen LED - Adam Savagen seuranta
Jättiläinen LED - Adam Savagen seuranta
Jättiläinen LED - Adam Savagen seuranta
Jättiläinen LED - Adam Savagen seuranta
Jättiläinen LED - Adam Savagen seuranta
Jättiläinen LED - Adam Savagen seuranta

Täältä löydät Giant-LED-esityksen, joka on uudelleen suunniteltu toimimaan Twitter-, YouTube- ja Twitch-varoituslamppuna. Minun päätarkoitukseni on antaa hälytys, kun Adam Savage ja testattu tiimi lähettävät twiittejä, videoita tai twitch -suoratoistoja, ja ollakseni oikeudenmukainen, pari muuta seuraamaani ihmistä, kuten Robert Cowan, Marty the Mechanic ja paljon muuta.

Ilmeisesti voisin käyttää twitteriä, nykimistä jne. Puhelimessani tai kannettavassa tietokoneessani, mutta niin monista palveluista ja ilmoituksista tulee niin paljon hälytyksiä, että sammutan ne periaatteessa, ja puhelin siirtyy hiljaiseen tilaan klo 22 jälkeen, koska se toimii myös Minulla on myös Webhooks, joka on konfiguroitu vastaanottamaan päivityksiä joistakin Biq Query -taulukoista, jotka liittyvät työhön, jotta voin kertoa minulle, onko ne päivitetty riittävästi tietueilla päivittäin.

Adafruitilla on palvelu nimeltä Adafruit IO, jota halusin kokeilla, ja olen ollut koko vuoden ajan tarkoituksena yrittää ratkaista ESP8266 uudelleen kuultuani hyviä sanoja Wemos D1 Mini -julkaisusta 3. Kaikki alkoi koota yhteen, kun löysin Astro73: n LED -valo asia -universumissa. Aloitin siitä ja muokkasin sitä hieman mittakaavaksi ja myös lisätäksesi painikkeen pohjaan ja joitain muita kosmeettisia muutoksia. Löydät remixin täältä

Lisäksi sitä voidaan ääniohjata Alexan kautta nyt myös IFTTT: n alexa -laukaisusanan myötä.

Vaihe 1: Ainekset

Jos haluat tehdä yhden näistä, osaluettelo on melko pieni ja myös edullisesti halpa. Jos et välitä odottamisesta, voit hankkia pääosat ulkomailta ja alentaa kustannuksia entisestään. Tärkein ainesosa on kuitenkin Giant LED -kotelo ja pohja. Jos sinulla on 3D -tulostin, olet valmis, jos ei, muutama online -tulostinyritys tulostaa osat. Niitä on vain 3, joten niiden pitäisi olla myös melko halpoja.

1. Wemos D1 Mini R3

2. Neopixel 8 LED

3. Painettu pohja ja jalat mustalla PETG: llä

4. Painettu linssi ja valopidike läpinäkyvää PLA: ta

5. Painonappikytkin 12 mm neliö x1

6. Pyöreä painikkeen suojus x1

7. USB -johto ja virtalähde

8. Painike M3x20

9. M3 Mutteri

10. M2x8mm pultti x2

11. M2 Mutteri x2

12. Jotkut musta, punainen ja keltainen lanka

13. 300-500 ohmin vastus

14. Pieni pala lämpökutistetta

Voit käyttää muita ESP -laitteita tai jopa Huzzahia, mutta kotelo on suunniteltu minille, jossa on kiinnitysreiät ja joka ei tarvitse liimaa sitä.

Vaihe 2: Työkalut

Tämän luomiseksi ja rakentamiseksi tarvitset seuraavat asiat

1. 3D -tulostin

2. 1,5 mm: n ja 2 mm: n kuusiokoloavain

3. Juotin ja juote

4. langankatkaisijat

5. pihdit

6. Huumorintaju

7. Leikkuuveitsi leikkaamiseen

Vaihe 3: Koodivaatimukset

Joten ennen kuin sukellamme rakenteeseen, aion hahmotella joitain vaatimuksia, jotka halusin sisällyttää tähän. Suurin osa näistä oli mielessäni ennen aloittamista, ja hahmottelin muutamia virtoja selvittääkseni, mitä aion kokeilla. Jatkossa havaitsin kuitenkin joitakin palveluihin liittyviä ongelmia, joihin halusin puuttua.

Vaatimukset.

Halusin LED -valon näyttävän minulle, kun uusi twiitti tai video julkaistiin, ja myös se tulee ilmi, kun tietty Twitch -kanava käynnistyy. Halusin myös, että hälytys jatkuu, kunnes peruutan sen, jotta jos olisin poissa jonkin aikaa, tietäisin, mitä oli tapahtunut poissa ollessani. Halusin myös, että se voidaan konfiguroida Wi-Fi-yhteyttä varten ilman, että myös ohjelmistoa on päivitettävä. Viimeinen asia, joka ilmeni myös, oli tapahtumiin vastaamisen suorana lähetyksenä, tarvitsin sen tarkistamaan 15 minuutin välein sille syötettyjen tietojen tilan

Joten kun perusasiat olivat paikoillaan, seuraava asia oli selvittää, miten kukin osa toteutettiin. Näet ideani alla siitä, mikä osa minkä tyyppisellä ohjelmistolla tai alustalla hoidettaisiin.

1. Adafruit IO, tätä käytetään hälytysten syötteiden määrittämiseen, saat tilin täältä

Aion käyttää tätä viestijonopalveluna, jossa lähetän sille viestejä IFTTT: ltä ja sitten Giant LED vastaanottaa nämä viestit, jotta se voi vaikuttaa niihin.

2. IFTTT, https://ifttt.com/ ja tätä käytetään valittujen Twitter-, YouTube- ja Twitch -kanavien skannaamiseen ja sitten tapahtuman lähettämiseen Adafruit IO: lle

3. ESP8266 -koodi näiden syötteiden lukemiseen, ja tämä poltetaan ESP8266: ksi käyttämällä standardia Arduino IDE: tä (v1.8.8)

4. Arduino -koodi, ladattu ESP8266 -laitteeseen lukemaan Adafruit IO -syötteet ja sytyttämään Neopixel

5. Arduino -koodi, jolla voit lukea hälytyksen painamalla painiketta

6. Pystyä määrittämään WiFi -sovittimen ilman ESP: n palauttamista, ja tätä varten käytin Tzapun WiFi Manager -kirjastoa, https://github.com/tzapu/WiFiManager, vaikka asennusvaihtoehdot vaativat pientä muutosta Adafruit IO -kirjastot.

Vaihe 4: Adafruit IO: n käyttöönotto

Adafruit IO: n asentaminen
Adafruit IO: n asentaminen

Tämä on ensimmäinen askel, koska tarvitset täällä luomasi käyttöavaimet ja myös syötteet, joihin IFTTT lähettää tapahtumia. Voit perustaa sekä tämän että IFTTT -tilin ja saada kaikki valmiiksi ja toimimaan ennen kuin siirryt tämän projektin Arduino -osaan.

Sen sijaan, että kopioit adafruit-esimerkkejä, löydät perusasiat täältä https://learn.adafruit.com/gmailbox/adafruit-io-se…, joka auttaa sinua asennuksessa.

Sitten GIANT -LEDille sinun on myös lisättävä oletuskanaviin seuraavat syötteet

1. väri - tämän avulla voimme vaihtaa väriä etänä esimerkiksi Alexan avulla

2. nykiminen

3. twitterfan

4. youtubefan

Sitten sinun on myös luotava uusi ryhmä, jos et ole jo kutsunut syöttöä, luo tähän ryhmään myös digitaalinen syöte. Tämän avulla voimme myös nähdä painikkeen painamisen vaikutuksen, jos halusimme laajentaa tämän laitteen käyttöä muihin tarkoituksiin.

Jos haluat myös tässä vaiheessa pelata kojelaudalla, jotta voit lisätä nämä syötteet siihen tieto- ja vianetsintätarkoituksia varten.

Vaihe 5: IFTTT: n määrittäminen

IFTTT: n määrittäminen
IFTTT: n määrittäminen
IFTTT: n määrittäminen
IFTTT: n määrittäminen

Voit myös seurata Adafruit-opasta täältä, https://learn.adafruit.com/gmailbox/ifttt-setup. Voit sitten valita Twitter-, youtube- ja twitch -toiminnot tarkkailulistojen asettamiseksi ja lähettää ne sitten asianomaisiin syötteisiin. Olen liittänyt yksinkertaisen videon, jotta näet kuinka nopea se voi olla.

Lisäksi jos haluat ohjata Alexan LED -valon väriä puheohjauksella, siellä on nyt Amazon Alexa -sovelma. Jos haluat asettaa jonkin näistä, valitse sovellus ja valitse sana sininen ja yhdistä se sitten määrittämääsi Adafruit -syötteeseen, jota kutsutaan väreksi, ja kirjoita tälle kanavalle lähetettäviksi tiedoiksi 0000ff. Voit myös välittää ylimääräisiä komentoja tällä tavalla GIANT -merkkivalolle, kuten nollata tai käynnistää uudelleen, jos haluat.

Kun määrität IFTTT -liipaisinta, sinun on valittava lähetettävät tiedot, ja tätä kutsutaan IFTTT: n "ainesosiksi". Ensimmäinen tarvitsemamme pala on "UserName", sitten välilyönti ja sitten "CreatedAt"

Valitsemme molemmat kohteet, jotta kun tiedot saapuvat ESP8266: een, voimme sitten havaita, onko kyseessä uusi twiitti ja että se eroaa samojen käyttäjien aiemmista twiiteistä. Voit nähdä, mitä tämän pitäisi pitää liitteenä olevasta kuvasta.

Vaihe 6: ESP8266 -levyjen asentaminen Arduino IDE: hen

Tässä asiat ovat hieman hankalampia, ja niiden selvittäminen voi viedä hieman enemmän aikaa. ESP8266: n lisäksi tarvitset myös Adafruit IO -kirjastoja ja voit seurata tätä opasta.

learn.adafruit.com/gmailbox/arduino-setup

Täällä on myös yksinkertainen selitys ESP8266 -levyjen lisäämisestä

Älä unohda varmistaa, että Arduino IDE -laitteesi on myös viimeisimmän version mukainen, ja käytin tätä kirjoitettaessa 1.8.8.

Toinen kirjasto, jota käytämme, on SimpleTimer, koska sen avulla voimme asettaa tausta -ajastimen, jotta voimme tarkistaa syötteet säännöllisesti. Ohjeet tähän löytyvät osoitteesta uses simpletimer https://playground.arduino.cc/Code/SimpleTimer# ladata

Vaihe 7: WiFi Managerin kirjaston asentaminen

Jotta voimme saada WiFi -määrityksen etämäärityksen, käytämme Tzapu Wifi Mangeria, lisätietoja tästä ja kirjastojen asentamisesta löydät täältä, github.com/tzapu/WiFiManager

Tämä on melko yksinkertainen asennus ulkoisille kirjastoille ja vaihtoehto on jo Arduino IDE -työkalut -osion Kirjastojen hallinta -osiossa.

Vaihe 8: ESP8266 -koodi - virheenkorjaustulostus

// Tämä koodi sisältää tulostuslausekkeita, joten voit seurata sen toimintaa Sarjamonitorin kautta

// Perustuu Adafruit IO RGB LED -lähtöesimerkkiin // Adafruit investoi aikaa ja resursseja tarjoamalla tämän avoimen lähdekoodin. // Tue Adafruitia ja avoimen lähdekoodin laitteistoa ostamalla // tuotteita Adafruitilta! // // Kirjoittanut Todd Treece Adafruit Industriesille // Tekijänoikeus (c) 2016-2017 Adafruit Industries // Lisensoitu MIT-lisenssillä. // // Kaikki yllä oleva teksti on sisällytettävä uudelleenjakeluun. // käyttää yksinkertaista ajastinta https://playground.arduino.cc/Code/SimpleTimer#Do… // https://playground.arduino.cc/Code/SimpleTimer#Do… // Ajax Jonesin muu koodi https:// leikkipaikka.arduino.cc/Code/SimpleTimer#Do // https://playground.arduino.cc/Code/SimpleTimer#Do… // ******************* ******* Määritykset ***********************************/ #define IO_USERNAME "IO Käyttäjätunnus "#define IO_KEY" IO -avaimesi "// jätä tyhjäksi, koska saamme ne Wifi Managerin kautta, näyttää toimivan hyvin tällä tavalla #define WIFI_SSID" "#define WIFI_PASS" "// emme sisällytä tätä AdafruitIO: n sisällytä sen versio // #include //https://github.com/esp8266/Arduino // tarvitaan kirjastoon #include #include #include "WiFiManager.h" //https://github.com/tzapu/WiFiManager # sisältää SimpleTimer -ajastimen; #include "AdafruitIO_WiFi.h" AdafruitIO_WiFi io (IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS); // ************************ NeoPixel -kokoonpanot ********************** ********* // #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 pixels = Adafruit_NeoPixel (PIXEL_COUNT, PIXEL_PIN, PIXEL_TYPE); // Päävärit ja oletusväri long default_color = 865554; pitkä RED_color = 2689027; // punainen #290803 pitkä VIHREÄ_väri = 865554; // vihreä #0d3512 pitkä BLUE_color = 856117; // sininen #0d1035 pitkä PURPLE_color = 2364968; // violetti #241628 pitkä BRIGHTRED_color = 15990784; // kirkkaan punainen #f40000 // ------------------------------------------ ----------------------------------------------- //aika idea otettu osoitteesta https://www.safaribooksonline.com/library/view/arduino-cookbook-2nd/9781449321185/ch12.html https://playground.arduino.cc/Code/SimpleTimer#Do… https://leikkipaikka. arduino.cc/Code/SimpleTimer#Do … const long oneSecond = 1000; // sekunti on tuhat millisekuntia const pitkä oneMinute = oneSecond * 60; const pitkä viisi minuuttia = yksi minuutti * 5; const pitkä fifteenMinutes = fiveMinutes * 3; const pitkä oneHour = fifteenMinutes * 4; // Twitter -käyttäjät, joista pidämme eniten ja nämä vilkkuvat ja kaikki muut valitsemamme twiitit muuttavat vain väriä Jono SuperTweet = {"ajaxjones", "donttrythis", "prodnose", "testcomcom}}; Jono SuperTuber = {"testattu", "cowan", "marty"}; // asettaa hälytyksen tilan, jotta voimme jatkaa vilkkumista pääsilmukan boolissa WHIZZY_TWEET = false; bool WHIZZY_TUBER = epätosi; bool WHIZZY_TWITCH = epätosi; // Tallentaa viimeisen twiitin ja youtuben, jotta voimme tarkistaa palvelun tarkistavan silloin tällöin String lasttweet = ""; Merkkijono lasttube = ""; Merkkijono lasttwitch = ""; // digitaalinen nasta 5, tämä on painike, jolla käytämme hälytysvärien nollaamista #define BUTTON_PIN 4 // painikkeen tila, ei oikeastaan sitä, jota käytetään, kun etsimme painiketta keskeytyksen bool current = false; bool last = epätosi; // aseta "värisyöte", jotta voimme testata ja lähettää värejä tarvittaessa tai käyttää Alexa -laukaisinta AdafruitIO_Feed *color = io.feed ("color"); // twitterfan -syötteen määrittäminen - Blue AdafruitIO_Feed *twitter = io.feed ("twitterfan"); // youtubefan -syötteen määrittäminen - Red AdafruitIO_Feed *youtube = io.feed ("youtubefan"); // twitch -syötteen määrittäminen - Purple AdafruitIO_Feed *twitch = io.feed ("twitch"); // aseta 'digitaalinen' syöte AdafruitIO_Feed *digital = io.feed ("input.digital"); // ------------------------------------------------ ---------------------------------------- void setup () {// aseta painikkeen nasta tulona, käytämme INPUT_PULLUP, koska meidän ei tarvitse käyttää ulkoisia vastuksia pinMode (BUTTON_PIN, INPUT_PULLUP); // Liitä keskeytys ISR -vektoriin painikkeelle attachInterrupt (digitalPinToInterrupt (BUTTON_PIN), handleInterrupt, FALLING); // Käynnistä sarja ja odota sarjamonitorin avautumista ja muodosta yhteys osoitteeseen io.adafruit.com Serial.begin (115200); while (! Sarja); // neopixel begin pixels.begin (); // Aseta alkutila punaiseksi, jotta tiedämme, että olemme offline -tilassa ja toimimme setAll (0xf4, 0x00, 0x00); // punainen // testattavaksi, tämä näyttää WiFi -verkon tilan. printDiag (Serial); WiFiManager wifiManager; // aseta takaisinsoitto, joka soitetaan, kun yhteys edelliseen WiFi -verkkoon epäonnistuu, ja siirtyy tukiasematilaan wifiManager.setAPCallback (configModeCallback); // nollaa tallennetut asetukset, poista kommentointi tästä seuraavasta rivistä pakottaaksesi WiFi Managerin testauksen, jotta voit muodostaa yhteyden // etsiä puhelimellasi tai tabletillasi näkyviin tulevaa jättiläinen LED -verkkoa //wifiManager.resetSettings (); // asettaa aikakatkaisun, kunnes määritysportaali sammutetaan // hyödyllistä tehdä kaikki uudelleen tai mennä nukkumaan // sekunneissa wifiManager.setTimeout (240); if (! wifiManager.autoConnect ("GIANT LED")) {Serial.println (F ("Yhteyden muodostaminen ja aikakatkaisu epäonnistui")); // nollaus ja yritä uudelleen viive (3000); ESP.nollaus (); viive (1000); } // testausta varten voimme nähdä, onko meillä oikeat kirjautumistiedot //Serial.println (WiFi. SSID ()); //Serial.println(WiFi.psk());//WiFi.begin(WIFI_SSID, WIFI_PASS); // while (WiFi.status ()! = WL_CONNECTED) {// delay (500); //Sarja.jälki ("."); //} Sarja.println (); Serial.println (F ("WiFi -yhteys")); Serial.println (F ("IP -osoite:")); Serial.println (WiFi.localIP ()); // nyt muodostamme yhteyden IO -palveluun Serial.print (F ("Connecting to Adafruit IO")); io.connect (); // määritä viestinkäsittelijä värisyöteelle. väri-> onMessage (kahvaMessage); // määritä viestinkäsittelijä twitterfan -syötteelle. twitter-> onMessage (twitterMessage); // määritä viestinkäsittelijä youtubefan -syötteelle. youtube-> onMessage (youtubeMessage); // määritä viestinkäsittelijä "twitch" -syötteelle. twitch-> onMessage (twitchMessage); // odota yhteyttä, kun (io.status () <AIO_CONNECTED) {Serial.print (F (".")); viive (500); } // olemme yhteydessä Serial.println (); Serial.println (io.statusText ()); //Serial.println(sizeof(SuperTweet)); //Serial.println(sizeof(SuperTweet[0])); // Tulosta luettelo odotetuista Twitter -tileistä (tavu idx = 0; idx <sizeof (SuperTweet) / sizeof (SuperTweet [0]); idx ++) {Serial.print (F ("SuperTweet [")); Serial.print (idx); Serial.print ("] = '"); Serial.print (SuperTweet [idx]); Serial.println ("" "); } // Tulosta luettelo odotetuista YouTube -tileistä (tavu idx = 0; idx get (); // pyydä syötteiden nykyisiä tiloja, joten sinun on painettava nollaus, kun se käynnistyy youtubessa -> get (); twitter-> get (); twitch-> get (); for (int i = 0; i get (); twitter-> get (); twitch-> get (); Serial.print ("tweetien saaminen"); Serial.print ("käyttöaika (t):"); Serial.println (millis () / 1000);} // ---------------- -------------------------------------------------- ----------------------- void loop () {// io.run (); vaaditaan kaikissa luonnoksissa. io.run (); ajastin. 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);}} // --------------------------------- -------------------------------------------------- ------ // aseta keskeytys poistamaan hälytys, kun painiketta painetaan, ja tarkista Internet-tyhjiön kahvaInterrupt () {WHIZZY_TWEET = väärä; WHIZZY_TUBER = epätosi; WHIZZY_TWITCH = epätosi; nykyinen = totta; // lähettää nykyisen tilan "input.digital" -syötteeseen adafruit io: ssa, jotta voimme nähdä sen digitaalisesti-> tallenna (nykyinen); 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) {delay (500); setAll (0xeb, 0xfb, 0x03); // Keltainen ebfb03}} // -------------- -------------------------------------------------- ------------------------- // tätä kutsutaan aina twitter-viestin saapuessa-aseta LED-tilaan Blue void twitterMessage (AdafruitIO_Data *data) {String tweeter = (data-> toString ()); tweeter.toLowerCase (); if ((lasttweet! = Tweeter) && (tweeter! = "")) {Lasttweet = tweeter; setAll (0x0d, 0x10, 0x35); // Aseta tweetin sininen väri Serial.print (F ("Tweet:")); Serial.print (tweeter); // tarkista suosikkibiitteri (tavu idx = 0; idx = 0) {// Tehdään tweets whizzy #0d1035 WHIZZY_TWEET = true; Serial.print ("by"); Serial.print (SuperTweet [idx]);}} Serial.println ("");}} //-------- -------------------------------------------------- ---------------------------- // tuber.toLowerCase (); if ((lasttube! = mukula) && (mukula! = "")) {lasttube = mukula; setAll (0x29, 0x08,0x03); // Aseta youtuben punainen väri 290803 Serial.print (F ("Youtube:")); Serial.println (mukula); // etsi suosikki Youtuberia (tavu idx = 0; idx = 0) {// Tehdään heidän videoistaan pörröisiä #0d1035 WHIZZY_TUBER = true; Serial.print ("by"); Serial.print (SuperTuber [idx]); }} Serial.println (""); }} // ---------------------------------------------- ------------------------------------------- // tätä kutsutaan aina, kun a "twitch" -viesti saapuu - aseta LED PURPLE void twitchMessage (AdafruitIO_Data *data) {String twitch = (data-> toString ()); twitch.toLowerCase (); if ((lasttwitch! = twitch) && (twitch! = "")) {lasttwitch = nykiminen; setAll (0x24, 0x16, 0x28); // Aseta nykimisen violetti väri #241628 Serial.print (F ("Twitch:")); Sarja.println (nykiminen); // Ei tarkistusta suosikki Twitcherille, seuraamme vain yhtä WHIZZY_TUBER = true; Serial.println (""); }} // ---------------------------------------------- ------------------------------------------- // tätä toimintoa kutsutaan aina "väri" -viesti vastaanotetaan // joka asettaa oletusvärin käynnistyksen yhteydessä viimeisen värinsyötön arvon tyhjäksi: ")); Sarja.println (data-> arvo ()); pitkä väri = data-> toNeoPixel (); // oletusväri = väri; Serial.print (F ("Vastaanotettu HEX pitkä:")); Sarja.println (väri); for (int i = 0; i <PIXEL_COUNT; ++ i) {pixels.setPixelColor (i, väri); } showStrip (); } // ----------------------------------------------- ------------------------------------------ mitätön RunningLights (tavu punainen, tavu vihreä, tavu sininen, int WaveDelay) {int Position = 0; for (int j = 0; j <NUM_LEDS; j ++) {Sijoitus ++; // = 0; // Sijainti + korko; for (int i = 0; i <NUM_LEDS; i ++) {setPixel (i, ((sin (i + Position) * 127 + 128) / 255) * punainen, ((sin (i + sijainti) * 127 + 128) / 255)*vihreä, ((sin (i + asema)*127 + 128) / 255)*sininen); } showStrip (); viive (WaveDelay); }} // ---------------------------------------------- ------------------------------------------- // Neopixel-rutiinit void setAll (tavu punainen, tavu vihreä, tavu sininen) {for (int i = 0; i getConfigPortalSSID ()); // tuli konfigurointitilaan, aseta Neo Pixel violetiksi #241628 = 2364968 // setAll (0x24, 0x16, 0x28); setAll (0xeb, 0xfb, 0x03); // Keltainen ebfb03}

Vaihe 9: Juotetaan kaikki yhdessä

Juottamalla kaikki yhdessä
Juottamalla kaikki yhdessä
Juottamalla kaikki yhdessä
Juottamalla kaikki yhdessä
Juottamalla kaikki yhdessä
Juottamalla kaikki yhdessä

Kaikki tässä mallissa on juotettu yhteen, ja niiden pitäisi olla melko helppoja hallita. Olen käyttänyt 3 eriväristä johtoa helpottamaan asioita ja ensimmäinen asia on mitata lanka neopikselille WEMOSille. Punoin ne ja laitoin pienen palan lämpökutistusta päälle ja juotin ne kuvan osoittamalla tavalla, jotta se mahtuu tasaisesti linssiin.

Nappi oli seuraava ja sopii tiukasti pohjaan. Painikkeen toinen puoli menee kohtaan Gnd ja tämä kierretään yhteen neopikselin maadoitusjohtimen kanssa. Sävytin ne sitten ja juotin ne yhdeksi WEMOSin maadoitusnastaan.

Neopixelin virtajohto menee 5 V PIn: ään. Neopikselin signaalijohto tai Di (data in) on juotettu Wemos -nastaan D1: nä. Jotkut sivustot ehdottavat 300-500 ohmin vastuksen lisäämistä sarjaan tämän kanssa, mutta toistaiseksi minulla ei ole ollut ongelmia, joten toistaiseksi se on vain suora yhteys.

Hyvän käytännön varmistamiseksi ja Adafruitin kaltaisten sivustojen neuvojen vuoksi olen asettanut 330R -vastuksen sarjaan Di -linjan kanssa neopikseliin. Sen tarkoituksena on estää renkaan ensimmäinen LED päästämästä ulos taikapikseliä ja yksinkertaisesti katkaisemalla lanka ja asettamalla vastus sisään. Pieni pala lämpökutistetta pysäyttää kaikki oikosulut. Voit leikata vastuksen melko lyhyeksi ja laittaa vain vanteen kumpaankin päähän ja tehdä saman langalla.

Painikkeen toinen johto menee suoraan nastaan D2. Pull -vastusta ei tarvita, koska tämä käsitellään ohjelmistossa asettamalla PULLUP -komento kyseistä pintaa vasten.

Siinä on periaatteessa kaikki.

Vaihe 10: 3D -tulostus

Liitteenä ovat STL -tiedostot, joita käytämme Giant LED -valolle. Tiedostot ovat astro73: n remix/uusinta ja voit napata kaikki tiedostot myös osoitteesta

Jalkoihin ja pohjaan käytin Sunlu PETG+ -lankaa, joka toimii todella hyvin Prusa i3: ssa, ja käytin joko 10 tai 20% gyroid -täytettä.

Itse LEDille olen käyttänyt Sunlu -läpinäkyvää PLA: ta ja noin 10% täyttöä samankeskisillä ylä- ja alakerroksilla.

Käytän jokaisen kanssa vain Slic3r: n varastossa olevia Prusa PET- ja Prusa PLA -asetuksia, ja ne ovat kaikki toimineet hyvin. Saan hiukan nauhoja jalkoihini, mutta puhalin vain puhalluspolttimen niiden päälle ja nauha katoaa:)

Vaihe 11: Jättiläinen LED -kokoonpano

Jättiläinen LED -kokoonpano
Jättiläinen LED -kokoonpano
Jättiläinen LED -kokoonpano
Jättiläinen LED -kokoonpano
Jättiläinen LED -kokoonpano
Jättiläinen LED -kokoonpano

Kaikki palaset menevät yhteen todella helposti, sinun on painettava M3 -mutteri pohjaan, jotta ruuvi pitää esineen yhdessä. Sinun on myös johdettava NeoPixel WEMOS -laitteeseen ensin jalkojen kautta. Mietin, kuinka joitakin liittimiä laittaa, mutta päätin, että se ei hajoa tulevaisuudessa.

Linssi on vain työntökiinnitys jalkoihin ja ne puolestaan ruuvataan pohjaan yhdellä M3x20mm pultilla. Sinun on ehkä pyöritettävä veitsi napinreiän sisäpuolella, jotta se liikkuu mukavasti ja vapaasti. Wemos pidetään paikallaan 2 M2x8 hylsypultilla, jotka on ruuvattu sisään alhaalta.

Lopuksi voit liimata palan huopaa pohjaan estääksesi liukumisen tarvittaessa.

Vaihe 12: Asennus- ja käyttöohjeet

Image
Image
Asennus- ja käyttöohjeet
Asennus- ja käyttöohjeet
Asennus- ja käyttöohjeet
Asennus- ja käyttöohjeet

Kun kaikki on valmista ja ladattu ohjelmisto, käytä jonkin verran virtaa usb: hen, ja GIANT -merkkivalon pitäisi syttyä ja LED -valo muuttuu PUNAISEKSI ja muuttuu sitten keltaiseksi. Tämä osoittaa, että se on offline -tilassa ja odottaa wifi -määritystä. Etsi puhelimella tai vastaavalla GIANT LED wifi -verkko ja muodosta yhteys, niin saat WiFi Manager -näytön. Se on skannannut lähialueesi ja syötät vain wifi -tiedot, ESP käynnistyy uudelleen ja olet nyt verkossa vihreän valon kanssa. Se muodostaa tässä vaiheessa myös yhteyden IO: hon ja varoitusvalot syttyvät, koska se ei ole vielä nähnyt aiempia viestejä. Paina painiketta muutaman kerran ja GIANT -LED on nyt valmis päivitysten saapumiseen.

Voit siirtyä Adafruit IO: n kojelautaan tässä vaiheessa ja lisätä joitain tietoja kuhunkin syötteeseen ja nähdä valojen siirtyvän hälytystilaan.

Pidä hauskaa !

Vaihe 13: Mitä muuta Giant LED voi tehdä

Mitä muuta Giant LED voi tehdä
Mitä muuta Giant LED voi tehdä
Mitä muuta Giant LED voi tehdä
Mitä muuta Giant LED voi tehdä

Kun sinulla on tällaisen suunnittelun perusteet ja IFTTT: n avulla voit käyttää sitä moniin asioihin. Gmailin postilaatikon hälytys on yksi helppo, ja koska Adafruit toimii myös Webhookien kanssa, muut ohjelmat voivat lähettää tietoja myös siihen. Minulla on tällä hetkellä yksi sellainen, joka seuraa joitakin Big Query -tietojen latauksia osana työprojektia.

Myös painikkeella voit käyttää sitä muiden GIANT -merkkivalojen ilmoittamiseen. Saatat olla yksi eri taloissa ja käyttää sitä etäilmaisimena saadaksesi toisen osapuolen painamaan painiketta valon peruuttamiseksi.

Tässä on hyödyllinen linkki webhook -menetelmään lähettää tiedot syötteeseen. Tässä tapauksessa se käyttää IFTTT -sovelmaa, mutta voit yhtä helposti käyttää CURL -menetelmää pythonin kanssa.

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

Itse asiassa on jopa mahdollista sovittaa OLED 128x32 pohjaan LED -valon täydentämiseksi tekstisisällöllä, ja työskentelen parhaillaan sen parissa ja päivitän STL: t ja annan koodin IO: n hyödyntämiseksi myös tämän kanssa.

Suositeltava: