Obsah:

Giant LED - Tracking Adam Savage: 13 Steps (with Pictures)
Giant LED - Tracking Adam Savage: 13 Steps (with Pictures)

Video: Giant LED - Tracking Adam Savage: 13 Steps (with Pictures)

Video: Giant LED - Tracking Adam Savage: 13 Steps (with Pictures)
Video: Adam Savage: My obsession with objects and the stories they tell 2024, Červenec
Anonim
Giant LED - Tracking Adam Savage
Giant LED - Tracking Adam Savage
Giant LED - Tracking Adam Savage
Giant LED - Tracking Adam Savage
Giant LED - Tracking Adam Savage
Giant LED - Tracking Adam Savage

Zde najdete ztvárnění obří LED diody, která má sloužit jako výstražná kontrolka Twitter, YouTube a Twitch. Hlavním účelem pro mě je poskytnout upozornění, když jsou k dispozici tweety, videa nebo twitch streamy od Adama Savage a testovaného týmu, a abych byl spravedlivý, pár dalších lidí, které sleduji, jako Robert Cowan, Marty the Mechanic a další.

Očividně bych na svém telefonu nebo notebooku mohl používat twitter, twitch atd., Ale existuje tolik upozornění z tolika služeb a upozornění, že je v podstatě všechny vypnu, a navíc telefon přejde do tichého režimu po 22 hodině, protože to bude fungovat i s Webhooks Mám také jeden nakonfigurovaný pro příjem aktualizací z některých tabulek Biq Query, které souvisejí s prací, aby mi dal vědět, zda byly aktualizovány v pořádku s dostatečným počtem záznamů každý den.

Adafruit má službu nazvanou Adafruit IO, kterou jsem chtěl vyzkoušet, a celý rok jsem měl v úmyslu zkusit znovu vyřešit ESP8266 poté, co jsem slyšel pár dobrých slov o vydání Wemos D1 Mini 3. Všechno se začalo spojovat, když jsem našel design pro LED na thingiverse od Astro73. Začal jsem s tím a trochu jsem to přepracoval pro měřítko a také pro přidání tlačítka do základny a některé další kosmetické změny. Remix najdete zde

Navíc to může být nyní ovládáno hlasem prostřednictvím Alexa také s příchodem spouštěcího slova IFTTT alexa.

Krok 1: Ingredience

Pokud chcete vytvořit jeden z nich, seznam dílů je poměrně malý a také poměrně levný. Pokud vám nevadí čekání, můžete získat hlavní části ze zámoří a ještě více snížit náklady. Hlavní složkou je však obří LED pouzdro a základna. Pokud máte 3D tiskárnu, jste připraveni, pokud ne, existuje několik online tiskáren, které budou díly tisknout. Existují pouze 3, takže by měly být také poměrně levné.

1. Wemos D1 Mini R3

2. Neopixel 8 LED

3. Vytištěná základna a nohy v černém PETG

4. Potištěný objektiv a držák světla v průhledném PLA

5. Tlačítkový spínač 12 mm čtverec x1

6. Kulatá tlačítková krytka x1

7. Kabel USB a adaptér pro napájení

8. Hlavice tlačítka M3x20

9. Matice M3

10. Šroub M2x8mm x2

11. Matice M2 x2

12. Nějaký černý, červený a žlutý drát

13. Rezistor 300-500 Ohm

14. Malý kousek heatshrink

Můžete použít jiná zařízení ESP nebo dokonce Huzzah, ale pouzdro bylo navrženo pro mini, které má montážní otvory a zabraňuje tomu, aby bylo nutné jej lepit.

Krok 2: Nástroje

K vytvoření a vytvoření tohoto budete potřebovat následující

1. 3D tiskárna

2. Imbus klíč 1,5 mm a 2 mm

3. Páječka a pájka

4. Řezače drátů

5. Kleště

6. Smysl pro humor

7. Skalpel pro ořezávání

Krok 3: Požadavky na kód

Takže než se ponoříme do sestavení, nastíním některé požadavky, které jsem do toho chtěl zahrnout. Většinu z nich jsem měl na mysli před začátkem a načrtl jsem několik toků, abych zjistil, co se chystám zkusit. Jak to šlo dál, objevil jsem nějaké problémy se službami, které jsem chtěl řešit.

Požadavky.

Chtěl jsem, aby mi LED dioda ukázala, kdy byl zveřejněn nový tweet nebo video, a také se ukázalo, že se spustí speciální kanál Twitch. Také jsem chtěl, aby výstraha pokračovala, dokud ji nezruším, takže pokud budu chvíli pryč, budu vědět, co se stalo, když jsem byl pryč. Také jsem chtěl, aby to bylo konfigurovatelné pro přístup k Wi-Fi, aniž bych musel také přepisovat software. Jedna poslední věc, která se také objevila, byla kromě toho, že jsem reagoval na události naživo, potřeboval jsem, aby každých 15 minut kontroloval stav dat, která jsou k němu přiváděna

Takže se základem na místě, další věcí bylo zjistit, jak bude každá část provedena. Níže můžete vidět moje nápady, které části by řešil jaký typ softwaru nebo platformy.

1. Adafruit IO, toto se používá k nastavení zdrojů pro výstrahy, účet můžete získat zde

Budu to používat jako službu pro frontu zpráv, kde mu budu posílat zprávy z IFTTT a poté obří LED tyto zprávy přijme, aby na ně mohla působit.

2. IFTTT, https://ifttt.com/ a toto se používá ke skenování vybraných kanálů Twitter, YouTube a Twitch a poté odešle událost na Adafruit IO

3. Kód ESP8266 pro čtení těchto kanálů, který je do ESP8266 vypálen pomocí standardního IDE Arduino (v1.8.8)

4. Arduino kód, načten do ESP8266, aby přečetl kanály Adafruit IO a rozsvítil Neopixel

5. Arduino kód pro čtení tlačítka pro vymazání výstrahy

6. Umět konfigurovat WiFi adaptér, aniž bych musel znovu zapnout ESP, a k tomu jsem použil knihovnu WiFi Manager od Tzapu, https://github.com/tzapu/WiFiManager, i když možnosti nastavení vyžadovaly malou změnu Knihovny Adafruit IO.

Krok 4: Nastavení Adafruit IO

Nastavení Adafruit IO
Nastavení Adafruit IO

Toto je první krok, protože budete potřebovat přístupové klíče, které zde vytvoříte, a také budete muset vytvořit kanály, na které bude IFTTT zasílat události. Můžete si nastavit tento i IFTTT účet a do značné míry vše nastavit a fungovat, než přejdete na část tohoto projektu Arduino.

Spíše než kopírování příkladů adafruit najdete základy zde https://learn.adafruit.com/gmailbox/adafruit-io-se…, které vám pomohou s nastavením.

Pak pro GIANT LED budete také muset přidat do výchozích kanálů následující kanály

1. barva - to nám umožňuje vzdáleně měnit barvu pomocí něčeho jako Alexa

2. škubnutí

3. twitterfan

4. youtubefan

Pak také musíte vytvořit novou skupinu, pokud jste již nezavolali vstup, pak do této skupiny také vytvořte kanál s názvem digitální. To nám také umožní vidět účinek stisknutí tlačítka, pokud bychom chtěli rozšířit používání tohoto zařízení pro jiné účely.

Chcete -li v tomto okamžiku také hrát s řídicím panelem, abyste do něj mohli přidávat tyto kanály pro účely informací a hledání závad.

Krok 5: Nastavení IFTTT

Nastavení IFTTT
Nastavení IFTTT
Nastavení IFTTT
Nastavení IFTTT

Můžete také sledovat průvodce Adafruit zde, https://learn.adafruit.com/gmailbox/ifttt-setup. Poté můžete vybrat akce Twitter, youtube a twitch, abyste nastavili seznamy sledování a poté je odeslali do příslušných kanálů. Připojil jsem jednoduché video, abyste viděli, jak rychlé to může být.

Kromě toho, pokud chcete hlasově ovládat barvu LED pomocí Alexa, nyní existuje applet Amazon Alexa. Chcete -li nastavit jeden z nich, vyberte aplikaci a vyberte slovo modré, poté jej připojte ke kanálu Adafruit, který jste nastavili, nazývaný barva, a zadejte 0000ff jako data, která se mají odeslat na tento kanál. Můžete také předat další příkazy GIANT LED, jako je reset nebo restart, pokud chcete.

Při nastavování spouště IFTTT musíte vybrat odesílaná data, která se v IFTTT nazývají „Ingredience“. První kus, který potřebujeme, je „Uživatelské jméno“, poté mezera a poté „CreatedAt“

Vybíráme obě položky, takže když data přijdou do ESP8266, pak můžeme zjistit, zda se jedná o nový tweet a že se liší od předchozích tweetů stejných uživatelů. Jak by to mělo vypadat, můžete vidět na přiloženém obrázku.

Krok 6: Instalace desek ESP8266 do Arduino IDE

Zde jsou věci trochu složitější a jejich vyřešení může chvíli trvat. Kromě ESP8266 potřebujete také IO knihovny Adafruit a u těchto se můžete řídit touto příručkou.

learn.adafruit.com/gmailbox/arduino-setup

Existuje také jednoduché vysvětlení, jak přidat desky ESP8266 také zde

Nezapomeňte se také ujistit, že váš Arduino IDE odpovídá nejnovější verzi a v době psaní tohoto článku jsem používal 1.8.8.

Jedna další knihovna, kterou používáme, je SimpleTimer, protože nám to umožní nastavit časovač na pozadí, abychom mohli pravidelně kontrolovat kanály, pokyny k tomu najdete na použití simpletimer https://playground.arduino.cc/Code/SimpleTimer# Stažení

Krok 7: Instalace knihovny správce WiFi

Abychom mohli získat vzdálenou konfiguraci nastavení WiFi, použijeme Tzapu Wifi Manger, podrobnosti o tom a způsobu instalace knihoven najdete zde, github.com/tzapu/WiFiManager

Toto je docela jednoduchá instalace externích knihoven a tato možnost je již v sekci Správa knihovny v sekci nástrojů Arduino IDE.

Krok 8: Kód ESP8266 - s tiskem ladění

// Tento kód obsahuje tiskové příkazy, takže můžete sledovat jeho provoz pomocí sériového monitoru

// Na základě příkladu výstupu LED LED Adafruit IO // Adafruit investuje čas a prostředky poskytováním tohoto otevřeného zdrojového kódu. // Podporujte prosím Adafruit a hardware s otevřeným zdrojovým kódem nákupem // produktů od Adafruit! // // Napsal Todd Treece pro Adafruit Industries // Copyright (c) 2016-2017 Adafruit Industries // Licencováno pod licencí MIT. // // Veškerý výše uvedený text musí být součástí jakékoli redistribuce. // používá simpletimer https://playground.arduino.cc/Code/SimpleTimer#Do… // https://playground.arduino.cc/Code/SimpleTimer#Do… // zbytek kódu od Ajax Jones https:// hřiště.arduino.cc/Code/SimpleTimer#Do // https://playground.arduino.cc/Code/SimpleTimer#Do… // ******************* ******* Konfigurace ***************************************** Uživatelské jméno "#define IO_KEY" váš klíč IO "// ponechte prázdné, protože je získáme prostřednictvím správce Wifi, zdá se, že to takto funguje #define WIFI_SSID" "#define WIFI_PASS" "// toto nezahrnujeme jako AdafruitIO zahrnout jeho verzi // #zahrnout //https://github.com/esp8266/Arduino // potřebné pro knihovnu #include #include #include "WiFiManager.h" //https://github.com/tzapu/WiFiManager # zahrnout časovač SimpleTimer; #include "AdafruitIO_WiFi.h" AdafruitIO_WiFi io (IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS); // ************************* Konfigurace 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 pixelů = Adafruit_NeoPixel (PIXEL_COUNT, PIXEL_PIN, PIXEL_TYPE); // Hlavní barvy a výchozí barva dlouhá default_color = 865554; dlouhý RED_color = 2689027; // červená #290803 dlouhá ZELENÁ_barva = 865554; // zelená #0d3512 dlouhá BLUE_color = 856117; // modrá #0d1035 dlouhá PURPLE_color = 2364968; // fialová #241628 dlouhá BRIGHTRED_color = 15990784; // jasně červená #f40000 // ------------------------------------------ ----------------------------------------------- //čas nápad převzat z https://www.safaribooksonline.com/library/view/arduino-cookbook-2nd/9781449321185/ch12.html https://playground.arduino.cc/Code/SimpleTimer#Do… https:// hřiště. arduino.cc/Code/SimpleTimer#Do… const long oneSecond = 1000; // sekunda je tisíc milisekund konst dlouhá oneMinute = oneSecond * 60; konst dlouhá pět minut = jedna minuta * 5; konst dlouhá patnáct minut = pět minut * 3; konst dlouhá jedna hodina = patnáct minut * 4; // Uživatelé Twitteru, které máme nejraději a ty budou blikat a všechny ostatní tweety, které jsme vybrali, změní pouze barvu String SuperTweet = {"ajaxjones", "donttrythis", "prodnose", "testcom"}; Řetězec SuperTuber = {"testováno", "cowan", "marty"}; // nastavuje stav výstrahy, abychom mohli stále blikat LED diody v bool hlavní smyčky WHIZZY_TWEET = false; bool WHIZZY_TUBER = false; bool WHIZZY_TWITCH = false; // Uloží poslední tweet a youtube, abychom mohli poke službu každou chvíli dvakrát zkontrolovat String lasttweet = ""; Řetězec lasttube = ""; Řetězec lasttwitch = ""; // digitální pin 5, toto je tlačítko, které používáme k resetování výstražných barev #define BUTTON_PIN 4 // stav tlačítka, ve skutečnosti ne tak používané, jak hledáme tlačítko při přerušení bool current = false; bool last = false; // nastavení zdroje 'color', abychom mohli testovat a odesílat barvy na vyžádání nebo použít spoušť Alexa AdafruitIO_Feed *color = io.feed ("color"); // nastavení zdroje 'twitterfan' - Blue AdafruitIO_Feed *twitter = io.feed ("twitterfan"); // nastavení zdroje 'youtubefan' - Red AdafruitIO_Feed *youtube = io.feed ("youtubefan"); // nastavení zdroje 'twitch' - Purple AdafruitIO_Feed *twitch = io.feed ("twitch"); // nastavit 'digitální' feed AdafruitIO_Feed *digital = io.feed ("input.digital"); // ------------------------------------------------ ----------------------------------------- neplatné nastavení () {// nastavení knoflíkový pin jako vstup, používáme INPUT_PULLUP, protože nemusíme používat externí odpory pinMode (BUTTON_PIN, INPUT_PULLUP); // Připojte přerušení k vektoru ISR pro tlačítko attachInterrupt (digitalPinToInterrupt (BUTTON_PIN), handleInterrupt, FALLING); // Spusťte seriál a počkejte, až se otevře sériový monitor, poté se připojte k io.adafruit.com Serial.begin (115200); while (! Serial); // neopixel begin pixels.begin (); // Nastavte počáteční stav na červenou, abychom věděli, že jsme offline a pracujeme setAll (0xf4, 0x00, 0x00); // červená // pro testování se tím zobrazí stav WiFi WiFi.printDiag (sériový); WiFiManager wifiManager; // nastavení zpětného volání, které se zavolá, když se připojení k předchozímu WiFi nezdaří, a přejde do režimu přístupového bodu wifiManager.setAPCallback (configModeCallback); // reset uložených nastavení, odkomentováním tohoto dalšího řádku vynutíte testování WiFi Manageru, abyste se mohli připojit // pomocí telefonu nebo tabletu vyhledat Giant LED síť, která se objeví //wifiManager.resetSettings (); // nastaví časový limit, dokud se konfigurační portál nevypne // užitečné, aby se vše opakovalo nebo šlo do režimu spánku // za několik sekund wifiManager.setTimeout (240); if (! wifiManager.autoConnect ("GIANT LED")) {Serial.println (F („Nepodařilo se připojit a vypršel časový limit“)); // reset a zkus to znovu zpoždění (3000); ESP.reset (); zpoždění (1000); } // pro testování můžeme zjistit, zda máme správná pověření pro připojení //Serial.println (WiFi. SSID ()); //Serial.println(WiFi.psk());//WiFi.begin(WIFI_SSID, WIFI_PASS); // while (WiFi.status ()! = WL_CONNECTED) {// zpoždění (500); //Serial.print ("."); //} Serial.println (); Serial.println (F ("WiFi připojeno")); Serial.println (F ("IP adresa:")); Serial.println (WiFi.localIP ()); // nyní se připojujeme ke službě IO Serial.print (F ("Připojení k Adafruit IO")); io.connect (); // nastavení obsluhy zpráv pro zdroj 'color'. color-> onMessage (handleMessage); // nastavení obsluhy zpráv pro kanál 'twitterfan'. twitter-> onMessage (twitterMessage); // nastavení obsluhy zpráv pro zdroj 'youtubefan'. youtube-> onMessage (youtubeMessage); // nastavit obslužný program zpráv pro kanál 'twitch'. škubnutí-> onMessage (twitchMessage); // počkejte na připojení while (io.status () <AIO_CONNECTED) {Serial.print (F (".")); zpoždění (500); } // jsme připojeni Serial.println (); Serial.println (io.statusText ()); //Serial.println(sizeof(SuperTweet)); //Serial.println(velikost(SuperTweet[0])); // Vytiskněte si seznam účtů Twitter, na které čekáme (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 ("'"); } // Vytiskněte si seznam účtů YouTube, na které čekáme (byte idx = 0; idx get (); // požádejte o stávající stavy zdrojů, takže při spuštění youtube budete muset stisknout reset -> get (); twitter-> get (); twitch-> get (); for (int i = 0; i get (); twitter-> get (); twitch-> get (); Serial.print ("získávám nějaké tweety"); Serial.print ("uptime (s):"); Serial.println (millis () / 1000);} // ---------------- ---------------------------------------------------------- ----------------------- neplatná smyčka () {// io.run (); je vyžadována pro všechny skici. io.run (); časovač. 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);}} // --------------------------------- ---------------------------------------------------------- ------ // nastavit přerušení pro vymazání upozornění při stisknutí tlačítka a zkontrolovat internet neplatný handleInterrupt () {WHIZZY_TWEET = Nepravdivé; WHIZZY_TUBER = false; WHIZZY_TWITCH = false; aktuální = true; // odešlete aktuální stav do kanálu 'input.digital' na adafruit io, abychom jej mohli vidět digitálně-> save (aktuální); for (int i = 0; i ")); Serial.print (aktuální); Serial.print (F (" a výchozí barva ")); Serial.println (default_color); current = false; digital-> save (aktuální); while (WiFi.status ()! = WL_CONNECTED) {delay (500); setAll (0xeb, 0xfb, 0x03); // Yellow ebfb03}} // -------------- ---------------------------------------------------------- ------------------------- // toto se nazývá vždy, když přijde zpráva „twitter“-nastavte LED na Blue void twitterMessage (data AdafruitIO_Data *) {String tweeter = (data-> toString ()); tweeter.toLowerCase (); if ((lasttweet! = Tweeter) && (tweeter! = "")) {Lasttweet = tweeter; setAll (0x0d, 0x10, 0x35); // Nastavit tweetovou modrou barvu Serial.print (F ("Tweet:")); Serial.print (tweeter); // vyhledat oblíbený tweeter pro (byte idx = 0; idx = 0) {// Umožňuje vytvořit jejich tweety svižné #0d1035 WHIZZY_TWEET = true; Serial.print ("by"); Serial.print (SuperTweet [idx]);}} Serial.println ("");}} // --------- ---------------------------------------------------------- ---------------------------- - // toto se nazývá vždy, když přijde zpráva 'youtube'- nastavte LED na ČERVENOU neplatnou youtubeMessage (data AdafruitIO_Data *) {String tuber = (data-> toString ()); tuber.toLowerCase (); if ((lasttube! = tuber) && (tuber! = "")) {lasttube = tuber; setAll (0x29, 0x08,0x03); // Nastavit červenou barvu youtube 290803 Serial.print (F ("Youtube:")); Serial.println (hlíza); // vyhledejte oblíbeného Youtubera pro (byte idx = 0; idx = 0) {// Umožníme jejich videím svižné #0d1035 WHIZZY_TUBER = true; Serial.print ("od"); Serial.print (SuperTuber [idx]); }} Serial.println (""); }} // ---------------------------------------------- ---------------------------------------------- // toto se nazývá vždy Přijde zpráva „škubnutí“- nastavte LED na PURPLE a neplatné twitchMessage (data AdafruitIO_Data *) {String twitch = (data-> toString ()); twitch.toLowerCase (); if ((lasttwitch! = twitch) && (twitch! = "")) {lasttwitch = twitch; setAll (0x24, 0x16, 0x28); // Nastavit fialovou barvu záškubu #241628 Serial.print (F ("Twitch:")); Serial.println (škubnutí); // Žádná kontrola oblíbeného Twitchera, sledujeme pouze jednoho WHIZZY_TUBER = true; Serial.println (""); }} // ---------------------------------------------- -------------------------------------------------- // Tato funkce se volá kdykoli je přijata zpráva „barva“//, která nastaví výchozí barvu při spuštění na základě hodnoty posledního barevného kanálu void handleMessage (data AdafruitIO_Data *) {// tisk hodnot RGB a hexadecimální hodnoty Serial.print (F („přijatá hodnota HEX: ")); Serial.println (data-> hodnota ()); dlouhá barva = data-> toNeoPixel (); // default_color = color; Serial.print (F ("Přijatý HEX dlouhý:")); Serial.println (barva); pro (int i = 0; i <PIXEL_COUNT; ++ i) {pixely.setPixelColor (i, barva); } showStrip (); } // ----------------------------------------------- ------------------------------------------ neplatné RunningLights (byte červený, byte zelený, byte blue, int WaveDelay) {int Position = 0; pro (int j = 0; j <NUM_LEDS; j ++) {Pozice ++; // = 0; // Pozice + Sazba; pro (int i = 0; i <NUM_LEDS; i ++) {setPixel (i, ((sin (i + pozice) * 127 + 128) / 255) * červená, ((sin (i + pozice) * 127 + 128) / 255)*zelená, ((sin (i + pozice)*127 + 128) / 255)*modrá); } showStrip (); zpoždění (WaveDelay); }} // ---------------------------------------------- ------------------------------------------ // // Neopixelové rutiny void setAll (byte red, byte green, byte blue) {for (int i = 0; i getConfigPortalSSID ()); // vstoupil do konfiguračního režimu, nastavte Neo Pixel na fialový #241628 = 2364968 // setAll (0x24, 0x16, 0x28); setAll (0xeb, 0xfb, 0x03); // Žlutý ebfb03}

Krok 9: Pájení všeho dohromady

Pájecí vše dohromady
Pájecí vše dohromady
Pájecí vše dohromady
Pájecí vše dohromady
Pájecí vše dohromady
Pájecí vše dohromady

Všechno v tomto designu je pájeno dohromady a mělo by být celkem snadné ho spravovat. Použil jsem 3 různě barevné dráty, aby to bylo snadné a první věcí je změřit drát pro neopixel k WEMOS. Opletl jsem je a nasadil malý kousek teplem smrštitelného materiálu a poté je připájel, jak je znázorněno, aby v objektivu ležel naplocho.

Tlačítko bylo další a pohodlně se vejde do základny. Jedna strana tlačítka směřuje do Gnd a ta je stočena dohromady s uzemňovacím vodičem neopixelu. Potom jsem je pocínoval a jako jeden připájel do zemnicího kolíku WEMOS.

Napájecí kabel pro Neopixel jde do 5V PIn. Signální vodič nebo Di (data in) neopixelu je připájen na kolík Wemos jako D1. Existuje několik stránek, které navrhují vložit rezistor 300-500 Ohm do série s tímto, ale zatím jsem neměl žádné problémy, takže prozatím je to jen přímé připojení.

Abych zajistil správnou praxi a na radu stránek, jako je Adafruit, dal jsem do neopixelu odpor 330R v sérii s řadou Di. Má zabránit tomu, aby první LED dioda v prstenu vypustila magické pixies a jednoduše to provedla přestřižením drátu a vložením rezistoru. Malý kousek heatshrink zastaví všechny svéhlavé šortky. Rezistor můžete zkrátit a zkrátit, na každý konec stačí nasadit obruč a udělat to samé s drátem.

Druhý vodič tlačítka směřuje přímo na pin D2. Pullup rezistor není potřeba, protože to je řešeno v softwaru vložením příkazu PULLUP proti tomuto pinu.

To je v podstatě všechno.

Krok 10: Vytiskněte 3D

Zde jsou připojeny soubory STL, které používáme pro Giant LED. Soubory jsou remixem/přepracováním astro73 a všechny soubory můžete získat také z

Na nohy a základnu jsem použil filament Sunlu PETG+, který na Prusa i3 funguje opravdu dobře a použil jsem buď 10 nebo 20% gyroidovou výplň.

Pro samotnou LED používám transparentní PLA Sunlu a používám asi 10% výplň se soustřednými vrchními a spodními vrstvami.

S každým používám pouze standardní nastavení Prusa PET a Prusa PLA v Slic3r a všechny fungovaly dobře. Trochu se mi natahují na nohy, ale přehodím přes ně foukačku a výplet zmizí:)

Krok 11: Obří montáž LED

Obří montáž LED
Obří montáž LED
Obří montáž LED
Obří montáž LED
Obří montáž LED
Obří montáž LED

Všechny díly jdou dohromady opravdu snadno, musíte do základny zatlačit matici M3, aby šroub mohl držet věc pohromadě. Také musíte nejprve propojit NeoPixel s WEMOS přes nohy. Zvažoval jsem, jak zapojit některé konektory, ale rozhodl jsem se, že se to v budoucnu nerozpadne.

Objektiv je pouze nasazen na nohy a oni jsou zase přišroubováni k základně jediným šroubem M3x20 mm. Možná budete muset nožem obejít vnitřní část knoflíkového otvoru, aby se pohyboval hezky a volně. Wemos je držen na místě pomocí 2 šroubů M2x8 se šroubem zespodu.

Na závěr můžete na základnu přilepit kus plsti, abyste v případě potřeby zastavili sklouznutí.

Krok 12: Instalační a provozní pokyny

Image
Image
Návod k instalaci a obsluze
Návod k instalaci a obsluze
Návod k instalaci a obsluze
Návod k instalaci a obsluze

Když je vše připraveno a nahraný software, použijte na USB nějaké napájení a LED GIANT by se měla rozsvítit a LED začne svítit ČERVENĚ a poté se změní na žlutou barvu. To ukazuje, že je offline a čeká na konfiguraci wifi. Pomocí telefonu nebo podobného vzhledu vyhledejte wifi síť GIANT LED a připojte se a dostanete obrazovku Správce WiFi. Naskenuje vaši místní oblast a vy zadáte své wifi detaily, ESP se restartuje a vy budete nyní online se zeleným světlem. V tomto bodě se také připojí k IO a rozsvítí se výstražná světla, protože dosud neviděla žádné předchozí zprávy. Stiskněte tlačítko několikrát a LED GIANT je nyní připravena na aktualizaci.

V tuto chvíli můžete přejít na řídicí panel Adafruit IO a do každého kanálu přidat nějaká data a uvidíte, že se světla přepnou do výstražného režimu.

Bavte se!

Krok 13: Co jiného může Giant LED udělat

Co jiného může Giant LED udělat
Co jiného může Giant LED udělat
Co jiného může Giant LED udělat
Co jiného může Giant LED udělat

Jakmile máte základy takového designu a s IFTTT, můžete jej použít pro mnoho věcí. Upozornění na doručenou poštu v Gmailu je velmi snadné a protože Adafruit funguje také s Webhooks, mohou do něj data odesílat i jiné programy. V současné době mám jeden nastavený, abych sledoval nahrávání některých dat Big Query v rámci pracovního projektu.

Také pomocí tlačítka můžete signalizovat další LED diody GIANT, můžete mít jednu v různých domech a použít ji jako dálkový indikátor, abyste přiměli druhou stranu stisknout tlačítko pro zrušení světla.

Zde je užitečný odkaz na způsob odesílání dat do zdroje webhook. V tomto případě používá aplet IFTTT, ale stejně snadno můžete použít metodu CURL s pythonem.

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

Ve skutečnosti je dokonce možné vložit OLED 128x32 do základny pro doplnění LED o nějaký textový obsah a v současné době na tom pracuji a aktualizuji STL a dodám kód k využití IO s tímto.

Doporučuje: