INHOUDSOPGAWE:

Giant LED - Tracking Adam Savage: 13 stappe (met foto's)
Giant LED - Tracking Adam Savage: 13 stappe (met foto's)

Video: Giant LED - Tracking Adam Savage: 13 stappe (met foto's)

Video: Giant LED - Tracking Adam Savage: 13 stappe (met foto's)
Video: Backstreet Boys - I Want It That Way (Official HD Video) 2024, November
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

Hier vind u 'n weergawe van 'n Giant LED, wat bedoel is om op te tree as 'n Twitter-, YouTube- en Twitch-waarskuwingslamp. Die belangrikste doel vir my is om 'n waarskuwing te gee wanneer daar tweets, video's of stroomstrome deur Adam Savage en die getoetste span is, en om eerlik te wees, 'n paar ander mense wat ek volg, soos Robert Cowan, Marty the Mechanic en meer.

Dit is duidelik dat ek twitter, twitch ens op my telefoon of skootrekenaar kon gebruik, maar daar is soveel waarskuwings van soveel dienste en kennisgewings dat ek dit basies almal uitskakel, plus dat die telefoon na 22:00 in die stille modus gaan, aangesien dit ook sal werk Webhooks Ek het ook een wat gekonfigureer is om opdaterings van sommige Biq Query -tabelle wat werkverwant is, te ontvang om my te laat weet of dit opgedateer is met 'n voldoende aantal rekords elke dag.

Adafruit het 'n diens genaamd Adafruit IO wat ek wou probeer, en ek wou die hele jaar probeer om die ESP8266 weer aan te pak nadat ek 'n paar goeie woorde gehoor het oor die Wemos D1 Mini release 3. Dit het alles begin bymekaar kom toe ek 'n ontwerp vir 'n LED op dingiverse deur Astro73. Ek het daarmee begin en dit 'n bietjie vir skaal gewerk, en ek het 'n drukknoppie in die basis en ander kosmetiese veranderings bygevoeg. U kan die remix hier vind

Boonop kan dit ook nou deur Alexa beheer word met die koms van IFTTT alexa trigger word.

Stap 1: Bestanddele

As u een hiervan wil maak, is die lys onderdele redelik klein en ook relatief goedkoop. As u nie omgee vir die wag nie, kan u die belangrikste onderdele uit die buiteland kry, en die koste nog meer verminder. Die hoofbestanddeel is egter die Giant LED -omhulsel en basis. As u 'n 3D -drukker het, is u gereed; indien nie, is daar 'n paar aanlyn drukkerondernemings wat die onderdele sal druk. Daar is slegs 3, so dit behoort ook redelik goedkoop te wees.

1. Wemos D1 Mini R3

2. Neopixel 8 LED

3. Gedrukte voet en bene in swart PETG

4. Gedrukte lens en lighouer in deursigtige PLA

5. Drukknopskakelaar 12mm vierkant x1

6. Ronde drukknopdop x1

7. USB -kabel en adapter vir krag

8. M3x20 knoppie kop

9. M3 Moer

10. M2x8mm bout x2

11. M2 Moer x2

12. 'n Paar swart, rooi en geel draad

13. 300-500 Ohm Weerstand

14. Klein stukkie heatsink

U kan ander ESP -toestelle, of selfs 'n Huzzah, gebruik, maar die omhulsel is ontwerp vir die mini met bevestigingsgate en vermy dat u dit moet plak.

Stap 2: Gereedskap

Om dit te skep en te bou, benodig u die volgende

1. 3D -drukker

2. 1.5 mm en 2 mm inbussleutel

3. Soldeerbout en soldeer

4. Wirecutters

5. Pliers

6. Sin vir humor

7. Skalpel vir snoei

Stap 3: Kodevereistes

Dus, voordat ons in die konstruksie ingaan, gaan ek 'n paar van die vereistes uiteensit wat ek hierby wou insluit. Die meeste hiervan het ek in gedagte gehad voor ek begin het, en ek het 'n paar vloei geskets om uit te vind wat ek gaan probeer. Terwyl dit aangaan, het ek 'n paar probleme met dienste ontdek wat ek wou aanspreek.

Vereistes.

Ek wou hê dat die LED my moet wys wanneer 'n nuwe tweet of video geplaas word, en dit blyk ook dat 'n spesifieke Twitch -kanaal begin. Ek wou ook hê die waarskuwing moet aanhou totdat ek dit kanselleer, sodat as ek 'n rukkie weg was, ek sou weet wat gebeur het terwyl ek weg was. Ek wou ook hê dat dit instelbaar was vir Wi-Fi-toegang sonder dat ek die sagteware hoef te herlaai. Een laaste ding wat ook opgeduik het, was dat ek, behalwe om te reageer op gebeure regstreeks, elke 15 minute die status van die data wat daaraan gevoer is, moes kontroleer

Met die basiese beginsels in plek, was die volgende ding om uit te vind hoe elke deel uitgevoer gaan word. U kan my idees hieronder sien oor watter tipe sagteware of platform hanteer sal word.

1. Adafruit IO, dit word gebruik om die feeds vir die waarskuwings op te stel; u kan hier 'n rekening kry

Ek gaan dit as 'n boodskapry -diens gebruik, waar ek boodskappe van IFTTT af stuur, en dan ontvang die Giant LED die boodskappe sodat dit daarop kan reageer.

2. IFTTT, https://ifttt.com/ en dit word gebruik om die gekose Twitter-, YouTube- en Twitch -kanale te skandeer en dan die geleentheid na die Adafruit IO te stuur

3. ESP8266 -kode om hierdie feeds te lees, en dit word in die ESP8266 verbrand deur die standaard Arduino IDE te gebruik (v1.8.8)

4. Arduino -kode, gelaai op die ESP8266 om die Adafruit IO -feeds te lees en die Neopixel te verlig

5. Arduino -kode om 'n drukknop te lees om die waarskuwing uit te vee

6. Die WiFi -adapter kan instel sonder om die ESP te herlaai, en hiervoor het ek die WiFi Manager -biblioteek van Tzapu, https://github.com/tzapu/WiFiManager, gebruik, alhoewel die opstelopsies 'n bietjie verandering nodig gehad het om die Adafruit IO -biblioteke.

Stap 4: Opstel van Adafruit IO

Die oprigting van Adafruit IO
Die oprigting van Adafruit IO

Dit is die eerste stap, aangesien u die toegangssleutels benodig wat u hier skep, en ook die feeds moet skep waarna die IFTTT geleenthede sal stuur. U kan hierdie sowel as die IFTTT -rekening opstel en alles in werking stel voordat u na die Arduino -deel van hierdie projek gaan.

In plaas van die voorbeelde van adafruit te kopieer, kan u die basiese beginsels hier vind https://learn.adafruit.com/gmailbox/adafruit-io-se…, wat u sal help om op te stel.

Vir die GIANT LED moet u ook die volgende feeds by die standaardkanale voeg

1. kleur - hiermee kan ons afstand van kleur verander met iets soos Alexa

2. ruk

3. twitterfan

4. youtubefan

Dan moet u ook 'n nuwe groep skep as u nog nie insette gebel het nie, en in hierdie groep ook 'n feed genaamd digitaal skep. Dit sal ons ook die effek van die druk op die knoppie kan sien as ons die gebruik van hierdie toestel vir ander doeleindes wil uitbrei.

As u ook op hierdie punt wil speel, is dit om met die dashboard te speel, sodat u hierdie feeds daaraan kan byvoeg vir inligting en om foute te vind.

Stap 5: Stel IFTTT op

Die opstel van IFTTT
Die opstel van IFTTT
Die opstel van IFTTT
Die opstel van IFTTT

U kan ook die Adafruit-gids hier volg, https://learn.adafruit.com/gmailbox/ifttt-setup. U kan dan die aksies Twitter, youtube en twitch kies om u kyklyste op te stel en dit dan na die relevante feeds te stuur. Ek het 'n eenvoudige video aangeheg sodat u kan sien hoe vinnig dit kan wees.

As u ook die kleur van u LED deur Alexa wil stembeheer, is daar nou 'n Amazon Alexa -applet. Om een hiervan in te stel, kies die app en kies die woord blou. Koppel dit dan aan die Adafruit -voer wat u opgestel het, kleur, en voer 0000ff in as die data wat na die kanaal gestuur moet word. U kan ook ekstra opdragte op hierdie manier aan die GIANT LED gee, soos herstel of herlaai as u wil.

As u die IFTTT -sneller opstel, moet u die data kies wat gestuur word, en dit word 'bestanddele' in IFTTT genoem. Die eerste stuk wat ons nodig het, is die 'Gebruikersnaam', dan 'n spasie en dan die 'CreatedAt'

Ons kies albei items sodat ons, wanneer die data in die ESP8266 kom, kan agterkom of dit 'n nuwe tweet is en dat dit verskil van vorige tweets deur dieselfde gebruikers. U kan sien hoe dit moet lyk op die aangehegte prent.

Stap 6: Installeer ESP8266 -borde in die Arduino IDE

Dit is hier waar dinge 'n bietjie moeiliker is, en dit kan 'n bietjie langer neem om opgelos te word. Benewens die ESP8266 het u ook die Adafruit IO -biblioteke nodig, en u kan ook hierdie gids volg.

learn.adafruit.com/gmailbox/arduino-setup

Daar is ook 'n eenvoudige verduideliking van hoe u die ESP8266 -borde kan byvoeg

Moenie vergeet om seker te maak dat u Arduino IDE ook die nuutste weergawe het nie en dat ek 1.8.8 gebruik het toe ek dit geskryf het.

Een ander biblioteek wat ons gebruik, is die SimpleTimer, aangesien dit ons in staat sal stel om 'n agtergrondtimer op te stel sodat ons die feeds periodiek kan nagaan; instruksies hiervoor kan gevind word by simpletimer https://playground.arduino.cc/Code/SimpleTimer# Aflaai

Stap 7: Installeer die WiFi Manager -biblioteek

Om die afstandskonfigurasie van die WiFi -opstelling in staat te stel, gaan ons die Tzapu Wifi Manger gebruik. Hier kan u besonderhede hieroor vind en hoe u die biblioteke installeer, github.com/tzapu/WiFiManager

Dit is 'n redelik eenvoudige installering van eksterne biblioteke en die opsie is reeds in die afdeling Bestuur biblioteek van u Arduino IDE -gereedskapafdeling.

Stap 8: Die ESP8266 -kode - met ontfoutdruk

// Hierdie kode bevat drukstate, sodat u die werking daarvan kan monitor via die seriële monitor

// Gebaseer op die Adafruit IO RGB LED -uitvoervoorbeeld // Adafruit belê tyd en hulpbronne om hierdie open source -kode te verskaf. // Ondersteun asseblief Adafruit en open source hardeware deur // produkte van Adafruit te koop! // // Geskryf deur Todd Treece vir Adafruit Industries // Kopiereg (c) 2016-2017 Adafruit Industries // Gelisensieer onder die MIT-lisensie. // // Alle teks hierbo moet by enige herverdeling ingesluit word. // gebruik eenvoudiger timer https://playground.arduino.cc/Code/SimpleTimer#Do… // https://playground.arduino.cc/Code/SimpleTimer#Do… // res van kode deur Ajax Jones https:// speelgrond.arduino.cc/Code/SimpleTimer#Do // https://playground.arduino.cc/Code/SimpleTimer#Do… // ******************* ******* Konfigurasie *********************************/ #define IO_USERNAME "jou IO Gebruikersnaam "#define IO_KEY" jou IO -sleutel "// laat dit leeg, want ons kry dit via die Wifi -bestuurder, dit lyk asof dit goed werk sluit die weergawe in // #include //https://github.com/esp8266/Arduino // benodig vir biblioteek #include #include #include "WiFiManager.h" //https://github.com/tzapu/WiFiManager # sluit SimpleTimer -timer in; #sluit "AdafruitIO_WiFi.h" AdafruitIO_WiFi io in (IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS); // *********************** NeoPixel -konfigureer ********************** ********* // #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); // Hoofkleure en die standaardkleur lang default_color = 865554; lang ROOI_kleur = 2689027; // rooi #290803 lang GROEN_kleur = 865554; // groen #0d3512 lank BLOU_kleur = 856117; // blou #0d1035 lank PURPLE_color = 2364968; // pers #241628 lank BRIGHTRED_color = 15990784; // helderrooi #f40000 // ------------------------------------------ ----------------------------------------------- // tyd idee geneem uit https://www.safaribooksonline.com/library/view/arduino-cookbook-2nd/9781449321185/ch12.html https://playground.arduino.cc/Code/SimpleTimer#Do… https:// speelplek. arduino.cc/Code/SimpleTimer#Do… const long oneSecond = 1000; // 'n sekonde is 'n duisend millisekondes konst lank oneMinute = oneSecond * 60; konst lang fiveMinutes = oneMinute * 5; konst lank vyftienMinute = vyfMinute * 3; konst lang een uur = vyftien minute * 4; // Twitter -gebruikers waarvan ons die meeste hou en dit flits en alle ander tweets wat ons gekies het, verander net die kleur String SuperTweet = {"ajaxjones", "donttrythis", "prodnose", "testcom"}; String SuperTuber = {"getoets", "cowan", "marty"}; // stel die waarskuwingstatus in, sodat ons die LED's in die hooflus kan blits WHIZZY_TWEET = vals; bool WHIZZY_TUBER = vals; bool WHIZZY_TWITCH = vals; // Stoor die laaste tweet en youtube, sodat ons die diens elke nou en dan kan kontroleer String lasttweet = ""; String lasttube = ""; String lasttwitch = ""; // digitale pen 5, dit is die knoppie wat ons gebruik om die waarskuwingskleure terug te stel #define BUTTON_PIN 4 // knoppie toestand, nie regtig wat gebruik word nie, aangesien ons op soek is na die knoppie op interupt bool current = false; bool laaste = vals; // stel die 'kleur' -voer in, sodat ons kleure op aanvraag kan toets en stuur of die Alexa trigger AdafruitIO_Feed *color = io.feed ("kleur") kan gebruik; // stel die 'twitterfan' -voer op - Blue AdafruitIO_Feed *twitter = io.feed ("twitterfan"); // stel die 'youtubefan' -voer op - Red AdafruitIO_Feed *youtube = io.feed ("youtubefan"); // stel die 'twitch' -voer op - Purple AdafruitIO_Feed *twitch = io.feed ("twitch"); // stel die 'digitale' voer AdafruitIO_Feed *digital = io.feed ("input.digital") op; // ------------------------------------------------ ----------------------------------------- nietige opstelling () {// stel die knoppiepen as invoer, ons gebruik INPUT_PULLUP aangesien ons nie eksterne weerstande pinMode (BUTTON_PIN, INPUT_PULLUP) hoef te gebruik nie; // Heg 'n onderbreking aan die ISR -vektor vir die knoppie attachInterrupt (digitalPinToInterrupt (BUTTON_PIN), handleInterrupt, FALLING); // Begin reeks en wag totdat die seriële monitor oopgemaak word, en koppel dan aan io.adafruit.com Serial.begin (115200); terwyl (! Serial); // neopixel begin pixels.begin (); // Stel die oorspronklike toestand op 'n rooi sodat ons weet dat ons vanlyn is en werk setAll (0xf4, 0x00, 0x00); // rooi // vir toetsing, dit wys die status van die WiFi WiFi.printDiag (Serial); WiFiManager wifiManager; // stel terugbel wat gebel word wanneer verbinding met 'n vorige WiFi misluk, en gaan na toegangspunt -modus wifiManager.setAPCallback (configModeCallback); // stel gestoorde instellings terug, maak 'n opmerking oor hierdie volgende reël om die toets van die WiFi -bestuurder af te dwing sodat u kan aansluit // u telefoon of tablet kan gebruik om te kyk na die Giant LED -netwerk wat verskyn //wifiManager.resetSettings (); // stel tydsduur in totdat die konfigurasieportaal uitgeskakel word // handig om alles weer te probeer of te gaan slaap // binne sekondes wifiManager.setTimeout (240); as (! wifiManager.autoConnect ("GIANT LED")) {Serial.println (F ("kon nie koppel nie en raak tydsduur")); // herstel en probeer weer vertraging (3000); ESP.reset (); vertraging (1000); } // vir toets kan ons sien of ons die regte geloofsbriewe het om aan te sluit //Serial.println (WiFi. SSID ()); //Serial.println(WiFi.psk());//WiFi.begin(WIFI_SSID, WIFI_PASS); // terwyl (WiFi.status ()! = WL_CONNECTED) {// vertraging (500); //Serial.print ("."); //} Serial.println (); Serial.println (F ("WiFi gekoppel")); Serial.println (F ("IP -adres:")); Serial.println (WiFi.localIP ()); // nou maak ons verbinding met die IO -diens Serial.print (F ("Koppel aan Adafruit IO")); io.connect (); // stel 'n boodskaphanteerder op vir die 'kleur' -voer. color-> onMessage (handleMessage); // stel 'n boodskaphanteerder op vir die 'twitterfan' -voer. twitter-> onMessage (twitterMessage); // stel 'n boodskaphanteerder op vir die 'youtubefan' -voer. youtube-> onMessage (youtubeMessage); // stel 'n boodskaphanteerder op vir die 'twitch' -voer. twitch-> onMessage (twitchMessage); // wag vir 'n verbinding terwyl (io.status () <AIO_CONNECTED) {Serial.print (F (".")); vertraging (500); } // ons is verbind Serial.println (); Serial.println (io.statusText ()); //Serial.println(sizeof(SuperTweet)); //Serial.println (grootte van (SuperTweet [0]))); // Druk 'n lys af van die Twitter -rekeninge waarna ons wag (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 ("'"); } // Druk 'n lys van die YouTube -rekeninge uit waarna ons wag (byte idx = 0; idx get (); // versoek die bestaande toestande van die feeds, so u sal op die reset moet druk terwyl YouTube begin -> get (); twitter-> get (); twitch-> get (); for (int i = 0; i get (); twitter-> get (); twitch-> get (); Serial.print ("kry 'n paar tweets"); Serial.print ("uptime (s):"); Serial.println (millis () / 1000);} // ---------------- -------------------------------------------------- ----------------------- nietige lus () {// io.run (); word benodig vir alle sketse. 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);}} // --------------------------------- -------------------------------------------------- ------ // stel die onderbreking in om die waarskuwing uit te skakel wanneer die knoppie ingedruk word en kyk na die internet leegtehandvatselInterrupt () {WHIZZY_TWEET = onwaar; WHIZZY_TUBER = vals; WHIZZY_TWITCH = vals; stroom = waar; // stuur die huidige toestand na die 'input.digital' feed op adafruit io sodat ons dit digitaal kan sien-> save (current); vir (int i = 0; i ")); Serial.print (huidige); Serial.print (F (" en standaardkleur ")); Serial.println (default_color); current = false; digital-> save (huidige); terwyl (WiFi.status ()! = WL_CONNECTED) {vertraging (500); setAll (0xeb, 0xfb, 0x03); // Yellow ebfb03}} // -------------- -------------------------------------------------- ------------------------- // dit word gebel wanneer 'n 'twitter'-boodskap kom-stel die LED op Blue void twitterMessage (AdafruitIO_Data *data) {String tweeter = (data-> toString ()); tweeter.toLowerCase (); if ((lasttweet! = Tweeter) && (tweeter! = "")) {Lasttweet = tweeter; setAll (0x0d, 0x10, 0x35); // Stel tweetblou kleur Serial.print (F ("Tweet:")); Serial.print (tweeter); // kyk vir 'n gunsteling tweeter vir (byte idx = 0; idx = 0) {// Laat ons hul tweets whizzy #0d1035 WHIZZY_TWEET = true; Serial.print ("by"); Serial.print (SuperTweet [idx]);}} Serial.println ("");}} // --------- -------------------------------------------------- ---------------------------- - // dit word gebel wanneer 'n 'youtube'-boodskap opdaag- stel die LED in op RED void youtubeMessage (AdafruitIO_Data *data) {String tuber = (data-> toString ()); tuber.toLowerCase (); as ((laaste buis! = knol) && (knol! = "")) {laaste buis = knol; setAll (0x29, 0x08,0x03); // Stel youtube rooi kleur 290803 Serial.print (F ("Youtube:")); Serial.println (knol); // kyk of daar 'n gunsteling Youtuber is vir (byte idx = 0; idx = 0) {// Laat ons hul video's opwindend #0d1035 WHIZZY_TUBER = true; Serial.print ("deur"); Serial.print (SuperTuber [idx]); }} Serial.println (""); }} // ---------------------------------------------- ------------------------------------------- // dit word genoem wanneer a 'twitch' -boodskap kom - stel die LED op PURPLE void twitchMessage (AdafruitIO_Data *data) {String twitch = (data-> toString ()); twitch.toLowerCase (); as ((lasttwitch! = twitch) && (twitch! = "")) {lasttwitch = twitch; setAll (0x24, 0x16, 0x28); // Stel ruk pers kleur #241628 Serial.print (F ("Twitch:")); Serial.println (ruk); // Geen tjek vir 'n gunsteling Twitcher nie; ons volg slegs een WHIZZY_TUBER = waar; Serial.println (""); }} // ---------------------------------------------- ------------------------------------------- // hierdie funksie word telkens genoem 'n 'kleur' -boodskap word ontvang // wat die standaardkleur by die aanvang sal stel, gebaseer op die laaste kleurvoerwaarde, void handleMessage (AdafruitIO_Data *data) {// druk RGB -waardes en hekswaarde Serial.print (F ("Ontvang HEX -waarde: ")); Serial.println (data-> waarde ()); lang kleur = data-> toNeoPixel (); // default_color = kleur; Serial.print (F ("HEX lang ontvang:")); Serial.println (kleur); vir (int i = 0; i <PIXEL_COUNT; ++ i) {pixels.setPixelColor (i, kleur); } showStrip (); } // ----------------------------------------------- ------------------------------------------ void RunningLights (byte rooi, byte groen, byte blou, int WaveDelay) {int Posisie = 0; vir (int j = 0; j <NUM_LEDS; j ++) {Posisie ++; // = 0; // Posisie + koers; vir (int i = 0; i <NUM_LEDS; i ++) {setPixel (i, ((sin (i + Position) * 127 + 128) / 255) * rooi, ((sin (i + Position) * 127 + 128) / 255)*groen, ((sin (i + Posisie)*127 + 128) / 255)*blou); } showStrip (); vertraging (WaveDelay); }} // ---------------------------------------------- ------------------------------------------- // Neopixel routines void setAll (byte rooi, byte groen, byte blou) {for (int i = 0; i getConfigPortalSSID ()); // die konfigurasiemodus aangegaan het, stel Neo Pixel in pers #241628 = 2364968 // setAll (0x24, 0x16, 0x28); setAll (0xeb, 0xfb, 0x03); // Geel ebfb03}

Stap 9: soldeer alles saam

Soldeer dit alles saam
Soldeer dit alles saam
Soldeer dit alles saam
Soldeer dit alles saam
Soldeer dit alles saam
Soldeer dit alles saam

Alles in hierdie ontwerp is aanmekaar gesoldeer en moet redelik maklik wees om te bestuur. Ek het drie drade van verskillende kleure gebruik om dinge makliker te maak, en die eerste ding is om die draad vir die neopixel na die WEMOS te meet. Ek het hulle gevleg en 'n klein stukkie warmte-krimpie aangebring en dan soldeer soos getoon sodat dit plat in die lens kan lê.

Die knoppie was volgende en pas goed in die basis. Die een kant van die knoppie gaan na Gnd en dit word saam met die gronddraad van die neopixel gedraai. Ek het dit toe geblik en as een in die grondpen van die WEMOS gesoldeer.

Die kragkabel vir die Neopixel gaan na die 5v PIn. Die seindraad, of Di (data in) van die neopixel word aan die Wemos -pen gesoldeer as D1. Daar is 'n paar webwerwe wat voorstel om 'n 300-500 Ohm-weerstand in serie hiermee in te voeg, maar ek het tot dusver geen probleme gehad nie, maar dit is tans 'n direkte verbinding.

Om goeie praktyk te verseker, en op advies van webwerwe soos Adafruit, het ek 'n 330R -weerstand in serie met die Di -lyn na die neopixel geplaas. Dit is om te verhoed dat die eerste LED in die ring die towerkolletjies uitlaat deur eenvoudig die draad te sny en 'n weerstand in te steek. U kan die weerstand redelik kort sny en net 'n hoepel aan elke kant sit en dieselfde met die draad doen.

Die ander draad vir die knoppie gaan direk na pen D2. Daar is geen pullup -weerstand nodig nie, aangesien dit binne die sagteware hanteer word deur 'n PULLUP -opdrag teen die pen te plaas.

Dit is basies al wat daar is.

Stap 10: 3D -druk

Hier is die STL -lêers wat ons gebruik vir die Giant LED aangeheg. Die lêers is 'n hervermenging/herwerking van astro73 en u kan ook al die lêers vanaf https://www.thingiverse.com/thing:3290837 haal.

Vir die bene en voet het ek 'n Sunlu PETG+ filament gebruik wat baie goed werk op die Prusa i3 en ek het 10 of 20% skildkliervulling gebruik.

Vir die LED self gebruik ek Sunlu deursigtige PLA en gebruik ongeveer 10% vulsel met konsentriese boonste en onderste lae.

By elke gebruik ek slegs die voorraad Prusa PET en Prusa PLA -instellings in Slic3r, en dit het almal goed uitgewerk. Ek kry 'n bietjie tou aan die bene, maar ek slaan net 'n blaasvlam oor hulle en die snaar verdwyn:)

Stap 11: Reuse LED -vergadering

Reuse LED -vergadering
Reuse LED -vergadering
Reuse LED -vergadering
Reuse LED -vergadering
Reuse LED -vergadering
Reuse LED -vergadering

Al die stukke pas baie maklik bymekaar; u moet 'n M3 -moer in die basis druk om die skroef vas te hou. U moet ook eers die NeoPixel deur die bene na die WEMOS lei. Ek het oorweeg om 'n paar verbindings in te sit, maar het besluit dat dit nie in die toekoms uitmekaar gaan kom nie.

Die lens pas net op die bene en dit word weer vasgemaak aan die voet met 'n enkele M3x20mm -bout. Miskien moet u 'n mes om die binnekant van die knoopsgat hardloop sodat dit mooi en vrylik kan beweeg. Die Wemos word vasgehou met 2 M2x8 -boute wat van onder af vasgeskroef is.

Om af te sluit, kan u 'n stuk vilt op die basis plak om glip te voorkom indien nodig.

Stap 12: Opstel- en bedieningsinstruksies

Image
Image
Opstel- en bedieningsinstruksies
Opstel- en bedieningsinstruksies
Opstel- en bedieningsinstruksies
Opstel- en bedieningsinstruksies

As alles gereed is en die opgelaaide sagteware 'n bietjie krag aan die usb gee, moet die GIANT LED verskyn en die LED sal ROOI word en dan in 'n geel kleur verander. Dit wys dat dit vanlyn is en wag vir wifi -konfigurasie. Soek die GIANT LED wifi -netwerk met 'n telefoon of 'n soortgelyke verbinding, en u kry die WiFi Manager -skerm. Dit het u plaaslike omgewing geskandeer en u voer net u wifi -besonderhede in, die ESP sal herlaai en u sal nou aanlyn met 'n groen lig wees. Dit sal ook op hierdie punt met IO verbind word, en die waarskuwingsligte sal verskyn, aangesien dit nog geen vorige boodskappe gesien het nie. Druk 'n paar keer op die knoppie en die GIANT LED is nou gereed vir opdaterings.

U kan op hierdie stadium na die Adafruit IO -dashboard gaan en 'n paar data by elke voer voeg en sien hoe die ligte in die waarskuwingsmodus gaan.

Hê pret !

Stap 13: Wat anders kan Giant LED doen

Wat anders kan Giant LED doen
Wat anders kan Giant LED doen
Wat anders kan Giant LED doen
Wat anders kan Giant LED doen

As u eers die basiese beginsels van 'n ontwerp soos hierdie het, en met die IFTTT, kan u dit vir baie dinge gebruik. Gmail -inbokswaarskuwing is eenvoudig, en aangesien Adafruit ook met Webhooks werk, kan ander programme ook data daarheen stuur. Ek het tans een opgestel om op te laai na 'n paar Big Query -data -oplaaie as deel van 'n werkprojek.

Met die knoppie kan u dit ook gebruik om ander GIANT LED's aan te dui; u kan een in verskillende huise hê en dit as 'n afstandsindikator gebruik om die ander party op die knoppie te druk om die lig te kanselleer.

Hier is 'n nuttige skakel oor die webhook -metode om data na die voer te stuur. In hierdie geval gebruik dit 'n IFTTT -applet, maar u kan net so maklik 'n CURL -metode met luislang gebruik.

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

In werklikheid is dit selfs moontlik om 'n OLED 128x32 in die basis in te pas om die LED aan te vul met teksinhoud, en ek werk tans daaraan en sal die STL's bywerk en die kode verskaf om die IO ook hiermee te gebruik.

Aanbeveel: