Tartalomjegyzék:

Óriás LED - Adam Savage követése: 13 lépés (képekkel)
Óriás LED - Adam Savage követése: 13 lépés (képekkel)

Videó: Óriás LED - Adam Savage követése: 13 lépés (képekkel)

Videó: Óriás LED - Adam Savage követése: 13 lépés (képekkel)
Videó: Part 1 - Around the World in 80 Days Audiobook by Jules Verne (Chs 01-14) 2024, Július
Anonim
Óriás LED - Adam Savage követése
Óriás LED - Adam Savage követése
Óriás LED - Adam Savage követése
Óriás LED - Adam Savage követése
Óriás LED - Adam Savage követése
Óriás LED - Adam Savage követése

Itt talál egy óriás LED-et, amely Twitter, YouTube és Twitch riasztó lámpaként működik. Számomra a fő cél az, hogy riasztást adjak, amikor Adam Savage és a tesztelt csapat tweeteket, videókat vagy twitch -streameket ad, és hogy őszinte legyek, pár másik ember, akiket követek, például Robert Cowan, Marty the Mechanic és még sokan mások.

Nyilván használhatnám a twittert, a rángatózást stb. Az egyik webhooksom úgy is konfigurálva van, hogy frissítéseket kapjon néhány Biq Query táblából, amelyek munkához kapcsolódnak, hogy tudassa velem, ha azokat megfelelően frissítették, elegendő számú rekorddal minden nap.

Az Adafruitnak van egy Adafruit IO nevű szolgáltatása, amelyet ki akartam próbálni, és egész évben azt terveztem, hogy megpróbálom újra kezelni az ESP8266-at, miután hallottam néhány jó szót a Wemos D1 Mini 3. kiadásáról. Az egész összeállt, amikor találtam egy Az Astro73 LED -es tervezése a dologiversen. Ezzel kezdtem, és kicsit átdolgoztam a méretarányhoz, valamint egy nyomógombot az alaphoz és néhány egyéb kozmetikai változtatáshoz. A remixet itt találod

Ráadásul most Alexa -n keresztül hangvezérelhető, az IFTTT alexa trigger szó megjelenésével.

1. lépés: Hozzávalók

Ha ezek közül egyet szeretne készíteni, akkor az alkatrészek listája meglehetősen kicsi és olcsó is. Ha nem bánja a várakozást, akkor beszerezheti a fő alkatrészeket a tengerentúlról, és még tovább csökkentheti a költségeket. A fő összetevő azonban a Giant LED tok és az alap. Ha rendelkezik 3D nyomtatóval, akkor minden készen áll, ha nem, néhány online nyomtatócég nyomtatni fogja az alkatrészeket. Csak 3 van, tehát ez is meglehetősen olcsó.

1. Wemos D1 Mini R3

2. Neopixel 8 LED

3. Nyomtatott talp és lábak fekete PETG színben

4. Nyomtatott lencse és fénytartó átlátszó PLA -ban

5. Nyomógombos kapcsoló 12 mm -es négyzet x1

6. Kerek nyomógombos kupak x1

7. USB vezeték és adapter a tápellátáshoz

8. M3x20 gombfej

9. M3 anya

10. M2x8mm csavar x2

11. M2 anya x2

12. Néhány fekete, piros és sárga huzal

13. 300-500 Ohm ellenállás

14. Kis darab hőtároló

Használhat más ESP -eszközöket, vagy akár egy Huzzah -t is, de a tokot a mini számára tervezték, amely rögzítési lyukakkal rendelkezik, és nem kell ragasztani.

2. lépés: Eszközök

Ennek létrehozásához és létrehozásához a következőkre lesz szüksége

1. 3D nyomtató

2. 1,5 mm -es és 2 mm -es imbuszkulcs

3. Forrasztópáka és forrasztópáka

4. Wirecutters

5. Fogó

6. Humorérzék

7. Szike a vágáshoz

3. lépés: Kódkövetelmények

Mielőtt tehát belemerülnénk az építésbe, felvázolok néhány követelményt, amelyeket ebbe bele akartam foglalni. Ezek nagy részét a kezdés előtt gondoltam, és felvázoltam néhány folyamatot, hogy megtudjam, mit fogok kipróbálni. Ahogy folytatódott, felfedeztem néhány problémát a szolgáltatásokkal, amelyeket meg akartam oldani.

Követelmények.

Azt akartam, hogy a LED megmutassa, ha új tweetet vagy videót tettek közzé, és az is kiderül, amikor egy specifikus Twitch csatorna indul. Azt is szerettem volna, ha a riasztás addig tart, amíg le nem mondom, hogy ha egy ideig távol lennék, tudnám, mi történt, amíg távol voltam. Azt is szerettem volna, hogy konfigurálható legyen a Wi-Fi hozzáféréshez anélkül, hogy a szoftvert újra kellene frissíteni. Az utolsó dolog, ami szintén felmerült, az volt, hogy élőben válaszoltam az eseményekre, szükségem volt rá, hogy 15 percenként ellenőrizze a hozzá betöltött adatok állapotát

Tehát az alapok birtokában a következő dolog az volt, hogy ki kell dolgozni, hogyan fogják végrehajtani az egyes részeket. Az alábbi ötleteket láthatod arról, hogy melyik részt milyen típusú szoftver vagy platform kezeli.

1. Adafruit IO, ez a riasztások hírcsatornáinak beállítására szolgál, itt kaphat fiókot

Ezt üzenetsor -szolgáltatásként fogom használni, ahol üzeneteket fogok küldeni az IFTTT -től, majd a Giant LED megkapja ezeket az üzeneteket, hogy cselekedni tudjon rajtuk.

2. IFTTT, https://ifttt.com/ és ez a kiválasztott Twitter, YouTube és Twitch csatornák beolvasására szolgál, majd elküldi az eseményt az Adafruit IO -nak

3. ESP8266 kód ezeknek a hírcsatornáknak az olvasásához, és ezt a szabványos Arduino IDE (v1.8.8) használatával égetik el az ESP8266 -ba

4. Arduino kód, betöltve az ESP8266 -ba az Adafruit IO -hírcsatornák olvasásához és a Neopixel meggyújtásához

5. Arduino kódot nyomógomb olvasásához a riasztás törléséhez

6. Tudja konfigurálni a WiFi adaptert anélkül, hogy újra kellene írnia az ESP -t, és ehhez a Tzapu WiFi Manager könyvtárát használtam, https://github.com/tzapu/WiFiManager, bár a beállítási beállítások egy kis változtatást igényeltek a Adafruit IO könyvtárak.

4. lépés: Az Adafruit IO beállítása

Az Adafruit IO beállítása
Az Adafruit IO beállítása

Ez az első lépés, mivel szüksége lesz az itt létrehozott hozzáférési kulcsokra, valamint létre kell hoznia azokat a hírcsatornákat, amelyekre az IFTTT eseményeket küld. Beállíthatja mind ezt, mind az IFTTT fiókot, és nagyjából mindent beállíthat és működhet, mielőtt áttér a projekt Arduino részére.

Ahelyett, hogy lemásolná az adafruit példákat, itt megtalálhatja az alapokat: https://learn.adafruit.com/gmailbox/adafruit-io-se…, amely segít beállítani.

Ezután a GIANT LED -hez hozzá kell adnia az alapértelmezett csatornákhoz a következő hírcsatornákat

1. szín - ez lehetővé teszi, hogy távolról megváltoztassuk a színt, például Alexával

2. rángatózás

3. twitterfan

4. youtubefan

Akkor is létre kell hoznia egy új csoportot, ha még nem hívta meg a bemenetet, akkor ebbe a csoportba hozzon létre egy digitális nevű hírcsatornát is. Ez lehetővé teszi, hogy lássuk a gomb megnyomásának hatását is, ha más célokra szeretnénk bővíteni az eszköz használatát.

Ha ezen a ponton is szeretne játszani a műszerfallal, hogy ezeket a hírcsatornákat információs és hibakeresési célokból hozzáadhassa.

5. lépés: Az IFTTT beállítása

Az IFTTT beállítása
Az IFTTT beállítása
Az IFTTT beállítása
Az IFTTT beállítása

Az Adafruit útmutatót itt is követheti, https://learn.adafruit.com/gmailbox/ifttt-setup. Ezután kiválaszthatja a Twitter, a YouTube és a twitch műveleteket a figyelőlisták beállításához, majd elküldheti ezeket a megfelelő hírcsatornákba. Csatoltam egy egyszerű videót, hogy lássátok, milyen gyors lehet.

Ezenkívül, ha Alexa segítségével szeretné vezérelni LED -je színét, most van egy Amazon Alexa kisalkalmazás. Az egyik beállításához válassza ki az alkalmazást, és válassza ki a kék szót, majd csatlakoztassa az Adafruit hírcsatornához, amelyet színnek nevezett, és írja be a 0000ff értéket az adott csatornára küldendő adatként. Ezenkívül további parancsokat is átadhat a GIANT LED -nek, például visszaállíthatja vagy újraindíthatja, ha szeretné.

Az IFTTT trigger aktiválásakor ki kell választania az elküldendő adatokat, és ezt az IFTTT "Hozzávalók" -nak nevezi. Az első darab, amire szükségünk van, a "UserName", majd egy szóköz, majd a "CreatedAt"

Mindkét elemet úgy választjuk ki, hogy amikor az adatok megérkeznek az ESP8266 -ba, akkor észlelni tudjuk, hogy új tweetről van -e szó, és hogy eltér -e az azonos felhasználók korábbi tweetjeitől. A mellékelt képen láthatja, hogy ennek mi kell.

6. lépés: Az ESP8266 táblák telepítése az Arduino IDE -be

Itt kicsit bonyolultabbak a dolgok, és egy kicsit több időbe telhet a rendezés. Az ESP8266 mellett szüksége van az Adafruit IO könyvtárakra is, és követheti ezt az útmutatót.

learn.adafruit.com/gmailbox/arduino-setup

Az ESP8266 táblák hozzáadásának egyszerű magyarázata itt is megtalálható:

Ne felejtse el megbizonyosodni arról, hogy az Arduino IDE is a legújabb verziónak felel meg, és ennek írásakor az 1.8.8 -at használtam.

Egy másik általunk használt könyvtár a SimpleTimer, mivel ez lehetővé teszi számunkra, hogy beállítsunk egy háttér -időzítőt, hogy rendszeresen ellenőrizhessük a hírcsatornákat, erre vonatkozó utasításokat a következő helyen talál: uses simpletimer https://playground.arduino.cc/Code/SimpleTimer# Letöltés

7. lépés: A WiFi Manager könyvtár telepítése

Annak érdekében, hogy a WiFi beállítások távoli konfigurációját megkaphassuk, a Tzapu Wifi Mangert fogjuk használni, ennek részleteit és a könyvtárak telepítésének módját itt találja, github.com/tzapu/WiFiManager

Ez egy meglehetősen egyszerű külső könyvtárak telepítése, és ez az opció már megtalálható az Arduino IDE eszközök szakasz Könyvtár kezelése szakaszában.

8. lépés: Az ESP8266 kód - hibakeresési nyomtatással

// Ez a kód nyomtatási utasításokat tartalmaz, így nyomon követheti működését a Soros monitoron keresztül

// Az Adafruit IO RGB LED kimeneti példa alapján // Az Adafruit időt és erőforrásokat fektet be a nyílt forráskód biztosításába. // Kérjük, támogassa az Adafruitot és a nyílt forráskódú hardvert az Adafruit termékeinek megvásárlásával! // // Todd Treece írta az Adafruit Industries számára // Copyright (c) 2016-2017 Adafruit Industries // Az MIT licenc alapján engedélyezett. // // A fenti szöveget minden újraelosztásnak tartalmaznia kell. // az egyszerűsítőt használja https://playground.arduino.cc/Code/SimpleTimer#Do… // https://playground.arduino.cc/Code/SimpleTimer#Do… // az Ajax Jones többi kódja https:// játszótér.arduino.cc/Code/SimpleTimer#Do // https://playground.arduino.cc/Code/SimpleTimer#Do… // ******************* ******* Konfiguráció ***********************************/ #define IO_USERNAME "az IO Felhasználónév "#define IO_KEY" your IO Key "// hagyja üresen, mivel a Wifi -kezelőn keresztül kapjuk meg, úgy tűnik, jól működik így tartalmazza annak verzióját // #include //https://github.com/esp8266/Arduino // könyvtárhoz szükséges #include #include #include "WiFiManager.h" //https://github.com/tzapu/WiFiManager # tartalmazza a SimpleTimer időzítőt; #include "AdafruitIO_WiFi.h" AdafruitIO_WiFi io (IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS); // ************************ NeoPixel konfigurációk ********************** ********* // #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 pixel = Adafruit_NeoPixel (PIXEL_COUNT, PIXEL_PIN, PIXEL_TYPE); // Fő színek és az alapértelmezett szín hosszú default_color = 865554; hosszú RED_color = 2689027; // piros #290803 hosszú GREEN_color = 865554; // zöld #0d3512 hosszú BLUE_color = 856117; // kék #0d1035 hosszú PURPLE_color = 2364968; // lila #241628 hosszú BRIGHTRED_color = 15990784; // élénkvörös #f40000 // ------------------------------------------ ----------------------------------------------- //idő ötlet a https://www.safaribooksonline.com/library/view/arduino-cookbook-2nd/9781449321185/ch12.html https://playground.arduino.cc/Code/SimpleTimer#Do… https:// játszótérről származik. arduino.cc/Code/SimpleTimer#Do… const long oneSecond = 1000; // a másodperc ezer ezredmásodperc konst hosszú oneMinute = oneSecond * 60; const hosszú fiveMinutes = oneMinute * 5; const hosszú fifteenMinutes = fiveMinutes * 3; const long oneHour = tizenöt perc * 4; // A Twitter felhasználók, akiket a legjobban kedvelünk, ezek villogni fognak, és az összes többi tweet, amelyet választottunk, csak megváltoztatja a színt. String SuperTweet = {"ajaxjones", "donttrythis", "prodnose", "testcom"}; String SuperTuber = {"tesztelt", "cowan", "marty"}; // beállítja a riasztási állapotot, hogy továbbra is villoghassunk a LED -eken a főhurokban. WHIZZY_TWEET = false; bool WHIZZY_TUBER = hamis; bool WHIZZY_TWITCH = hamis; // Elmenti az utolsó tweetet és a youtube -ot, hogy a szolgáltatást időnként ellenőrizhessük. String lasttweet = ""; String lasttube = ""; String lasttwitch = ""; // 5. digitális tű, ez az a gomb, amellyel visszaállítjuk a riasztási színeket #define BUTTON_PIN 4 // gombállapot, valójában nem az, amit használunk, mivel keressük a gombot az interupt bool current = false; bool last = hamis; // állítsa be a "színes" hírcsatornát, csak hogy tesztelhessük és elküldhessük a színeket igény szerint, vagy használhatjuk az Alexa trigger AdafruitIO_Feed *color = io.feed ("color"); // a 'twitterfan' feed beállítása - Blue AdafruitIO_Feed *twitter = io.feed ("twitterfan"); // a 'youtubefan' feed beállítása - Red AdafruitIO_Feed *youtube = io.feed ("youtubefan"); // a 'twitch' feed beállítása - Purple AdafruitIO_Feed *twitch = io.feed ("twitch"); // a 'digitális' feed beállítása AdafruitIO_Feed *digital = io.feed ("input.digital"); // ------------------------------------------------ ---------------------------------------- void setup () {// állítsa be a gombcsap bemenetként, az INPUT_PULLUP -ot használjuk, mivel nem kell külső pinMode ellenállásokat használni (BUTTON_PIN, INPUT_PULLUP); // Csatoljon egy megszakítást az ISR vektorhoz az attachInterrupt (digitalPinToInterrupt (BUTTON_PIN), handleInterrupt, FALLING) gombhoz; // Indítsa el a sorozatot, és várja meg, amíg a soros monitor megnyílik, majd csatlakozzon az io.adafruit.com oldalhoz. Serial.begin (115200); while (! Sorozat); // neopixel begin pixels.begin (); // Állítsa pirosra az első állapotot, hogy tudjuk, hogy offline állapotban vagyunk és setAll (0xf4, 0x00, 0x00); // piros // tesztelésre, ez mutatja a WiFi WiFi állapotát.printDiag (Serial); WiFiManager wifiManager; // a visszahívás beállítása, amelyet akkor hívnak meg, ha egy korábbi WiFi -hez való csatlakozás sikertelen, és belép a hozzáférési pont módba wifiManager.setAPCallback (configModeCallback); // állítsa vissza a mentett beállításokat, szüntesse meg a megjegyzést a következő sorban, hogy kényszerítse a WiFi Manager tesztelését, így csatlakozhat // telefonjával vagy táblagépével keresse meg a megjelenő Giant LED hálózatot //wifiManager.resetSettings (); // beállítja az időtúllépést, amíg a konfigurációs portál ki nem kapcsol // hasznos az egész újrapróbálkozásához vagy alvásig // másodpercek alatt wifiManager.setTimeout (240); if (! wifiManager.autoConnect ("GIANT LED")) {Serial.println (F ("nem sikerült csatlakozni, és nem sikerült elérni az időtúllépést")); // alaphelyzetbe állítás és újrapróbálkozás késleltetés (3000); ESP.reset (); késleltetés (1000); } // teszteléshez láthatjuk, hogy megfelelő hitelesítő adatokkal rendelkezünk -e //Serial.println (WiFi. SSID ()); //Serial.println(WiFi.psk());//WiFi.begin(WIFI_SSID, WIFI_PASS); // while (WiFi.status ()! = WL_CONNECTED) {// delay (500); //Serial.print ("."); //} Serial.println (); Serial.println (F ("WiFi csatlakoztatva")); Serial.println (F ("IP -cím:")); Serial.println (WiFi.localIP ()); // most csatlakozunk a Serial.print IO szolgáltatáshoz (F ("Csatlakozás Adafruit IO -hoz")); io.connect (); // üzenetkezelő beállítása a 'színes' hírcsatornához. color-> onMessage (handleMessage); // üzenetkezelő beállítása a "twitterfan" feedhez. twitter-> onMessage (twitterMessage); // üzenetkezelő beállítása a "youtubefan" hírcsatornához. youtube-> onMessage (youtubeMessage); // üzenetkezelő beállítása a "twitch" feedhez. twitch-> onMessage (twitchMessage); // várjon a kapcsolatra, miközben (io.status () <AIO_CONNECTED) {Serial.print (F (".")); késleltetés (500); } // össze vagyunk kötve Serial.println (); Serial.println (io.statusText ()); //Serial.println(sizeof(SuperTweet)); //Serial.println(sofof(SuperTweet[0])); // Nyomtassa ki a várt Twitter -fiókok listáját (byte idx = 0; idx <sizeof (SuperTweet) / sizeof (SuperTweet [0]); idx ++) {Serial.print (F ("SuperTweet [")); Serial.print (idx); Sorozat.nyomtatás ("] = '"); Serial.print (SuperTweet [idx]); Serial.println ("" "); } // Nyomtassa ki a YouTube -fiókok listáját, amelyekre várunk (byte idx = 0; idx get (); // kérje a hírcsatornák meglévő állapotát, ezért meg kell nyomnia a visszaállítást, amikor elindul a youtube -> get (); twitter-> get (); twitch-> get (); for (int i = 0; i get (); twitter-> get (); twitch-> get (); Serial.print ("tweetek beszerzése"); Serial.print ("uptime (s):"); Serial.println (millis () / 1000);} // ---------------- -------------------------------------------------- ----------------------- void loop () {// io.run (); minden vázlathoz kötelező. io.run (); időzítő. 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);}} // --------------------------------- -------------------------------------------------- ------ // állítsa be a megszakítást, hogy törölje a riasztást, amikor megnyomja a gombot, és ellenőrizze az internetes üres fogantyútInterrupt () {WHIZZY_TWEET = hamis; WHIZZY_TUBER = hamis; WHIZZY_TWITCH = hamis; jelenlegi = igaz; // az aktuális állapot elküldése az 'input.digital' feedbe az adafruit io-n, hogy láthassuk digitális-> save (current); for (int i = 0; i ")); Serial.print (aktuális); Serial.print (F (" és alapértelmezett szín ")); Serial.println (default_color); current = false; digital-> save (current); while (WiFi.status ()! = WL_CONNECTED) {delay (500); setAll (0xeb, 0xfb, 0x03); // Sárga ebfb03}} // -------------- -------------------------------------------------- ------------------------- // ezt hívja, amikor "twitter" üzenet érkezik-állítsa a LED-et Blue void twitterMessage (AdafruitIO_Data *adatok) {String tweeter = (adatok-> toString ()); tweeter.toLowerCase (); if ((lasttweet! = Tweeter) && (tweeter! = "")) {Lasttweet = tweeter; setAll (0x0d, 0x10, 0x35); // Állítsa be a tweet kék színét Serial.print (F ("Tweet:")); Serial.print (tweeter); // ellenőrizze, hogy van -e kedvenc magassugárzó a (byte idx = 0; idx = 0) esetén {/ tweets whizzy #0d1035 WHIZZY_TWEET = true; Serial.print ("by"); Serial.print (SuperTweet [idx]);}} Serial.println ("");}} // --------- -------------------------------------------------- ---------------------------- // tuber.toLowerCase (); if ((lasttube! = gumó) && (gumó! = "")) {lasttube = gumó; setAll (0x29, 0x08,0x03); // Állítsa be a youtube piros színét 290803 Serial.print (F ("Youtube:")); Soros.println (gumó); // keresse meg a kedvenc Youtubert (bájt idx = 0; idx = 0) {// Lehetővé tesszük, hogy videói pörgősek legyenek #0d1035 WHIZZY_TUBER = true; Serial.print ("by"); Serial.print (SuperTuber [idx]); }} Serial.println (""); }} // ---------------------------------------------- ------------------------------------------- // ezt hívják, amikor a "twitch" üzenet érkezik - állítsa a LED -et PURPLE void twitchMessage (AdafruitIO_Data *adatok) {String twitch = (adat-> toString ()); twitch.toLowerCase (); if ((lasttwitch! = twitch) && (twitch! = "")) {lasttwitch = rándulás; setAll (0x24, 0x16, 0x28); // Állítsa be a rángatózás lila színét #241628 Soros.print (F ("Twitch:")); Soros.println (rángatózás); // Nincs csekk a kedvenc Twitcherhez, csak egyet követünk WHIZZY_TUBER = true; Serial.println (""); }} // ---------------------------------------------- ------------------------------------------- // ezt a funkciót bármikor meghívják "színes" üzenet érkezik //, amely az alapértelmezett színt állítja be az indításkor az utolsó színbetáplálási érték alapján: ")); Serial.println (adat-> érték ()); hosszú szín = adatok-> toNeoPixel (); // default_color = szín; Serial.print (F ("Fogadott HEX hosszú:")); Soros.println (színes); for (int i = 0; i <PIXEL_COUNT; ++ i) {pixels.setPixelColor (i, színes); } showStrip (); } // ----------------------------------------------- ------------------------------------------ érvénytelen RunningLights (bájt piros, bájt zöld, bájt kék, int WaveDelay) {int Pozíció = 0; for (int j = 0; j <NUM_LEDS; j ++) {Pozíció ++; // = 0; // Pozíció + arány; for (int i = 0; i <NUM_LEDS; i ++) {setPixel (i, ((sin (i + Position) * 127 + 128) / 255) * piros, ((sin (i + Position) * 127 + 128) / 255)*zöld, ((sin (i + pozíció)*127 + 128) / 255)*kék); } showStrip (); késleltetés (WaveDelay); }} // ---------------------------------------------- ------------------------------------------- // Neopixel rutinok void setAll (bájt piros, bájt zöld, bájt kék) {for (int i = 0; i getConfigPortalSSID ()); // belépett konfigurációs módba, állítsa a Neo Pixelt lila színre #241628 = 2364968 // setAll (0x24, 0x16, 0x28); setAll (0xeb, 0xfb, 0x03); // sárga ebfb03}

9. lépés: Forrasztás együtt

Összeforrasztani
Összeforrasztani
Összeforrasztani
Összeforrasztani
Összeforrasztani
Összeforrasztani

Ebben a kialakításban minden össze van forrasztva, és könnyen kezelhetőnek kell lennie. Három különböző színű vezetéket használtam, hogy megkönnyítsem a dolgokat, és az első dolog az, hogy megmérem a neopixel vezetékét a WEMOS -hoz. Befonom őket, és ráhelyezek egy kis darab zsugort, majd forrasztom őket az ábrán látható módon, hogy laposan feküdjön a lencsében.

A gomb a következő volt, és szorosan illeszkedik az alaphoz. A gomb egyik oldala a Gnd -hez megy, és ez össze van csavarva a neopixel földelő vezetékével. Ezután ónoztam és forrasztottam őket egyként a WEMOS földelőcsapjába.

A Neopixel tápvezetéke az 5V PIn -re megy. A neopixel jelvezetéke vagy Di (adat in) D1 -ként van forrasztva a Wemos csaphoz. Vannak olyan oldalak, amelyek 300-500 ohmos ellenállás soros beillesztését javasolják ezzel, de eddig még nem volt gondom, így ez most csak egy közvetlen kapcsolat.

A jó gyakorlat biztosítása érdekében és az olyan webhelyek tanácsai alapján, mint az Adafruit, egy 330R ellenállást soroltam a Di vonallal a neopixelhez. Ennek célja, hogy megakadályozza, hogy a gyűrű első LED -je kiengedje a varázslatos pixies -t, és egyszerűen a vezeték elvágásával és az ellenállás behelyezésével történjen. Elég rövidre vághatja az ellenállást, és csak tegyen egy karikát mindkét végébe, és ugyanezt tegye a vezetékkel.

A gomb másik huzalja közvetlenül a D2 érintkezőhöz megy. Nincs szükség felhúzó ellenállásra, mivel ezt a szoftveren belül úgy kezelik, hogy egy PULLUP parancsot adnak a csaphoz.

Alapvetően ez minden.

10. lépés: 3D nyomtatás

Itt csatoljuk az STL fájlokat, amelyeket a Giant LED -hez használunk. A fájlok az astro73 remixje/átdolgozása, és az összes fájlt a https://www.thingiverse.com/thing:3290837 oldalról is megragadhatja.

A lábakhoz és az alaphoz Sunlu PETG+ szálat használtam, amely nagyon jól működik a Prusa i3 -on, és 10 vagy 20% -os gyroid töltést használtam.

A LED -hez Sunlu átlátszó PLA -t használtam, és körülbelül 10% -os betöltést használtam koncentrikus felső és alsó réteggel.

Mindegyikkel csak a Prusa PET és Prusa PLA beállításokat használom a Slic3r -ben, és mindegyik jól sikerült. Kapok egy kis húzást a lábakon, de csak fúvókát fúvok rájuk, és a zsinór eltűnik:)

11. lépés: Óriás LED -szerelés

Óriás LED szerelvény
Óriás LED szerelvény
Óriás LED szerelvény
Óriás LED szerelvény
Óriás LED szerelvény
Óriás LED szerelvény

Az összes darab nagyon könnyen összeilleszkedik, be kell nyomni egy M3 anyát az alapba, hogy a csavar össze tudja tartani a dolgot. A NeoPixelt a lábakon keresztül először is a WEMOS -hoz kell vezetni. Gondolkoztam azon, hogyan tegyek be néhány csatlakozót, de úgy döntöttem, hogy a jövőben nem fog szétesni.

Az objektív csak a lábakra illeszthető, és azokat egyetlen M3x20 mm -es csavarral rögzítik az alaphoz. Előfordulhat, hogy kést kell futtatnia a gomblyuk belsejében, hogy az szépen és szabadon mozogjon. A Wemos alulról 2 M2x8 csavarral van rögzítve.

A befejezéshez ragaszthat egy darab filcet az alapra, hogy szükség esetén megakadályozza a csúszást.

12. lépés: Telepítési és kezelési utasítások

Image
Image
Telepítési és üzemeltetési utasítások
Telepítési és üzemeltetési utasítások
Telepítési és üzemeltetési utasítások
Telepítési és üzemeltetési utasítások

Ha minden készen áll, és a feltöltött szoftver áramellátást biztosít az USB -n, és a GIANT LED -nek fel kell jönnie, és a LED PIROS, majd sárga színűre vált. Ez azt mutatja, hogy offline állapotban van, és várja a wifi konfigurálását. Telefon vagy hasonló használatával keresse meg a GIANT LED wifi hálózatot, és csatlakozzon, és megjelenik a WiFi Manager képernyő. Ez beolvasta a helyi területet, és csak be kell írnia a wifi adatait, az ESP újraindul, és most online lesz, zöld lámpával. Ezen a ponton az IO -hoz is csatlakozik, és a figyelmeztető lámpák felvillannak, mivel még nem látott korábbi üzeneteket. Nyomja meg néhányszor a gombot, és a GIANT LED készen áll a frissítések megérkezésére.

Ekkor léphet az Adafruit IO műszerfalára, és hozzáadhat néhány adatot minden hírcsatornához, és láthatja, hogy a lámpák riasztási módba kapcsolnak.

Érezd jól magad !

13. lépés: Mit tud még az óriás LED?

Mire képes a Giant LED
Mire képes a Giant LED
Mire képes a Giant LED
Mire képes a Giant LED

Ha megvan az ilyen tervezés alapjai, és az IFTTT segítségével sok mindenre használhatja. A Gmail beérkező levelek riasztása egyszerű, és mivel az Adafruit a Webhooks -al is működik, más programok is küldhetnek adatokat arra. Jelenleg az egyiket beállítom, hogy nyomon kövessem néhány Big Query adatfeltöltést egy munkaprojekt részeként.

A gombbal más GIANT LED -eket is jelezhet, lehet, hogy van egy másik házban, és távoli jelzőként használhatja, hogy a másik fél megnyomja a gombot a fény kikapcsolásához.

Itt található egy hasznos link a webhook módszerről, amely az adatokat a hírcsatornába küldi. Ebben az esetben IFTTT kisalkalmazást használ, de ugyanolyan könnyen használhat CURL módszert a python segítségével.

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

Valójában akár egy OLED 128x32 -es illeszthető az alapba, hogy kiegészítse a LED -et némi szöveges tartalommal, és jelenleg ezen dolgozom, és frissítem az STL -eket, és megadom a kódot az IO használatához.

Ajánlott: