Talaan ng mga Nilalaman:

Giant LED - Pagsubaybay sa Adam Savage: 13 Hakbang (na may Mga Larawan)
Giant LED - Pagsubaybay sa Adam Savage: 13 Hakbang (na may Mga Larawan)

Video: Giant LED - Pagsubaybay sa Adam Savage: 13 Hakbang (na may Mga Larawan)

Video: Giant LED - Pagsubaybay sa Adam Savage: 13 Hakbang (na may Mga Larawan)
Video: Jesus Came to Save Sinners | Charles Spurgeon | Free Christian Audiobook 2024, Hulyo
Anonim
Giant LED - Pagsubaybay sa Adam Savage
Giant LED - Pagsubaybay sa Adam Savage
Giant LED - Pagsubaybay sa Adam Savage
Giant LED - Pagsubaybay sa Adam Savage
Giant LED - Pagsubaybay sa Adam Savage
Giant LED - Pagsubaybay sa Adam Savage

Mahahanap mo rito ang isang rendisyon ng isang Giant LED, muling nilayon upang kumilos bilang isang lampara sa alerto sa Twitter, YouTube at Twitch. Pangunahing layunin para sa akin ang magbigay ng isang alerto kapag may mga tweet, video o twitch stream ni Adam Savage at ng nasubok na koponan, at upang maging patas, isang pares ng ibang mga tao na sinusundan ko tulad nina Robert Cowan, Marty the Mechanic at marami pa.

Malinaw na maaari kong gamitin ang kaba, twitch atbp, sa aking telepono o laptop, ngunit maraming mga alerto mula sa napakaraming mga serbisyo at abiso na talaga namang pinapatay ko ang mga ito, kasama ang telepono ay napunta sa mode na tahimik pagkatapos ng 10:00 Dahil gagana rin ito Ang mga Webhook ay mayroon din akong naka-configure upang matanggap ang mga pag-update mula sa ilang mga talahanayan ng Biq Query na nauugnay sa trabaho upang ipaalam sa akin kung na-update ang mga ito ng OK na may sapat na bilang ng mga tala bawat araw.

Ang Adafruit ay may isang serbisyo na tinatawag na Adafruit IO na nais kong subukan at naging buong kahulugan ako sa buong taon upang subukan at muling harapin ang ESP8266 matapos marinig ang ilang magagandang salita sa paglabas ng Wemos D1 Mini 3. Nagsimula itong magkasama nang makahanap ako ng disenyo para sa isang LED sa thingiverse ng Astro73. Nagsimula ako sa na at muling binago ito nang kaunti para sa sukat at din upang magdagdag ng isang pindutan ng push sa base at ilang iba pang mga pagbabago sa kosmetiko. Mahahanap mo ang remix dito

Dagdag nito maaari itong kontrolin ng boses sa pamamagitan ng Alexa ngayon pati na rin ang pagkakaroon ng IFTTT Alexa trigger word.

Hakbang 1: Mga Sangkap

Kung nais mong gumawa ng isa sa mga ito ang listahan ng mga bahagi ay medyo maliit at nagpapalabas din ng mura. Kung hindi mo alintana ang paghihintay maaari mong mapagkukunan ang mga pangunahing bahagi mula sa ibang bansa pati na rin ang pagbawas ng gastos kahit na higit pa. Gayunpaman, ang pangunahing sangkap ay ang Giant LED case at base. Kung mayroon kang isang 3D printer pagkatapos ay handa ka na, kung hindi mayroong ilang mga kumpanya ng online na printer na mag-print ng mga bahagi. Mayroon lamang 3 kaya dapat ding medyo mura.

1. Wemos D1 Mini R3

2. Neopixel 8 LED

3. Naka-print na base at binti sa itim na PETG

4. Naka-print na lens at may-hawak ng ilaw sa transparent PLA

5. Push Button Switch 12mm square x1

6. Round Push Button Cap x1

7. USB lead at adapter para sa lakas

8. Ulo ng pindutan ng M3x20

9. M3 Nut

10. M2x8mm bolt x2

11. M2 Nut x2

12. Ilang Itim, Pula at Dilaw na kawad

13. 300-500 Ohm Resistor

14. Maliit na piraso ng heatshrink

Maaari kang gumamit ng iba pang mga aparatong ESP, o kahit isang Huzzah, ngunit ang kaso ay idinisenyo para sa mini na mayroong mga tumataas na butas at iniiwasang magkaroon ng pandikit.

Hakbang 2: Mga tool

Upang likhain at buuin ito kakailanganin mo ang sumusunod

1. 3D printer

2. 1.5mm at 2mm Allen key

3. Panghinang na bakal at panghinang

4. Mga Tagapagpatupad

5. Mga Plier

6. Sense of humor

7. Scalpel para sa pagbabawas

Hakbang 3: Mga Kinakailangan sa Code

Kaya bago kami sumisid sa pagbuo ay ibabalangkas ko ang ilan sa mga kinakailangan na nais kong isama dito. Karamihan sa mga ito ay nasa isip ko bago magsimula at naisulat ko ang ilang mga daloy upang maisagawa kung ano ang susubukan ko. Sa pagpapatuloy nito kahit na natuklasan ko ang ilang mga isyu sa mga serbisyo na nais kong tugunan.

Mga Kinakailangan

Nais kong ipakita sa akin ng LED kapag ang isang bagong tweet o video ay nai-post at lumalabas din kapag nagsimula ang isang specfic na Twitch channel. Nais ko rin ang alerto na magpatuloy hanggang sa kanselahin ko ito upang kung malayo ako sandali malalaman ko kung anong nangyari habang wala ako. Nais ko rin itong mai-configure para sa pag-access sa Wi-Fi nang hindi kinakailangang i-reflash din ang software. Ang isang huling bagay na na-crop up din ay bilang karagdagan sa pagtugon sa mga kaganapan na live, kailangan ko ito upang suriin bawat 15 minuto ang katayuan ng data na pinakain dito

Kaya't sa mga pangunahing kaalaman sa lugar, ang susunod na bagay ay ang pag-eehersisyo kung paano isasagawa ang bawat bahagi. Maaari mong makita ang aking mga ideya sa ibaba kung aling bahagi ang hawakan ng aling uri ng software o platform.

1. Adafruit IO, ginagamit ito upang i-set up ang mga feed para sa mga alerto, maaari kang makakuha ng isang account dito

Gagamitin ko ito bilang isang serbisyo ng pagpila ng mensahe kung saan magpapadala ako ng mga mensahe mula sa IFTTT at pagkatapos ay tatanggapin ng Giant LED ang mga mensaheng iyon upang ito ay kumilos sa kanila.

2. IFTTT, https://ifttt.com/ at ginagamit ito upang i-scan ang napiling mga channel sa Twitter, YouTube at Twitch at pagkatapos ay ipapadala ang kaganapan sa Adafruit IO

3. ESP8266 code upang mabasa ang mga feed na ito at nasunog ito sa ESP8266 sa pamamagitan ng paggamit ng karaniwang Arduino IDE (v1.8.8)

4. Arduino code, na-load sa ESP8266 upang basahin ang mga feed ng Adafruit IO at sindihan ang Neopixel

5. Arduino code upang mabasa ang isang pindutan ng push upang i-clear ang alerto

6. Ma-configure ang WiFi adapter nang hindi kinakailangang reburn ang ESP, at para dito ginamit ko ang library ng WiFi Manager ni Tzapu, https://github.com/tzapu/WiFiManager bagaman ang mga pagpipilian sa pag-setup ay nangangailangan ng kaunting pagbabago upang maipasok ang Mga aklatan ng Adafruit IO.

Hakbang 4: Pag-set up ng Adafruit IO

Pag-set up ng Adafruit IO
Pag-set up ng Adafruit IO

Ito ang unang hakbang dahil kakailanganin mo ang mga access key na nilikha mo rito at kailangan mo ring likhain ang mga feed na padadalhan ng IFTTT ng mga kaganapan. Maaari mong i-set up ang parehong ito at ang IFTTT account at medyo masulit ang lahat at magtrabaho bago ka lumipat sa bahagi ng Arduino ng proyektong ito.

Sa halip na kopyahin ang mga halimbawa ng adafruit maaari mong makita ang mga pangunahing kaalaman dito https://learn.adafruit.com/gmailbox/adafruit-io-se… na makakapag-setup sa iyo.

Pagkatapos para sa GIANT LED kakailanganin mo ring idagdag sa mga default na channel ang mga sumusunod na feed

1. kulay - pinapayagan kaming baguhin ang kulay nang malayuan sa isang bagay tulad ng Alexa

2. twitch

3. twitterfan

4. youtubefan

Pagkatapos ay kailangan mo ring lumikha ng isang bagong pangkat kung hindi mo pa tinawag na input, pagkatapos sa pangkat na ito ay lumikha din ng isang feed na tinatawag na digital. Hahayaan din naming makita ang epekto ng pagpindot sa pindutan kung nais naming mapalawak ang paggamit ng aparatong ito para sa iba pang mga layunin.

Kung nais mo rin sa puntong ito ay upang i-play sa dashboard upang maaari mong idagdag ang mga feed na ito dito para sa impormasyon at mga hangarin sa paghahanap ng kasalanan.

Hakbang 5: Pagse-set up ng IFTTT

Pagse-set up ng IFTTT
Pagse-set up ng IFTTT
Pagse-set up ng IFTTT
Pagse-set up ng IFTTT

Maaari mo ring sundin ang gabay ng Adafruit dito, https://learn.adafruit.com/gmailbox/ifttt-setup. Maaari mong piliin ang mga pagkilos sa Twitter, youtube at twitch upang mai-set up ang iyong mga listahan ng panonood at pagkatapos ay ipadala ang mga ito sa mga nauugnay na feed. Nag-attach ako ng isang simpleng video upang makita mo kung gaano ito kabilis.

Bilang karagdagan kung nais mong kontrolin ang boses ng kulay ng iyong LED ng Alexa mayroon na ngayong isang Amazon Alexa applet. Upang maitakda ang isa sa mga ito piliin ang app at piliin ang salitang asul, pagkatapos ay ikonekta ito sa feed ng Adafruit na na-set up mong tinatawag na kulay at ipasok ang 0000ff bilang data upang ipadala sa channel na iyon. Maaari mo ring ipasa ang labis na mga utos sa ganitong paraan sa GIANT LED tulad ng pag-reset o pag-reboot kung nais mo.

Kapag na-set up mo ang trigger ng IFTTT kailangan mong piliin ang data na ipinadala at tinatawag itong "Mga Sangkap" sa IFTTT. Ang unang piraso na kailangan namin ay ang "UserName" pagkatapos ay isang puwang at pagkatapos ang "CreatedAt"

Pinipili namin ang parehong mga item upang kapag dumating ang data sa ESP8266 maaari naming makita kung ito ay isang bagong tweet at naiiba ito sa mga nakaraang pag-tweet ng parehong mga gumagamit. Maaari mong makita kung ano ang dapat na gusto nito mula sa naka-attach na imahe.

Hakbang 6: Pag-install ng Mga Board ng ESP8266 Sa Arduino IDE

Dito medyo mahirap ang mga bagay at maaaring tumagal ng kaunting oras upang maiayos. Bilang karagdagan sa ESP8266 kailangan mo rin ang mga aklatan ng Adafruit IO at maaari mong sundin ang gabay na ito para sa mga iyon.

learn.adafruit.com/gmailbox/arduino-setup

Mayroong isang simpleng paliwanag kung paano idagdag ang mga board ng ESP8266 din dito

Huwag kalimutan na tiyakin na ang iyong Arduino IDE ay nasa pinakabagong bersyon din at gumagamit ako ng 1.8.8 sa oras ng pagsulat nito.

Ang isa pang ibang silid-aklatan na ginagamit namin ay ang SimpleTimer dahil papayagan kaming mag-set up ng isang background timer upang maaari naming suriin pana-panahon ang mga feed, mga tagubilin para sa mga ito ay matatagpuan sa mga gumagamit ng https://playground.arduino.cc/Code/SimpleTimer# Mag-download

Hakbang 7: Pag-install ng WiFi Manager Library

Upang paganahin kaming makakuha ng malayuang pagsasaayos ng pag-setup ng WiFi gagamitin namin ang Tzapu Wifi Manger, ang mga detalye tungkol dito at kung paano i-install ang mga aklatan ay matatagpuan dito, github.com/tzapu/WiFiManager

Ito ay isang simpleng simpleng pag-install ng mga panlabas na aklatan at ang pagpipilian ay nasa seksyon na Pamahalaan ang library ng iyong seksyon ng mga tool ng Arduino IDE.

Hakbang 8: Ang Code ng ESP8266 - Sa Pag-print ng Debug

// Ang code na ito ay naglalaman ng mga naka-print na pahayag upang masubaybayan mo ang pagpapatakbo nito sa pamamagitan ng Serial monitor

// Batay sa Adafruit IO RGB LED Output Halimbawa // Ang Adafruit ay namumuhunan ng oras at mga mapagkukunan na nagbibigay ng bukas na source code na ito. // Mangyaring suportahan ang Adafruit at buksan ang mapagkukunan ng hardware sa pamamagitan ng pagbili ng // mga produkto mula sa Adafruit! // // Sinulat ni Todd Treece para sa Adafruit Industries // Copyright (c) 2016-2017 Adafruit Industries // Lisensyado sa ilalim ng lisensya ng MIT. // // Lahat ng teksto sa itaas ay dapat na isama sa anumang muling pamamahagi. // gumagamit ng simpletimer https://playground.arduino.cc/Code/SimpleTimer#Do… // https://playground.arduino.cc/Code/SimpleTimer#Do… // natitirang code ni Ajax Jones https:// playground.arduino.cc/Code/SimpleTimer#Do // https://playground.arduino.cc/Code/SimpleTimer#Do… // ***************** ***** Pag-configure ***** ***** ***** ***** ***** / # tukuyin ang IO_USERNAME "iyong IO Username na "#define IO_KEY" iyong IO Key "// iwanang blangko dahil mailalabas namin sila sa pamamagitan ng Wifi Manager, tila gumagana nang maayos sa ganitong paraan #define WIFI_SSID" "#define WIFI_PASS" "// hindi namin ito isasama bilang isama ang bersyon nito // # isama //https://github.com/esp8266/Arduino // kinakailangan para sa library # isama ang # isama ang # isama ang "WiFiManager.h" //https://github.com/tzapu/WiFiManager # isama ang timer ng SimpleTimer; # isama ang "AdafruitIO_WiFi.h" AdafruitIO_WiFi io (IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS); // ***** ********* // #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); // Pangunahing mga kulay at ang default na kulay mahabang default_color = 865554; mahabang RED_color = 2689027; // red # 290803 haba ng GREEN_color = 865554; // green # 0d3512 mahabang BLUE_color = 856117; // blue # 0d1035 haba PURPLE_color = 2364968; // purple # 241628 haba BRIGHTRED_color = 15990784; // maliwanag na pula # f40000 // ----------------- ------------- // oras kinuha ang ideya mula sa https://www.safaribooksonline.com/library/view/arduino-cookbook-2nd/9781449321185/ch12.html https://playground.arduino.cc/Code/SimpleTimer#Do… https:// playground. arduino.cc/Code/SimpleTimer#Do… const long oneSecond = 1000; // isang segundo ay isang libong milliseconds ang haba ng oneMinute = oneSecond * 60; Const long fiveMinutes = oneMinute * 5; const haba ng labing limangMinutes = fiveMinutes * 3; Const long oneHour = fifteenMinutes * 4; // Mga Gumagamit ng Twitter na pinaka gusto namin at ang mga ito ay mag-flash at lahat ng iba pang mga tweet na aming napili ay babaguhin lamang ang kulay na String SuperTweet = {"ajaxjones", "donttrythis", "prodnose", "sinubukan" "; String SuperTuber = {"nasubukan", "cowan", "marty"}; // nagtatakda ng katayuan ng alerto upang mapanatili namin ang pag-flash ng LEDS sa pangunahing loop bool WHIZZY_TWEET = false; bool WHIZZY_TUBER = false; bool WHIZZY_TWITCH = false; // Nai-save ang huling tweet at youtube upang maaari naming sundutin ang serbisyo upang i-double check bawat ngayon at pagkatapos String lasttweet = ""; String lasttube = ""; String lasttwitch = ""; // digital pin 5, ito ang pindutan na ginagamit namin upang i-reset ang mga kulay ng alerto #define BUTTON_PIN 4 // button state, hindi talaga iyon ginamit habang hinahanap namin ang pindutan sa interupt bool current = false; bool last = false; // i-set up ang feed na 'color', para lamang masubukan at makapagpadala kami ng mga kulay ayon sa demand o gamitin ang Alexa trigger AdafruitIO_Feed * color = io.feed ("color"); // set up the 'twitterfan' feed - Blue AdafruitIO_Feed * twitter = io.feed ("twitterfan"); // set up the 'youtubefan' feed - Red AdafruitIO_Feed * youtube = io.feed ("youtubefan"); // set up the 'twitch' feed - Lila AdafruitIO_Feed * twitch = io.feed ("twitch"); // set up the 'digital' feed AdafruitIO_Feed * digital = io.feed ("input.digital"); // ----------------- --------------------------------------- void setup () {// itakda ang pindutan ng pin bilang isang input, gumagamit kami ng INPUT_PULLUP dahil hindi namin kailangang gumamit ng panlabas na resistors pinMode (BUTTON_PIN, INPUT_PULLUP); // Maglakip ng isang nakakagambala sa vector ng ISR para sa pindutan na attachInterrupt (digitalPinToInterrupt (BUTTON_PIN), hawakanInterrupt, FALLING); // Start serial and wait for serial monitor to open then connect to io.adafruit.com Serial.begin (115200); habang (! Serial); // neopixel magsisimula ng mga pixel.begin (); // Itakda ang intial state sa isang pula upang malaman namin na offline kami at nagtatrabaho setAll (0xf4, 0x00, 0x00); // red // para sa pagsubok, ipapakita nito ang katayuan ng WiFi WiFi.printDiag (Serial); WiFiManager wifiManager; // set callback na tatawagin kapag kumonekta sa isang nakaraang WiFi ay nabigo, at pumapasok sa Access Point mode wifiManager.setAPCallback (configModeCallback); // reset na naka-save na mga setting, un puna ang susunod na linya na ito upang pilitin ang pagsubok ng WiFi Manager upang maikonekta mo // gamitin ang iyong telepono o tablet upang hanapin ang Giant LED network na lilitaw //wifiManager.resetSettings (); // nagtatakda ng timeout hanggang sa naka-off ang portal ng pagsasaayos // kapaki-pakinabang upang subukang muli o matulog // sa mga segundo wifiManager.setTimeout (240); kung (! wifiManager.autoConnect ("GIANT LED")) {Serial.println (F ("nabigo upang kumonekta at pindutin ang timeout")); // reset at subukang muli antalahin (3000); ESP.reset (); pagkaantala (1000); } // para sa pagsubok maaari nating makita kung mayroon tayong mga tamang kredensyal upang ikonekta ang //Serial.println (WiFi. SSID ()); //Serial.println(WiFi.psk());//WiFi.begin(WIFI_SSID, WIFI_PASS); // habang (WiFi.status ()! = WL_CONNected) {// pagkaantala (500); //Serial.print ("."); //} Serial.println (); Serial.println (F ("konektado sa WiFi")); Serial.println (F ("IP address:")); Serial.println (WiFi.localIP ()); // ngayon kumonekta kami sa serbisyo ng IO Serial.print (F ("Kumokonekta sa Adafruit IO")); io.connect (); // mag-set up ng isang handler ng mensahe para sa feed na 'kulay'. kulay-> onMessage (handleMessage); // mag-set up ng isang handler ng mensahe para sa feed na 'twitterfan'. twitter-> onMessage (twitterMessage); // mag-set up ng isang handler ng mensahe para sa feed na 'youtubefan'. youtube-> onMessage (youtubeMessage); // mag-set up ng isang handler ng mensahe para sa feed na 'twitch'. twitch-> onMessage (twitchMessage); // maghintay para sa isang koneksyon habang (io.status () <AIO_CONNected) {Serial.print (F (".")); pagkaantala (500); } // kami ay konektado sa Serial.println (); Serial.println (io.statusText ()); //Serial.println(sizeof(SuperTweet)); //Serial.println(sizeof(SuperTweet[0])); // Print out a list of the Twitter accounts we are waiting for (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 ("'"); } // I-print ang isang listahan ng mga YouTube account na hinihintay namin (byte idx = 0; idx get (); // hilingin ang umiiral na mga estado ng feed, kaya kakailanganin mong pindutin ang pag-reset habang nagsisimula ito sa youtube -> get (); twitter-> get (); twitch-> get (); for (int i = 0; I get (); twitter-> get (); twitch-> get (); Serial.print ("pagkuha ng ilang mga tweet"); Serial.print ("uptime (s):"); Serial.println (millis () / 1000);} // ---------------- ---- ----------------- void loop () {// io.run (); ay kinakailangan para sa lahat ng mga sketch. io.run (); timer. patakbuhin (); kung (WHIZZY_TWEET == totoo) {RunningLights (0x0d, 0x10, 0x35, 250);} kung (WHIZZY_TUBER == totoo) {RunningLights (0x29, 0x08, 0x03, 250);} kung (WHIZZY_TWITCH == totoo) {RunningLights (0x24, 0x16, 0x28, 250);}} // ------------------------------- ---- ------ // itakda ang interupt upang i-clear ang alerto kapag ang pindutan ay pinindot at suriin ang internet void handleInterrupt () {WHIZZY_TWEET = hindi totoo; WHIZZY_TUBER = false; WHIZZY_TWITCH = false; kasalukuyang = totoo; // ipadala ang kasalukuyang estado sa feed na 'input.digital' sa adafruit io upang makita natin ito sa digital-> i-save (kasalukuyang); para sa (int i = 0; i ")); Serial.print (kasalukuyang); Serial.print (F (" at default na kulay ")); Serial.println (default_color); current = false; digital-> save (kasalukuyang); habang (WiFi.status ()! = WL_CONNected) {pagkaantala (500); setAll (0xeb, 0xfb, 0x03); // Yellow ebfb03}} // ---------------- ---- ---------------- {String tweeter = (data-> toString ()); tweeter.toLowerCase (); if ((lasttweet! = Tweeter) && (tweeter! = "")) {Lasttweet = tweeter; setAll (0x0d, 0x10, 0x35); // Set tweet blue color Serial.print (F ("Tweet:")); Serial.print (tweeter); // check for a favourtite tweeter for (byte idx = 0; idx = 0) {// Hinahayaan nilang tweets whizzy # 0d1035 WHIZZY_TWEET = true; Serial.print ("by"); Serial.print (SuperTweet [idx]);}} Serial.println ("");}} // --------- ---- ---------------------------- - // tinatawag ito tuwing dumating ang isang 'youtube' na mensahe - itakda ang LED sa RED void youtubeMessage (AdafruitIO_Data * data) {String tuber = (data-> toString ()); tuber.toLowerCase (); kung ((lasttube! = tuber) && (tuber! = "")) {lasttube = tuber; setAll (0x29, 0x08,0x03); // Set youtube red color 290803 Serial.print (F ("Youtube:")); Serial.println (tuber); // check for a favourtite Youtuber for (byte idx = 0; idx = 0) {// Hinahayaan nating gawing whizzy ang kanilang mga video # 0d1035 WHIZZY_TUBER = totoo; Serial.print ("by"); Serial.print (SuperTuber [idx]); }} Serial.println (""); }} // ----------------- ------------------------------------------- // tinatawag ito tuwing a Dumating ang mensahe na 'twitch' - itakda ang LED sa PURPLE void twitchMessage (AdafruitIO_Data * data) {String twitch = (data-> toString ()); twitch.toLowerCase (); kung ((lasttwitch! = twitch) && (twitch! = "")) {lasttwitch = twitch; setAll (0x24, 0x16, 0x28); // Set twitch purple color # 241628 Serial.print (F ("Twitch:")); Serial.println (twitch); // No check for a favourtite Twitcher sinusunod lang namin ang isang WHIZZY_TUBER = true; Serial.println (""); }} // ----------------- ------------------------------------------- // ang pagpapaandar na ito ay tinatawag tuwing isang mensahe na 'kulay' ang natanggap // na magtatakda ng default na kulay sa pagsisimula batay sa huling halaga ng feed ng kulay na walang bisa na handleMessage (AdafruitIO_Data * data) {// i-print ang mga halagang RGB at hex na halaga Serial.print (F ("Natanggap ang halaga ng HEX: ")); Serial.println (data-> halaga ()); mahabang kulay = data-> toNeoPixel (); // default_color = color; Serial.print (F ("Natanggap ang haba ng HEX:")); Serial.println (kulay); para sa (int i = 0; i <PIXEL_COUNT; ++ i) {pix.setPixelColor (i, kulay); } showStrip (); } // -------------------------------------------- ------------- void RunningLights (byte red, byte green, byte blue, int WaveDelay) {int Position = 0; para sa (int j = 0; j <NUM_LEDS; j ++) {Posisyon ++; // = 0; // Posisyon + Rate; para sa (int i = 0; i <NUM_LEDS; i ++) {setPixel (i, ((sin (i + Position) * 127 + 128) / 255) * pula, ((sin (i + Position) * 127 + 128) / 255) * berde, ((kasalanan (i + Posisyon) * 127 + 128) / 255) * asul); } showStrip (); antala (WaveDelay); }} // ----------------- ------------------------------------------- // Ang Neopixel ay nagsasanay ng walang bisa na setAll (byte red, byte green, byte blue) {para (int i = 0; i getConfigPortalSSID ()); // ipinasok ang config mode, itakda ang Neo Pixel sa lila # 241628 = 2364968 // setAll (0x24, 0x16, 0x28); setAll (0xeb, 0xfb, 0x03); // Yellow ebfb03}

Hakbang 9: Pinagsasama-sama ang Lahat ng Ito

Pinagsasama ang Lahat ng Ito
Pinagsasama ang Lahat ng Ito
Pinagsasama ang Lahat ng Ito
Pinagsasama ang Lahat ng Ito
Pinagsasama ang Lahat ng Ito
Pinagsasama ang Lahat ng Ito

Lahat ng nasa disenyo na ito ay magkakasama at dapat na madaling pamahalaan. Gumamit ako ng 3 magkakaibang kulay na mga wire upang gawing madali ang mga bagay at ang unang bagay ay upang masukat ang kawad para sa neopixel sa WEMOS. Inilagay ko ang mga ito at nilagay ang isang maliit na piraso ng heat-shrink at pagkatapos ay hinanginan ito tulad ng ipinakita upang mahiga ito sa lens.

Susunod ang pindutan at magkakasya sa base. Ang isang gilid ng pindutan ay napupunta sa Gnd at ito ay napilipit kasama ang Ground wire ng neopixel. Pagkatapos ay tinned ko sila at pinaghinang bilang isa sa ground pin ng WEMOS.

Ang lakas ng lead para sa Neopixel ay pupunta sa 5v PIn. Ang signal wire, o Di (data sa) ng neopixel ay solder sa Wemos pin bilang D1. Mayroong ilang mga site na nagmumungkahi ng pagpasok ng isang 300-500 Ohm risistor na serye nito, ngunit hanggang ngayon wala pa akong mga problema kaya sa ngayon ay isang direktang koneksyon lamang.

Upang matiyak ang mahusay na kasanayan, at sa payo ng mga site tulad ng Adafruit naglagay ako ng isang 330R risistor sa serye na may linya na Di sa neopixel. Ito ay upang maiwasan ang unang LED sa singsing mula sa pagpapalabas ng mga magic pixies at simpleng gawin sa pamamagitan ng paggupit ng wire at paglalagay ng isang risistor. Ang isang maliit na piraso ng heatshrink ay titigil sa anumang maliksi na shorts. Maaari mong i-cut ang risistor medyo maikli at maglagay lamang ng isang hoop sa bawat dulo at gawin ang pareho sa kawad.

Ang iba pang kawad para sa pindutan ay direktang i-pin ang D2. Hindi na kailangan para sa isang pullup risistor dahil ito ay hinahawakan sa loob ng software sa pamamagitan ng paglalagay ng isang utos na PULLUP laban sa pin na iyon.

Karaniwan na ang lahat doon.

Hakbang 10: 3D ang Print

Nakalakip dito ang mga STL file na ginagamit namin para sa Giant LED. Ang mga file ay isang remix / rework ng astro73 at maaari mong kunin ang lahat ng mga file mula sa https://www.thingiverse.com/thing:3290837 din.

Para sa mga binti at base ginamit ko ang isang Sunlu PETG + filament na gumagana nang mahusay sa Prusa i3 at ginamit ko ang alinman sa 10 o 20% gyroid infill.

Para sa mismong LED ay gumagamit ako ng Sunlu transparent PLA at gumagamit ng humigit-kumulang 10% na infill na may concentric na tuktok at ilalim na mga layer.

Sa bawat isa ginagamit ko lamang ang mga setting ng stock Prusa PET at Prusa PLA sa Slic3r at lahat sila ay nagtrabaho nang maayos. Nakakakuha ako ng kaunting pag-string sa mga binti, ngunit binubuhat ko lamang ang isang blowtorch sa kanila at ang pag-string ay nawala:)

Hakbang 11: Giant LED Assembly

Giant LED Assembly
Giant LED Assembly
Giant LED Assembly
Giant LED Assembly
Giant LED Assembly
Giant LED Assembly

Madaling magkakasama ang lahat ng mga piraso, kailangan mong pindutin ang isang M3 nut sa base upang payagan ang tornilyo na hawakan ang bagay. Kailangan mo ring i-wire ang NeoPixel sa WEMOS sa pamamagitan din ng mga binti. Isinasaalang-alang ko kung paano maglagay ng ilang mga konektor, ngunit nagpasya na hindi ito magkakalayo sa hinaharap.

Ang lens ay isang push fit lamang sa mga binti at sila naman ay naka-bolt sa base na may isang solong M3x20mm bolt. Maaaring kailanganin mong magpatakbo ng isang kutsilyo sa paligid ng butas ng pindutan upang gumalaw ito ng maganda at malaya. Ang Wemos ay gaganapin sa lugar na may 2 M2x8 socket bolts na naka-screw in mula sa ibaba.

Upang tapusin, maaari mong kola ang isang piraso ng nadama sa base upang ihinto ang anumang pagdulas kung kinakailangan.

Hakbang 12: Mga Tagubilin sa Pag-setup at Pagpapatakbo

Image
Image
Mga Tagubilin sa Pag-setup at Pagpapatakbo
Mga Tagubilin sa Pag-setup at Pagpapatakbo
Mga Tagubilin sa Pag-setup at Pagpapatakbo
Mga Tagubilin sa Pag-setup at Pagpapatakbo

Sa lahat ng handa at ang na-upload na software maglapat ng ilang kapangyarihan sa usb at ang GIANT LED ay dapat na dumating at ang LED ay pupunta sa PULA at pagkatapos ay magbago sa isang kulay-dilaw na kulay. Ipinapakita nito na ito ay nasa linya at naghihintay para sa wifi config. Ang paggamit ng isang telepono o katulad na hitsura para sa GIANT LED wifi network at kumonekta at makukuha mo ang screen ng WiFi Manager. Ito ay mai-scan ang iyong lokal na lugar at ipasok mo lang ang iyong mga detalye sa wifi, ang ESP ay reboot at magiging online ka ngayon na may berdeng ilaw. Makikonekta din nito sa puntong ito sa IO at ang mga ilaw ng alerto ay lalabas dahil wala pa itong nakitang anumang mga nakaraang mensahe. Pindutin ang pindutan ng ilang oras at ang GIANT LED ay handa na para sa mga update na dumating.

Maaari kang pumunta sa dashboard ng Adafruit IO sa puntong ito at magdagdag ng ilang data sa bawat feed at makita ang mga ilaw na papunta sa mode na alerto.

Magsaya ka!

Hakbang 13: Ano ang Magagawa ng Giant LED

Ano ang Magagawa ng Giant LED
Ano ang Magagawa ng Giant LED
Ano ang Magagawa ng Giant LED
Ano ang Magagawa ng Giant LED

Kapag mayroon ka ng mga pangunahing kaalaman sa isang disenyo tulad nito at sa IFTTT maaari mo itong magamit para sa maraming mga bagay. Ang alerto sa inbox ng Gmail ay isang madali, at dahil gumagana rin ang Adafruit sa Webhooks ang ibang mga programa ay maaaring magpadala rin ng data dito. Mayroon akong isang na-set up sa ngayon upang subaybayan ang ilang mga pag-upload ng data ng Big Query bilang bahagi ng isang proyekto sa trabaho.

Gayundin sa pindutan maaari mo itong magamit upang mag-signal ng iba pang mga GIANT LED din, maaari kang magkaroon ng isa sa iba't ibang mga bahay at gamitin ito bilang isang malayong tagapagpahiwatig upang makuha ang iba pang partido upang pindutin ang pindutan upang kanselahin ang ilaw.

Narito ang isang kapaki-pakinabang na link sa pamamaraan ng webhook ng pagpapadala ng data sa feed. Sa kasong ito gumagamit ito ng isang IFTTT applet ngunit madali mo lang magagamit ang isang CURL na pamamaraan sa sawa.

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

Sa katunayan posible kahit na magkasya ang isang OLED 128x32 sa base upang madagdagan ang LED na may ilang nilalaman ng tekstuwal at kasalukuyang ginagawa ko ito at i-a-update ang STL at ibibigay ang code upang magamit din ang IO dito.

Inirerekumendang: