Përmbajtje:
- Hapi 1: Përbërësit
- Hapi 2: Mjetet
- Hapi 3: Kërkesat për kodin
- Hapi 4: Konfigurimi i Adafruit IO
- Hapi 5: Vendosja e IFTTT
- Hapi 6: Instalimi i bordeve ESP8266 në Arduino IDE
- Hapi 7: Instalimi i Bibliotekës së Menaxherit WiFi
- Hapi 8: Kodi ESP8266 - Me Printim Debug
- Hapi 9: I bashkoni të gjitha së bashku
- Hapi 10: Shtypni 3D
- Hapi 11: Asambleja Gjigande LED
- Hapi 12: Instalimi dhe udhëzimet e funksionimit
- Hapi 13: Çfarë tjetër mund të bëjë LED gjigand
Video: LED gjigand - Ndjekja e Adam Savage: 13 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:17
Këtu do të gjeni një interpretim të një LED gjigand, të ri-synuar për të vepruar si një llambë alarmi Twitter, YouTube dhe Twitch. Qëllimi kryesor për mua është të siguroj një alarm kur ka cicërima, video ose transmetime nga Adam Savage dhe ekipi i testuar, dhe të them të drejtën, disa njerëz të tjerë që ndjek si Robert Cowan, Marty the Mechanic dhe më shumë.
Natyrisht që mund të përdor twitter, twitch etj, në telefonin ose laptopin tim, por ka kaq shumë paralajmërime nga kaq shumë shërbime dhe njoftime sa që në thelb i fik të gjitha, plus telefoni kalon në modalitetin e heshtur pas orës 22:00 pasi do të funksionojë edhe me Webhooks kam një të konfiguruar gjithashtu për të marrë azhurnime nga disa tabela të Biq Query që janë të lidhura me punën në mënyrë që të më njoftojnë nëse janë përditësuar në rregull me një numër të mjaftueshëm regjistrimesh çdo ditë.
Adafruit ka një shërbim të quajtur Adafruit IO që doja të provoja dhe kam pasur qëllim gjatë gjithë vitit të përpiqem dhe të ri-trajtoj ESP8266 pasi dëgjova disa fjalë të mira në versionin Wemos D1 Mini 3. Gjithçka filloi të bashkohej kur gjeta një dizajn për një LED në thingiverse nga Astro73. Fillova me atë dhe e ripunova pak për shkallë dhe gjithashtu për të shtuar një buton shtypi në bazë dhe disa ndryshime të tjera kozmetike. Ju mund të gjeni remix këtu
Plus, mund të kontrollohet me zë përmes Alexa tani, si dhe me ardhjen e fjalës së shkyçjes alexa IFTTT.
Hapi 1: Përbërësit
Nëse doni të bëni një nga këto, lista e pjesëve është mjaft e vogël dhe gjithashtu relativisht e lirë. Nëse nuk e keni parasysh pritjen, mund t'i merrni pjesët kryesore nga jashtë, si dhe të ulni koston edhe më shumë. Përbërësi kryesor megjithatë është rasti dhe baza Giant LED. Nëse keni një printer 3D atëherë jeni gati, nëse jo, ka disa kompani të printerëve në internet që do të printojnë pjesët. Ka vetëm 3, kështu që ato gjithashtu duhet të jenë mjaft të lira.
1. Wemos D1 Mini R3
2. Neopixel 8 LED
3. Baza e shtypur dhe këmbët në PETG të zezë
4. Lente të shtypura dhe mbajtëse drite në PLA transparente
5. Ndërprerës i butonit me buton 12mm katror x1
6. Kapaku i butonit të rrumbullakët x1
7. Plumb USB dhe përshtatës për energjinë
8. Koka e butonit M3x20
9. Arrë M3
10. Rrufe në qiell M2x8mm x2
11. M2 Arrë x2
12. Disa tela të Zi, të Kuq dhe të Verdhë
13. Rezistenca 300-500 Ohm
14. Pjesë e vogël e zvogëlimit të nxehtësisë
Ju mund të përdorni pajisje të tjera ESP, apo edhe një Huzzah, por kasa është projektuar për mini -në e cila ka vrima montimi dhe shmang ngjitjen e saj.
Hapi 2: Mjetet
Për të krijuar dhe ndërtuar këtë do t'ju duhet sa më poshtë
1. Printer 3D
2. Çelësi Allen 1.5mm dhe 2mm
3. Hekuri dhe saldimi për saldim
4. Ndërprerës
5. Pincë
6. Ndjenjë humori
7. bisturi për zvogëlimin
Hapi 3: Kërkesat për kodin
Pra, para se të zhyteni në ndërtim, unë do të përshkruaj disa nga kërkesat që doja të përfshija në këtë. Shumica e këtyre i kisha në mendje para fillimit dhe kisha vizatuar disa rrjedha për të përcaktuar atë që do të provoja. Ndërsa vazhdoi edhe pse zbulova disa çështje me shërbimet që doja të trajtoja.
Kërkesat.
Doja që LED të më tregonte kur postohej një cicërimë ose video e re dhe gjithashtu rezulton kur fillon një kanal specifik Twitch. Unë gjithashtu doja që alarmi të vazhdonte derisa ta anuloja atë në mënyrë që nëse do të isha larg për një kohë do të dija se çfarë kishte ndodhur ndërsa kisha qenë larg. Unë gjithashtu doja që ajo të ishte e konfigurueshme për qasje në Wi-Fi pa pasur nevojë të ndryshoj edhe softuerin. Një gjë e fundit që u shfaq gjithashtu ishte përveç përgjigjes ndaj ngjarjeve drejtpërdrejt, më duhej që të kontrolloja çdo 15 minuta statusin e të dhënave të dhëna me të
Pra, me bazat në vend, gjëja tjetër ishte të kuptohej se si do të ekzekutohej secila pjesë. Ju mund t'i shihni idetë e mia më poshtë se cila pjesë do të trajtohej nga cili lloj softueri ose platforme.
1. Adafruit IO, kjo përdoret për të vendosur burimet për sinjalizimet, mund të merrni një llogari këtu
Unë do ta përdor këtë si një shërbim në radhë të mesazheve ku do t'i dërgoj mesazhe nga IFTTT dhe pastaj Giant LED i merr ato mesazhe në mënyrë që të veprojë mbi to.
2. IFTTT, https://ifttt.com/ dhe kjo përdoret për të skanuar kanalet e zgjedhura Twitter, YouTube dhe Twitch dhe më pas e dërgon ngjarjen te Adafruit IO
3. Kodi ESP8266 për të lexuar këto burime dhe kjo është djegur në ESP8266 duke përdorur standardin Arduino IDE (v1.8.8)
4. Kodi Arduino, i ngarkuar në ESP8266 për të lexuar burimet Adofruit IO dhe ndriçuar Neopixel
5. Kodi Arduino për të lexuar një buton për të pastruar alarmin
6. Jini në gjendje të konfiguroni përshtatësin WiFi pa pasur nevojë të rindizni ESP, dhe për këtë kam përdorur bibliotekën WiFi Manager nga Tzapu, https://github.com/tzapu/WiFiManager edhe pse opsionet e konfigurimit kishin nevojë për një ndryshim të vogël për të akomoduar Bibliotekat Adofruit IO.
Hapi 4: Konfigurimi i Adafruit IO
Ky është hapi i parë pasi do t'ju duhen çelësat e hyrjes që krijoni këtu dhe gjithashtu duhet të krijoni burimet tek të cilat IFTTT do të dërgojë ngjarje. Ju mund të vendosni si këtë ashtu edhe llogarinë IFTTT dhe të merrni gati gjithçka që të konfiguroni dhe punoni para se të kaloni në pjesën Arduino të këtij projekti.
Në vend që të kopjoni shembujt adafruit, mund të gjeni bazat këtu https://learn.adafruit.com/gmailbox/adafruit-io-se… të cilat do t’ju bëjnë të konfiguroni.
Pastaj për LED GIANT ju gjithashtu do të duhet të shtoni në kanalet e paracaktuara burimet e mëposhtme
1. ngjyra - kjo na lejon të ndryshojmë ngjyrën nga distanca me diçka si Alexa
2. kërcitje
3. twitterfan
4. youtubefan
Pastaj ju gjithashtu duhet të krijoni një grup të ri nëse nuk e keni thirrur tashmë input, atëherë në këtë grup krijoni edhe një burim të quajtur dixhital. Kjo do të na lejojë gjithashtu të shohim efektin e shtypjes së butonit nëse dëshirojmë të zgjerojmë përdorimin e kësaj pajisjeje për qëllime të tjera.
Nëse dëshironi gjithashtu që në këtë pikë të luani me pultin në mënyrë që t'i shtoni këto burime në të për informacion dhe qëllime të gjetjes së gabimeve.
Hapi 5: Vendosja e IFTTT
Ju gjithashtu mund të ndiqni udhëzuesin Adafruit këtu, https://learn.adafruit.com/gmailbox/ifttt-setup. Pastaj mund të zgjidhni veprimet e Twitter, youtube dhe twitch për të konfiguruar listat tuaja të shikimit dhe pastaj t'i dërgoni ato në burimet përkatëse. Unë kam bashkangjitur një video të thjeshtë në mënyrë që të shihni se sa e shpejtë mund të jetë.
Përveç kësaj, nëse doni të kontrolloni me zë ngjyrën e LED tuaj nga Alexa, tani ekziston një aplet i Amazon Alexa. Për të vendosur njërën nga këto, zgjidhni aplikacionin dhe zgjidhni fjalën blu, pastaj lidheni atë me burimin Adafruit që keni krijuar dhe quhet ngjyrë dhe shkruani 0000ff si të dhëna për t'u dërguar në atë kanal. Ju gjithashtu mund të kaloni komanda shtesë në këtë mënyrë tek LED GIANT si rivendosja ose rindezja nëse dëshironi.
Kur vendosni shkrepësin IFTTT ju duhet të zgjidhni të dhënat që dërgohen dhe kjo quhet "Përbërësit" në IFTTT. Pjesa e parë që na nevojitet është "Emri i përdoruesit", pastaj një hapësirë dhe pastaj "Krijuar në"
Ne i zgjedhim të dy artikujt në mënyrë që kur të dhënat të arrijnë në ESP8266, ne mund të zbulojmë nëse është një cicërimë e re dhe se është e ndryshme nga cicërimat e mëparshme nga të njëjtët përdorues. Ju mund të shihni se çfarë duhet të pëlqejë kjo nga imazhi i bashkangjitur.
Hapi 6: Instalimi i bordeve ESP8266 në Arduino IDE
Këtu gjërat janë pak më të ndërlikuara dhe mund të duhet pak më shumë kohë për tu rregulluar. Përveç ESP8266 ju keni nevojë edhe për bibliotekat Adofruit IO dhe mund të ndiqni këtë udhëzues për ato.
learn.adafruit.com/gmailbox/arduino-setup
Ekziston një shpjegim i thjeshtë se si të shtoni bordet ESP8266 edhe këtu
Mos harroni të siguroheni që Arduino IDE juaj është deri në versionin e fundit gjithashtu dhe unë kam qenë duke përdorur 1.8.8 në kohën e shkrimit të kësaj.
Një bibliotekë tjetër që ne përdorim është SimpleTimer pasi kjo do të na lejojë të vendosim një kohëmatës në sfond në mënyrë që të mund të kontrollojmë periodikisht burimet, udhëzimet për këtë mund të gjenden në përdorime të thjeshta https://playground.arduino.cc/Code/SimpleTimer# Shkarko
Hapi 7: Instalimi i Bibliotekës së Menaxherit WiFi
Për të na mundësuar që të marrim konfigurimin në distancë të konfigurimit të WiFi do të përdorim Tzapu Wifi Manger, detaje mbi këtë dhe si të instaloni bibliotekat mund të gjenden këtu, github.com/tzapu/WiFiManager
Ky është një instalim mjaft i thjeshtë i bibliotekave të jashtme dhe opsioni është tashmë në seksionin Menaxho bibliotekën e seksionit tuaj të mjeteve Arduino IDE.
Hapi 8: Kodi ESP8266 - Me Printim Debug
// Ky kod përmban deklarata të printuara kështu që ju mund të monitoroni funksionimin e tij përmes monitorit Serial
// Bazuar në Shembullin e daljes LED të Adafruit IO RGB // Adafruit investon kohë dhe burime duke siguruar këtë kod me burim të hapur. // Ju lutemi mbështesni Adafruit dhe pajisjet me burim të hapur duke blerë // produkte nga Adafruit! // // Shkruar nga Todd Treece për Adafruit Industries // E drejta e autorit (c) 2016-2017 Adafruit Industries // Licensuar sipas licencës MIT. // // I gjithë teksti i mësipërm duhet të përfshihet në çdo rishpërndarje. // përdor simpletimer https://playground.arduino.cc/Code/SimpleTimer#Do… // https://playground.arduino.cc/Code/SimpleTimer#Do… // pjesa tjetër e kodit nga Ajax Jones https:// playground.arduino.cc/Code/SimpleTimer#Do // https://playground.arduino.cc/Code/SimpleTimer#Do… // ******************* ******* Konfigurimi ********************************/ #përcakto IO_USERNAME "IO tuaj Emri i përdoruesit "#define IO_KEY" çelësi juaj IO "// lini bosh pasi ne do t'i marrim ato përmes Menaxherit Wifi, duket se po funksionon mirë në këtë mënyrë #define WIFI_SSID" "#define WIFI_PASS" "// ne nuk e përfshijmë këtë si AdafruitIO përfshini versionin e tij // #include //https://github.com/esp8266/Arduino // e nevojshme për bibliotekën #include #include #include "WiFiManager.h" //https://github.com/tzapu/WiFiManager # përfshijnë kohëmatësin SimpleTimer; #përfshi "AdafruitIO_WiFi.h" AdafruitIO_WiFi io (IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS); // *********************** NeoPixel konfiguron ********************* ********* // # #përfshi "Adafruit_NeoPixel.h" #përcakto PIXEL_PIN 5 #përcakto PIXEL_COUNT 8 int NUM_LEDS = PIXEL_COUNT; #përcaktoni PIXEL_TYPE NEO_GRB + NEO_KHZ800 Adafruit_NeoPixel pixel = Adafruit_NeoPixel (PIXEL_COUNT, PIXEL_PIN, PIXEL_TYPE); // Ngjyrat kryesore dhe ngjyra e parazgjedhur e gjatë default_color = 865554; ngjyrë e KUQE_ e gjatë = 2689027; // e kuqe #290803 e gjatë GREEN_color = 865554; // jeshile #0d3512 e gjatë BLUE_color = 856117; // blu #0d1035 e gjatë Purple_ngjyra = 2364968; // vjollce #241628 e gjatë NGJYRA E NDRYSHME = 15990784; // e kuqe e ndezur #f40000 // ---------------------------------------------- -------------------------------------------------- // koha ide e marrë nga https://www.safaribooksonline.com/library/view/arduino-cookbook-2nd/9781449321185/ch12.html https://playground.arduino.cc/Code/SimpleTimer#Do… https:// shesh lojërash. arduino.cc/Code/SimpleTimer#Do… const long oneSecond = 1000; // një sekondë është një mijë milisekonda e gjatë një minutë = një sekondë * 60; const gjatë pesëMinuta = njëMinute * 5; const gjatë pesëmbëdhjetë Minuta = pesëMinuta * 3; const long oneHour = pesëmbëdhjetë minuta * 4; // Përdoruesit e Twitter që na pëlqejnë më shumë dhe këto do të ndizen dhe të gjitha cicërimet e tjera që kemi zgjedhur do të ndryshojnë ngjyrën String SuperTweet = {"ajaxjones", "donttrythis", "prodnose", "testcomcom"}; String SuperTuber = {"testuar", "cowan", "martir"}; // vendos statusin e alarmit në mënyrë që të mund të vazhdojmë të ndezim LED -të në bool -in e lakut kryesor WHIZZY_TWEET = false; bool WHIZZY_TUBER = false; bool WHIZZY_TWITCH = false; // Ruan cicërimën e fundit dhe youtube kështu që ne mund të fusim shërbimin për të kontrolluar dy herë pas here String lasttweet = ""; String lasttube = ""; String lasttwitch = ""; // pin dixhital 5, ky është butoni që ne përdorim për të rivendosur ngjyrat e alarmit #përcakto BUTTON_PIN 4 // gjendjen e butonit, jo në të vërtetë atë që përdoret pasi po kërkojmë butonin në rrymën e ndërprerjes së bool = false; bool fundit = false; // vendosni burimin 'ngjyrë', vetëm në mënyrë që të testojmë dhe dërgojmë ngjyra sipas kërkesës ose të përdorim Alexa trigger AdafruitIO_Feed *color = io.feed ("ngjyra"); // vendosni ushqimin 'twitterfan' - Blue AdafruitIO_Feed *twitter = io.feed ("twitterfan"); // vendosni ushqimin 'youtubefan' - Red AdafruitIO_Feed *youtube = io.feed ("youtubefan"); // vendosni ushqimin 'kërcitje' - Purple AdafruitIO_Feed *twitch = io.feed ("twitch"); // vendosni ushqimin 'dixhital' AdafruitIO_Feed *dixhital = io.feed ("input.digital"); // ---------------------------------------------------- ----------------------------------------- void setup () {// vendosni pin i butonit si hyrje, ne përdorim INPUT_PULLUP pasi nuk kemi pse të përdorim rezistencë të jashtme pinMode (BUTTON_PIN, INPUT_PULLUP); // Bashkëngjitni një ndërprerje vektorit ISR për butonin attachInterrupt (digitalPinToInterrupt (BUTTON_PIN), handleInterrupt, FALLING); // Filloni serialin dhe prisni që monitori serik të hapet dhe më pas lidheni me io.adafruit.com Serial.begin (115200); ndërsa (! Serial); // neopixel begin pixels.begin (); // Vendoseni gjendjen fillestare në të kuqe në mënyrë që të dimë që jemi jashtë linje dhe po punojmë setAll (0xf4, 0x00, 0x00); // e kuqe // për testim, kjo do të tregojë statusin e WiFi WiFi.printDiag (Serial); WiFiManager wifiManager; // vendos përgjigjen e thirrjes që thirret kur lidhet me një WiFi të mëparshëm dështon dhe hyn në modalitetin e Pikës së Qasjes wifiManager.setAPCallback (configModeCallback); // rivendosni cilësimet e ruajtura, mos komentoni këtë rresht tjetër për të detyruar testimin e Menaxherit WiFi në mënyrë që të lidheni // përdorni telefonin ose tabletin tuaj për të kërkuar rrjetin Giant LED që do të shfaqet //wifiManager.resetSettings (); // cakton afatin kohor derisa porta e konfigurimit të fiket // e dobishme për t'i bërë të gjitha të provosh ose të flesh në sekonda wifiManager.setTimeout (240); nëse (! wifiManager.autoConnect ("LED GIANT")) {Serial.println (F ("dështoi të lidhet dhe goditi timeout")); // rivendosni dhe provoni përsëri vonesën (3000); ESP.reset (); vonesa (1000); } // për testimin mund të shohim nëse kemi kredencialet e duhura për t'u lidhur //Serial.println (WiFi. SSID ()); //Serial.println(WiFi.psk())//WiFi.filloj (WIFI_SSID, WIFI_PASS); // ndërsa (WiFi.status ()! = WL_CONNECTED) {// vonesë (500); //Serial.print ("."); //} Serial.println (); Serial.println (F ("WiFi i lidhur")); Serial.println (F ("Adresa IP:")); Serial.println (WiFi.localIP ()); // tani lidhemi me shërbimin IO Serial.print (F ("Lidhja me Adafruit IO")); io.connect (); // vendosni një mbajtës mesazhesh për burimin 'ngjyrë'. ngjyra-> onMessage (handleMessage); // vendosni një mbajtës mesazhesh për burimin 'twitterfan'. twitter-> onMessage (twitterMessage); // vendosni një mbajtës mesazhesh për burimin 'youtubefan'. youtube-> onMessage (youtubeMessage); // vendosni një mbajtës mesazhesh për ushqimin 'twitch'. twitch-> onMessage (twitchMessage); // prisni një lidhje ndërsa (io.status () <AIO_CONNECTED) {Serial.print (F (".")); vonesë (500); } // jemi lidhur Serial.println (); Serial.println (io.statusText ()); //Serial.println (madhësia e (SuperTweet)); //Serial.println (madhësia e (SuperTweet [0]))); // Shtypni një listë të llogarive të Twitter që po presim (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 ("'"); } // Shtypni një listë të llogarive të YouTube që po presim (byte idx = 0; idx merrni (); // kërkoni gjendjet ekzistuese të burimeve, kështu që do t'ju duhet të shtypni rivendosjen kur fillon youtube -> merrni (); twitter-> merrni (); twitch-> merrni (); për (int i = 0; i marr (); twitter-> merrni (); twitch-> merrni (); Serial.print ("marrja e disa tweets"); Serial.print ("uptime (s):"); Serial.println (millis () / 1000);} // ---------------- ------------------------------------------------------ ----------------------- lak i pavlefshëm () {// io.run (); kërkohet për të gjitha skicat. io.run (); kohëmatësi. drejto (); nëse (WHIZZY_TWEET == vërtetë) {RunningLights (0x0d, 0x10, 0x35, 250);} nëse (WHIZZY_TUBER == vërtetë) {RunningLights (0x29, 0x08, 0x03, 250);} nëse (WHIZZY_TWITCH ==) {Dritat e Vrapimit (0x24, 0x16, 0x28, 250);}} // --------------------------------- ------------------------------------------------------ ------ // vendosni ndërprerjen për të pastruar alarmin kur shtypni butonin dhe kontrolloni dorezën e zbrazëtisë në internetInterrupt () {WHIZZY_TWEET = i rremë; WHIZZY_TUBER = false; WHIZZY_TWITCH = false; aktuale = e vërtetë; // dërgoni gjendjen aktuale në ushqimin 'input.digital' në adafruit io kështu që ne mund ta shohim atë dixhital-> ruaj (aktual); për (int i = 0; i ")); Serial.print (aktual); Serial.print (F (" dhe ngjyra e paracaktuar ")); Serial.println (default_color); current = false; digital-> save (current); ndërsa [WiFi.status ()! = WL_CONNECTED) {vonesë (500); setAll (0xeb, 0xfb, 0x03); // Ebfb03 e verdhë} // -------------- ------------------------------------------------------ ------------------------- // kjo quhet sa herë që vjen një mesazh 'twitter'-vendosni LED në Blue void twitterMessage (të dhënat AdafruitIO_Data *) {String tweeter = (data-> toString ()); tweeter.toLowerCase (); if ((lasttweet! = Tweeter) && (tweeter! = "")) {Lasttweet = tweeter; setAll (0x0d, 0x10, 0x35); // Vendosni ngjyrën blu tweet Serial.print (F ("Tweet:")); Serial.print (tweeter); // kontrolloni për një cicërimë të preferuar për (byte idx = 0; idx = 0) {// Le të bëjmë cicërimat whizzy #0d1035 WHIZZY_TWEET = e vërtetë; Serial.print ("by"); Serial.print (SuperTweet [idx]);}} Serial.println ("");}} // --------- ------------------------------------------------------ -------------------------------- - // kjo quhet sa herë që vjen një mesazh 'youtube'- vendosni LED në RED void youtubeMessage (AdafruitIO_Data *data) {String tuber = (data-> toString ()); tuber.toLowerCase (); if ((lasttube! = zhardhok) && (zhardhok! = "")) {lasttube = zhardhok; setAll (0x29, 0x08,0x03); // Vendosni ngjyrën e kuqe të youtube 290803 Serial.print (F ("Youtube:")); Serial.println (zhardhok); // kontrolloni për një Youtuber të preferuar për (byte idx = 0; idx = 0) {// Le t'i bëjmë videot e tyre të bezdisshme #0d1035 WHIZZY_TUBER = e vërtetë; Serial.print ("by"); Serial.print (SuperTuber [idx]); }} Serial.println (""); }} // -------------------------------------------------- ---------------------------------------------- // kjo quhet sa herë që a mbërrin mesazhi 'twitch' - vendosni LED në PURPLE void twitchMessage (AdafruitIO_Data *data) {String twitch = (data-> toString ()); twitch.toLowerCase (); nëse ((lasttwitch! = twitch) && (twitch! = "")) {lasttwitch = twitch; setAll (0x24, 0x16, 0x28); // Vendos ngjyrosje vjollce twitch #241628 Serial.print (F ("Twitch:")); Serial.println (kërcitje); // Asnjë kontroll për një Twitcher të preferuar ne ndjekim vetëm një WHIZZY_TUBER = e vërtetë; Serial.println (""); }} // -------------------------------------------------- ---------------------------------------------- // ky funksion thirret sa herë që merret një mesazh "me ngjyra" // i cili do të vendosë ngjyrën e parazgjedhur gjatë fillimit bazuar në vlerën e fundit të ushqimit me ngjyra void handleMessage (të dhënat e AdafruitIO_Data *) {// printoni vlerat RGB dhe vlerën gjashtëkëndore Serial.print (F ("Vlera HEX e marrë: ")); Serial.println (të dhëna-> vlera ()); ngjyra e gjatë = të dhëna-> toNeoPixel (); // default_color = ngjyra; Serial.print (F ("Pranuar HEX gjatë:")); Serial.println (ngjyra); për (int i = 0; i <PIXEL_COUNT; ++ i) {pixels.setPixelColor (i, ngjyra); } showStrip (); } // -------------------------------------------------- ---------------------------------------------- void RunningLights (bajt i kuq, bajt jeshil, byte blu, int WaveDelay) {int Pozicioni = 0; për (int j = 0; j <NUM_LEDS; j ++) {Pozicion ++; // = 0; // Pozicioni + Norma; për (int i = 0; i <NUM_LEDS; i ++) {setPixel (i, ((mëkati (i + Pozicioni) * 127 + 128) / 255) * e kuqe, ((mëkati (i + Pozicioni) * 127 + 128) / 255)*jeshile, ((mëkati (i + Pozicioni)*127 + 128) / 255)*blu); } showStrip (); vonesa (WaveDelay); }} // -------------------------------------------------- ------------------------------------------ // // rutinat neopixel void setAll (byte e kuqe, byte jeshile, byte blu) {për (int i = 0; i getConfigPortalSSID ()); // hyri në modalitetin e konfigurimit, vendosni Neo Pixel në ngjyrë vjollce #241628 = 2364968 // setAll (0x24, 0x16, 0x28); setAll (0xeb, 0xfb, 0x03); // e verdhe ebfb03}
Hapi 9: I bashkoni të gjitha së bashku
Çdo gjë në këtë dizajn është ngjitur së bashku dhe duhet të jetë mjaft e lehtë për tu menaxhuar. Kam përdorur 3 tela me ngjyra të ndryshme për t'i bërë gjërat më të lehta dhe gjëja e parë është të matni tela për neopixel në WEMOS. I gërshetova ato dhe vendosa një pjesë të vogël të tkurrjes së nxehtësisë dhe pastaj i bashkova siç tregohet në mënyrë që të qëndrojë e sheshtë në thjerrëza.
Butoni ishte i radhës dhe do të përshtatet mirë në bazë. Njëra anë e butonit shkon te Gnd dhe kjo është e shtrembëruar së bashku me tela Ground të neopixelit. Më pas i kam konservuar dhe i kam bashkuar si një në kunjin e tokëzuar të WEMOS.
Marrja e fuqisë për Neopixel shkon në 5v PIn. Teli i sinjalit, ose Di (të dhënat në) të neopixelit është ngjitur në pinin Wemos si D1. Ka disa faqe që sugjerojnë futjen e një rezistence 300-500 Ohm në seri me këtë, por deri më tani nuk kam pasur probleme, kështu që tani për tani është vetëm një lidhje e drejtpërdrejtë.
Për të siguruar praktikë të mirë, dhe me këshillën e vendeve si Adafruit kam vënë një rezistencë 330R në seri me vijën Di në neopixel. Shtë për të parandaluar LED -in e parë në unazë të lëshojë piksitë magjike dhe thjesht bëhet duke prerë tela dhe duke vendosur një rezistencë brenda. Një pjesë e vogël e zvogëlimit të nxehtësisë do të ndalojë çdo pantallona të shkurtra të pabindura. Ju mund ta shkurtoni rezistencën mjaft të shkurtër dhe thjesht vendosni një kunj në secilin skaj dhe bëni të njëjtën gjë me tela.
Teli tjetër për butonin shkon drejtpërdrejt në pin D2. Nuk ka nevojë për një rezistencë tërheqëse pasi kjo trajtohet brenda softuerit duke vendosur një komandë PULLUP kundër atij kunjit.
Kjo është në thelb gjithçka që ka për të.
Hapi 10: Shtypni 3D
Bashkangjitur këtu janë skedarët STL që ne po përdorim për LED gjigant. Skedarët janë një remix/ripunim i astro73 dhe ju mund t'i kapni të gjithë skedarët nga https://www.thingiverse.com/thing:3290837 gjithashtu.
Për këmbët dhe bazën kam përdorur një fije fije Sunlu PETG+ e cila funksionon vërtet mirë në Prusa i3 dhe kam përdorur ose 10 ose 20% mbushje të gyroidit.
Për vetë ZHEL -in unë kam qenë duke përdorur Sunlu PLA transparente dhe duke përdorur rreth 10% mbushje me shtresa koncentrike të sipërme dhe të poshtme.
Me secilën unë përdor vetëm cilësimet e aksioneve Prusa PET dhe Prusa PLA në Slic3r dhe të gjitha kanë funksionuar mirë. Unë marr pak tela në këmbë, por thjesht lëshoj një djegëse mbi to dhe tela zhduket:)
Hapi 11: Asambleja Gjigande LED
Të gjitha pjesët shkojnë së bashku me të vërtetë lehtë, ju duhet të shtypni një arrë M3 në bazë për të lejuar që vida të mbajë sendin së bashku. Ju gjithashtu duhet së pari të lidhni NeoPixel në WEMOS përmes këmbëve. Po mendoja se si të vendosja disa lidhje, por vendosa që nuk do të ndahej në të ardhmen.
Lentja është vetëm një shtytje shtytëse mbi këmbët dhe ato nga ana tjetër janë të lidhura në bazë me një rrufe të vetme M3x20mm. Ju mund të keni nevojë të drejtoni një thikë rreth pjesës së brendshme të vrimës së butonit në mënyrë që të lëvizë bukur dhe lirshëm. Wemos mbahet në vend me 2 bulona prizë M2x8 të dehur nga poshtë.
Për të përfunduar, mund të ngjitni një pjesë të ndjerë në bazë për të ndaluar çdo rrëshqitje nëse kërkohet.
Hapi 12: Instalimi dhe udhëzimet e funksionimit
Me gjithçka gati dhe softueri i ngarkuar aplikoni pak energji në usb dhe LED GIANT duhet të dalë dhe LED do të shkojë në të Kuq dhe pastaj do të ndryshojë në një ngjyrë të verdhë. Kjo tregon se është jashtë linje dhe po pret konfigurimin wifi. Duke përdorur një telefon ose një pamje të ngjashme për rrjetin wifi LED GIANT dhe lidheni dhe do të merrni ekranin e Menaxherit WiFi. Do të ketë skanuar zonën tuaj lokale dhe ju vetëm futni të dhënat tuaja wifi, ESP do të rindizet dhe tani do të jeni online me një dritë jeshile. Gjithashtu do të lidhet në këtë pikë me IO dhe dritat e alarmit do të dalin pasi nuk ka parë ende ndonjë mesazh të mëparshëm. Shtypni butonin disa herë dhe LED GIANT tani është gati për mbërritjen e përditësimeve.
Ju mund të shkoni në pultin Adofruit IO në këtë pikë dhe të shtoni disa të dhëna në secilën burim dhe të shihni që dritat të hyjnë në gjendje alarmi.
Argëtohu!
Hapi 13: Çfarë tjetër mund të bëjë LED gjigand
Pasi të keni bazat e një dizajni si ky dhe me IFTTT mund ta përdorni për shumë gjëra. Paralajmërimi i kutisë hyrëse në Gmail është i lehtë, dhe pasi Adafruit gjithashtu punon me Webhooks, programe të tjera mund t'i dërgojnë të dhëna edhe atij. Unë kam një që po krijohet për momentin për të ndjekur disa ngarkime të të dhënave të Big Query si pjesë e një projekti pune.
Gjithashtu me butonin mund ta përdorni për të sinjalizuar LED të tjerë GIANT gjithashtu, mund ta keni një në shtëpi të ndryshme dhe ta përdorni si një tregues të largët për të bërë që pala tjetër të shtypë butonin për të anuluar dritën.
Këtu është një lidhje e dobishme në metodën e lidhjes së internetit për dërgimin e të dhënave në burim. Në këtë rast po përdor një aplet IFTTT por po aq lehtë mund të përdorësh një metodë CURL me python.
io.adafruit.com/blog/notebook/2018/11/26/f…
Në fakt është madje e mundur të vendosni një OLED 128x32 në bazë për të plotësuar LED me disa përmbajtje tekstuale dhe aktualisht jam duke punuar në këtë dhe do të azhurnoj STL -të dhe do të ofrojë kodin për të përdorur IO -në edhe me këtë.
Recommended:
Spërkat! Fotografi me pika të ujit: 10 hapa (me fotografi)
Spërkat! Uji Droplet Photography: Unë kam xhiruar pika uji për një kohë tani …. që nga viti 2017. Ende mbaj mend se sa i emocionuar isha kur mora pika uji që kërcejnë nga sipërfaqja me konfigurimin tim të parë që bëra me Littlebits … Me këto konfigurimet (Marku I dhe Marku II) u frymëzova
Bëni fotografi të shkëlqyera me një iPhone: 9 hapa (me fotografi)
Bëni fotografi të mrekullueshme me një iPhone: Shumica prej nesh mbajnë një smartphone me vete kudo këto ditë, kështu që është e rëndësishme të dini se si ta përdorni kamerën tuaj të smartphone për të bërë fotografi të mrekullueshme! Kam vetëm një smartphone për disa vjet dhe më ka pëlqyer të kem një aparat fotografik të mirë për të dokumentuar gjërat që kam
Kungulli Adam Savage i kontrolluar nga Alexa: 5 hapa (me fotografi)
Kungulli Adam Savage i kontrolluar nga Alexa: Të gjitha dritat në shtëpinë time janë të zgjuara, kështu që jam mësuar të bërtas kur ndizen dhe fiken, por përfundon duke më bërë të dukem memec kur bërtas në një dritë që nuk është Me Dhe unë dukem veçanërisht memec kur bërtas në qirinj. Normalisht kjo nuk është shumë
Si të çmontoni një kompjuter me hapa të thjeshtë dhe fotografi: 13 hapa (me fotografi)
Si të çmontoni një kompjuter me hapa dhe fotografi të lehta: Ky është një udhëzim se si të çmontoni një kompjuter. Shumica e përbërësve bazë janë modularë dhe hiqen lehtë. Sidoqoftë, është e rëndësishme që të jeni të organizuar në lidhje me të. Kjo do t'ju ndihmojë të mos humbni pjesë, dhe gjithashtu në bërjen e ri -montimit
RGB LED Light Stick (për fotografi gjatë natës dhe dritë të lirë): 4 hapa (me fotografi)
RGB LED Light Stick (për fotografinë gjatë natës dhe Freezelight): Çfarë është shkopi fotografik i dritës LED RGB? Nëse ju pëlqen fotografia dhe veçanërisht fotografia gjatë natës, atëherë jam shumë i sigurt, ju tashmë e dini se çfarë është kjo! Nëse jo, mund të them se është një pajisje mjaft e mrekullueshme që mund t'ju ndihmojë në krijimin e mrekullueshëm