Мазмұны:

Үлкен жарықдиодты - Адам Саважды қадағалау: 13 қадам (суреттермен)
Үлкен жарықдиодты - Адам Саважды қадағалау: 13 қадам (суреттермен)

Бейне: Үлкен жарықдиодты - Адам Саважды қадағалау: 13 қадам (суреттермен)

Бейне: Үлкен жарықдиодты - Адам Саважды қадағалау: 13 қадам (суреттермен)
Бейне: Жоба: «Толық циклді жарықдиодты өндірісті ұйымдастыру» 2024, Шілде
Anonim
Giant LED - Адам Саважды қадағалау
Giant LED - Адам Саважды қадағалау
Giant LED - Адам Саважды қадағалау
Giant LED - Адам Саважды қадағалау
Giant LED - Адам Саважды қадағалау
Giant LED - Адам Саважды қадағалау

Мұнда сіз Twitter, YouTube және Twitch ескерту шамы ретінде жұмыс істеуге арналған Giant LED жарықдиодты таба аласыз. Мен үшін басты мақсат - Адам Саваж мен сыналған топтың твиттері, бейнелері немесе бұрмаланған ағындары болған кезде ескерту беру және әділдік үшін, Роберт Коуан, Марти Механик және тағы басқалар сияқты мен ұстанатын басқа адамдар.

Әрине, мен телефонда немесе ноутбукта twitter, twitch және т.б қолдана алар едім, бірақ көптеген қызметтер мен хабарландырулардың көптеген ескертулері бар, мен олардың бәрін өшіремін, сонымен қатар телефон түнгі 10 -дан кейін үнсіз режимге өтеді. Менде де Webhooks бар, олар жұмыспен байланысты кейбір Biq Query кестелерінен жаңартуларды алу үшін конфигурацияланған, олар маған күн сайын жазбалардың жеткілікті санымен жақсы жаңартылғанын хабарлайды.

Adafruit-те Adafruit IO деп аталатын қызмет бар, мен оны сынап көргім келді, мен Wemos D1 Mini шығарылымы туралы жақсы сөздерді естігеннен кейін ESP8266-ны қайталап көруді жыл бойы ойладым. Astro73 арқылы әр түрлі жарықдиодты жарықдиодты құрастыру. Мен мұны бастадым, мен оны масштабта қайта өңдедім, сонымен қатар негізге басу түймесін және басқа косметикалық өзгерістерді енгіздім. Ремиксті мына жерден таба аласыз

Сонымен қатар, оны Alexa арқылы дауысты басқаруға болады, ал IFTTT alexa триггер сөзінің пайда болуымен.

1 -қадам: ингредиенттер

Егер сіз олардың біреуін жасағыңыз келсе, бөлшектердің тізімі өте аз, сонымен қатар арзан. Егер күтуге қарсы болмасаңыз, негізгі бөлшектерді шетелден алуға болады, сонымен қатар құнын одан да төмендетуге болады. Негізгі ингредиент - бұл алып диодты корпус пен негіз. Егер сізде 3D принтер болса, онда сіз дайынсыз, егер болмаса, бөлшектерді басып шығаратын бірнеше онлайн -принтерлік компаниялар бар. Тек 3 бар, сондықтан олар өте арзан болуы керек.

1. Wemos D1 Mini R3

2. Neopixel 8 жарық диоды

3. Қара PETG негізі мен аяқтары басылған

4. Мөлдір PLA -да басылған линза мен жарық ұстағыш

5. Басқыш батырмасы 12 мм шаршы x1

6. Дөңгелек басу түймесінің қақпағы x1

7. USB сымы мен қуат адаптері

8. M3x20 түймесінің басы

9. М3 жаңғақ

10. М2х8мм болт x2

11. М2 гайка x2

12. Кейбір қара, қызыл және сары сымдар

13. 300-500 Ом резисторы

14. Жылу тартқыштың кішкене бөлігі

Сіз басқа ESP құрылғыларын немесе тіпті гуззаны қолдана аласыз, бірақ корпус шағын тесіктерге арналған және оны желімдеуді болдырмайды.

2 -қадам: Құралдар

Мұны жасау және құру үшін сізге келесілер қажет

1. 3D -принтер

2. 1,5 мм және 2 мм Аллен кілті

3. Дәнекерлеуіш пен дәнекерлеуіш

4. Жыртқыштар

5. Қысқыштар

6. Әзіл сезімі

7. Қырқуға арналған скальпель

3 -қадам: код талаптары

Біз құрылысқа кіріспес бұрын, мен оған қосқым келетін кейбір талаптарды сипаттаймын. Мен олардың көпшілігін бастамас бұрын ойладым және мен не істегім келетінін анықтау үшін бірнеше ағындарды сыздым. Әрі қарай, мен шешкім келетін қызметтерге қатысты кейбір мәселелерді таптым.

Талаптар.

Мен светодиод жаңа твит немесе видео жарияланған кезде көрсеткенін қалаймын, сонымен қатар Twitch -тің арнайы арнасы іске қосылғанда шығады. Мен сондай -ақ ескертудің күшін жойғанша жалғастыра бергім келді, егер мен біраз уақыт болмаса да, мен жоқ кезде не болғанын білемін. Мен сонымен қатар бағдарламалық жасақтаманы жаңартпай-ақ, Wi-Fi желісіне қосылу үшін конфигурацияланғанын қалаймын. Ең соңғы нәрсе - оқиғаларға тікелей жауап беруден басқа, маған әр 15 минут сайын оған берілетін деректердің күйін тексеру қажет болды.

Негізгі ережелерді ескере отырып, келесі нәрсе әр бөліктің қалай орындалатынын анықтау болды. Төменде сіз менің идеяларымды бағдарламалық қамтамасыз етудің немесе платформаның қай түрімен өңделетінін көре аласыз.

1. Adafruit IO, бұл ескертулерге арналарды орнату үшін пайдаланылады, сіз мына жерден есептік жазбаны ала аласыз

Мен мұны хабарлама кезегі қызметі ретінде қолданатын боламын, онда мен оған IFTTT хабарламаларын жіберемін, содан кейін Giant LED сол хабарламаларды қабылдай алады.

2. IFTTT, https://ifttt.com/ және бұл таңдалған Twitter, YouTube және Twitch арналарын сканерлеу үшін қолданылады, содан кейін оқиғаны Adafruit IO -ға жібереді.

3. Бұл арналарды оқу үшін ESP8266 коды және бұл стандартты Arduino IDE (v1.8.8) көмегімен ESP8266 -ға жазылады.

4. Adafruit IO арналарын оқу және неопиксельді жарықтандыру үшін ESP8266 -ға жүктелген Arduino коды.

5. Ескертуді өшіру үшін батырманы оқу үшін Arduino коды

6. ESP -ті қайта қоспай -ақ WiFi адаптерін конфигурациялауға болады, сондықтан мен WiFi менеджерінің кітапханасын Tzapu арқылы қолдандым, https://github.com/tzapu/WiFiManager, бірақ орнату опцияларын орналастыру үшін аздап өзгерту қажет болды. Adafruit IO кітапханалары.

4 -қадам: Adafruit IO орнату

Adafruit IO орнату
Adafruit IO орнату

Бұл бірінші қадам, өйткені сізге мұнда кіру кілттері қажет болады, сонымен қатар IFTTT оқиғаларды жіберетін арналарды жасау қажет. Сіз осы және IFTTT есептік жазбасын орната аласыз және осы жобаның Arduino бөлігіне өтпес бұрын бәрін реттеп, жұмыс жасай аласыз.

Adafruit мысалдарын көшіруден гөрі, негіздерді мына жерден таба аласыз https://learn.adafruit.com/gmailbox/adafruit-io-se… бұл сізге орнатуға мүмкіндік береді.

Содан кейін GIANT LED үшін келесі арналарды әдепкі арналарға қосу қажет болады

1. түс - бұл бізге Alexa сияқты нәрсемен қашықтан түс өзгертуге мүмкіндік береді

2. иілу

3. twitterfan

4. youtubefan

Сонымен қатар, егер сіз әлі кіріс деп аталмаған болсаңыз, жаңа топ құруыңыз керек, содан кейін бұл топқа цифрлық деп аталатын арнаны жасаңыз. Бұл, егер біз бұл құрылғыны басқа мақсаттарда қолдануды кеңейткіміз келсе, түймені басудың әсерін көруге мүмкіндік береді.

Егер сіз дәл осы уақытта бақылау тақтасында ойнағыңыз келсе, оған ақпарат беру және ақауларды анықтау мақсатында осы арналарды қосуға болады.

5 -қадам: IFTTT орнату

IFTTT орнату
IFTTT орнату
IFTTT орнату
IFTTT орнату

Сондай-ақ, мұнда Adafruit нұсқаулығын орындауға болады, https://learn.adafruit.com/gmailbox/ifttt-setup. Содан кейін сіз қарау тізімдерін орнату үшін Twitter, youtube және twitch әрекеттерін таңдай аласыз, содан кейін оларды тиісті арналарға жібере аласыз. Мен қарапайым бейнені тіркедім, сонда сіз оның қаншалықты тез болатынын көре аласыз.

Сонымен қатар, егер сіз Alexa арқылы жарықдиодты түспен басқарғыңыз келсе, қазір Amazon Alexa апплеті бар. Олардың біреуін орнату үшін қолданбаны таңдап, көк сөзді таңдаңыз, содан кейін оны сіз орнатқан Adafruit арнасына қосыңыз деп аталатын түс деп атайды және сол арнаға жіберілетін деректер ретінде 0000ff енгізіңіз. Егер сіз қаласаңыз, GIANT LED -ге қалпына келтіру немесе қайта жүктеу сияқты қосымша пәрмендерді жібере аласыз.

IFTTT триггерін орнатқан кезде сіз жіберілетін деректерді таңдауыңыз керек және бұл IFTTT -де «ингредиенттер» деп аталады. Бізге қажет бірінші бөлік - бұл «Пайдаланушы аты», содан кейін бос орын, содан кейін «CreatedAt»

Біз екі элементті де таңдаймыз, сондықтан деректер ESP8266 -ға келгенде, біз оның жаңа твит екенін және оның сол пайдаланушылардың алдыңғы твиттерінен айырмашылығын анықтай аламыз. Қосылған суреттен бұл не ұнайтынын көруге болады.

6 -қадам: ESP8266 тақталарын Arduino IDE -ге орнату

Бұл жерде біршама күрделі және реттеуге біраз уақыт кетуі мүмкін. ESP8266 -дан басқа сізге Adafruit IO кітапханалары қажет және сіз олар үшін осы нұсқаулықты орындауға болады.

learn.adafruit.com/gmailbox/arduino-setup

Мұнда ESP8266 тақталарын қалай қосу керектігі туралы қарапайым түсініктеме бар

Сіздің Arduino IDE -нің соңғы нұсқасы бар екеніне көз жеткізуді ұмытпаңыз, мен оны жазу кезінде 1.8.8 қолдандым.

Біз қолданатын тағы бір кітапхана - бұл SimpleTimer, өйткені бұл фид таймерін орнатуға мүмкіндік береді, осылайша біз арналарды мезгіл -мезгіл тексере аламыз, бұған арналған нұсқауларды https://playground.arduino.cc/Code/SimpleTimer# пайдалану бойынша табуға болады. Жүктеу

7 -қадам: WiFi менеджер кітапханасын орнату

WiFi қондырғысын қашықтан конфигурациялауға мүмкіндік беру үшін біз Tzapu Wifi Manger бағдарламасын қолданамыз, бұл туралы және кітапханаларды қалай орнату керектігін мына жерден табуға болады, github.com/tzapu/WiFiManager

Бұл сыртқы кітапханалардың өте қарапайым қондырғысы және опция Arduino IDE құралдар бөлімінің кітапхананы басқару бөлімінде бар.

8 -қадам: ESP8266 коды - жөндеуді басу арқылы

// Бұл кодта басып шығару мәлімдемелері бар, сондықтан сіз оның жұмысын сериялық монитор арқылы бақылай аласыз

// Adafruit IO RGB светодиодты шығару мысалына негізделген // Adafruit осы ашық бастапқы кодты қамтамасыз ететін уақыт пен ресурстарды инвестициялайды. // Adafruit өнімдерін сатып алу арқылы Adafruit және ашық бастапқы жабдықты қолдауды сұраймыз! // // Adafruit Industries үшін Todd Treece жазған // Авторлық құқық (c) 2016-2017 Adafruit Industries // MIT лицензиясы бойынша лицензияланған. // // Жоғарыдағы барлық мәтін кез келген қайта бөлуге қосылуы керек. // https://playground.arduino.cc/Code/SimpleTimer#Do… пайдаланады // https://playground.arduino.cc/Code/SimpleTimer#Do… // Ajax Jones кодының қалған бөлігі https:// playground.arduino.cc/Code/SimpleTimer#Do // https://playground.arduino.cc/Code/SimpleTimer#Do… // ******************* ******* Конфигурация *******************************/ #анықтаңыз IO_USERNAME «сіздің IO Пайдаланушының аты « #IO_KEY» сіздің IO кілтіңізді анықтайды «// бос қалдырыңыз, өйткені біз оларды Wifi менеджері арқылы аламыз, осылайша жақсы жұмыс істейді» WIFI_SSID «анықтаңыз» « #WIFI_PASS анықтаңыз» «// біз мұны AdafruitIO ретінде қоспаймыз оның нұсқасын қосу // #қосу //https://github.com/esp8266/Arduino // кітапханаға қажет #қосу #қосу #«WiFiManager.h» қосу //https://github.com/tzapu/WiFiManager # SimpleTimer таймерін қосады; #«AdafruitIO_WiFi.h» қосу AdafruitIO_WiFi io (IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS); // ************************ NeoPixel конфигурациясы ********************** ********* // #«Adafruit_NeoPixel.h» қосу #PIXEL_PIN 5 анықтау #PIXEL_COUNT 8 int NUM_LEDS = PIXEL_COUNT анықтау; #define PIXEL_TYPE NEO_GRB + NEO_KHZ800 Adafruit_NeoPixel пиксельдер = Adafruit_NeoPixel (PIXEL_COUNT, PIXEL_PIN, PIXEL_TYPE); // Негізгі түстер мен әдепкі түс long default_color = 865554; ұзын RED_color = 2689027; // қызыл #290803 ұзын GREEN_color = 865554; // жасыл #0d3512 ұзын BLUE_color = 856117; // көк #0d1035 ұзын PURPLE_color = 2364968; // күлгін #241628 ұзын BRIGHTRED_color = 15990784; // ашық қызыл #f40000 // ------------------------------------------ ---------------------------------------------- // уақыт https://www.safaribooksonline.com/library/view/arduino-cookbook-2nd/9781449321185/ch12.html https://playground.arduino.cc/Code/SimpleTimer#Do… https:// ойын алаңынан алынды. arduino.cc/Code/SimpleTimer#Do… const oneSecond = 1000; // секунд - мың миллисекунд const const oneMinute = oneSecond * 60; const long fiveMinutes = oneMinute * 5; const long fifteenMinutes = fiveMinutes * 3; const long oneHour = он бесМінут * 4; // Бізге ең ұнайтын Twitter қолданушылары жыпылықтайды, ал біз таңдаған барлық басқа твиттер String SuperTweet = {«ajaxjones», «donttrythis», «prodnose», «testcom»} түсін өзгертеді; String SuperTuber = {«тексерілген», «кован», «marty»}; // ескерту күйін орнатады, осылайша біз негізгі циклдегі жарықдиодты жыпылықтауды жалғастыра аламыз WHIZZY_TWEET = false; boiz WHIZZY_TUBER = жалған; bool WHIZZY_TWITCH = жалған; // Соңғы твит пен ютубты сақтайды, осылайша біз қызметімізді үнемі тексеріп отыруға мәжбүрлей аламыз, String lasttweet = «»; Lasttube жолы = «»; Lasttwitch жолы = «»; // сандық түйреуіш 5, бұл біз ескерту түстерін қалпына келтіру үшін пайдаланатын түйме #dutine BUTTON_PIN 4 // түйменің күйін, бірақ біз интерпульстің болуын іздеген кезде қолданылмайтын боль = жалған; bool last = false; // «түс» арнасын орнатыңыз, біз сұраныста түстерді тексере және жібере аламыз немесе Alexa триггерін қолдана аламыз AdafruitIO_Feed *color = io.feed («түс»); // 'twitterfan' арнасын орнату - Blue AdafruitIO_Feed *twitter = io.feed («twitterfan»); // 'youtubefan' арнасын орнатыңыз - Red AdafruitIO_Feed *youtube = io.feed («youtubefan»); // «бұралу» арнасын орнатыңыз - Purple AdafruitIO_Feed *twitch = io.feed («бұралу»); // «сандық» арнаны орнату AdafruitIO_Feed *digital = io.feed («input.digital»); // ------------------------------------------------ ----------------------------------------- void setup () {// орнатыңыз түйме түйреуіші кіріс ретінде, біз INPUT_PULLUP қолданамыз, себебі pinMode сыртқы резисторларын пайдаланудың қажеті жоқ (BUTTON_PIN, INPUT_PULLUP); // Үзілісті ISR векторына тіркеу AttachInterrupt (digitalPinToInterrupt (BUTTON_PIN), handleInterrupt, FALLING) батырмасы үшін; // Сериялық бастаңыз және сериялық монитордың ашылғанын күтіңіз, содан кейін io.adafruit.com Serial.begin (115200) желісіне қосылыңыз; while (! сериялық); // неопиксель пикселдерді бастайды.begin (); // Интерналды күйді қызыл күйге орнатыңыз, осылайша біз офлайн екенімізді және setAll жұмыс істейтінін білеміз (0xf4, 0x00, 0x00); // қызыл // тестілеу үшін бұл WiFi WiFi.printDiag (Сериялық) күйін көрсетеді; WiFiManager wifiManager; // алдыңғы Wi -Fi желісіне қосылу кезінде шақырылатын кері шақыруды орнату сәтсіз аяқталады және wifiManager.setAPCallback кіру нүктесінің режиміне өтеді (configModeCallback); // сақталған параметрлерді қалпына келтіріңіз, Wi -Fi менеджерінің тестілеуін мәжбүрлеу үшін келесі жолға түсініктеме беріңіз // қосылу үшін // телефонды немесе планшетті пайдаланып, үлкен жарықдиодты желіні іздеңіз //wifiManager.resetSettings (); // конфигурация порталы сөнгенше күту уақытын орнатады // бәрін қайталап көруге немесе ұйықтауға пайдалы // секунд ішінде wifiManager.setTimeout (240); егер (! wifiManager.autoConnect («GIANT LED»)) {Serial.println (F («қосылу сәтсіз аяқталды және күту уақыты»))); // қалпына келтіру және қайталап көріңіз кешіктіру (3000); ESP.reset (); кешіктіру (1000); } // тестілеу үшін //Serial.println (WiFi. SSID ()) қосылуға тиісті тіркелгі деректері бар -жоғын біле аламыз; //Serial.println(WiFi.psk());//WiFi.begin(WIFI_SSID, WIFI_PASS); // while (WiFi.status ()! = WL_CONNECTED) {// кешіктіру (500); //Serial.print («.»); //} Serial.println (); Serial.println (F («WiFi қосылған»)); Serial.println (F («IP мекенжайы:»)); Serial.println (WiFi.localIP ()); // қазір біз Serial.print IO қызметіне қосыламыз (F («Adafruit IO -ға қосылу»)); io.connect (); // «түс» арнасы үшін хабар өңдегішті орнатыңыз. color-> onMessage (handleMessage); // 'twitterfan' арнасы үшін хабар өңдегішті орнатыңыз. twitter-> onMessage (twitterMessage); // 'youtubefan' арнасы үшін хабар өңдегішті орнатыңыз. youtube-> onMessage (youtubeMessage); // «бұралу» арнасы үшін хабар өңдегішті орнатыңыз. twitch-> onMessage (twitchMessage); // қосылымды күтіңіз (io.status () <AIO_CONNECTED) {Serial.print (F («.»)); кешіктіру (500); } // біз қосылдық Serial.println (); Serial.println (io.statusText ()); //Serial.println(sizeof(SuperTweet)); //Serial.println(sizeof(SuperTweet [0]))); // Біз күтетін Twitter есептік жазбаларының тізімін басып шығарыңыз (байт idx = 0; idx <sizeof (SuperTweet) / sizeof (SuperTweet [0]); idx ++) {Serial.print (F («SuperTweet [»)); Serial.print (idx); Serial.print («] = '»); Serial.print (SuperTweet [idx]); Serial.println («'»); } // Біз күтіп отырған YouTube есептік жазбаларының тізімін басып шығарыңыз (байт idx = 0; idx get (); // арналардың бар күйлерін сұраңыз, сондықтан сіз YouTube -ке қосылған кезде бастапқы күйге қайтаруды басуыңыз керек. -> алу (); twitter-> алу (); twitch-> алу (); үшін (int i = 0; i get (); twitter-> алу (); twitch-> алу (); Serial.print («бірнеше твит алу»); Serial.print («жұмыс уақыты:»); Serial.println (миллис () / 1000);} // ---------------- -------------------------------------------------- ----------------------- void loop () {// io.run (); барлық нобайлар үшін қажет. io.run (); таймер. 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);}} // --------------------------------- -------------------------------------------------- ------ // түймені басқан кезде ескертуді өшіретін интернетті орнатыңыз және интернеттің бос тұтқасын тексеріңізInterrupt () {WHIZZY_TWEET = жалған; WHIZZY_TUBER = жалған; WHIZZY_TWITCH = жалған; ағымдағы = ақиқат; // ағымдағы күйді adafruit io «input.digital» арнасына жіберіңіз, сонда біз оны сандық түрде көре аламыз-> сақтау (ағымдағы); for (int i = 0; i «)); Serial.print (ағымдағы); Serial.print (F (» және әдепкі түс «)); Serial.println (default_color); ағымдағы = жалған; сандық-> сақтау (ағымдағы); while (WiFi.status ()! = WL_CONNECTED) {кешіктіру (500); setAll (0xeb, 0xfb, 0x03); // Сары ebfb03}} // -------------- -------------------------------------------------- ------------------------- // бұл «твиттер» хабарламасы келген сайын шақырылады-жарық диодты Blue void twitterMessage күйіне орнатыңыз (AdafruitIO_Data *деректері) {String tweeter = (data-> toString ()); tweeter.toLowerCase (); if ((lasttweet! = Tweeter) && (tweeter! = «»)) {Lasttweet = tweeter; setAll (0x0d, 0x10, 0x35); // Твит көгілдір түсті Serial.print (F («Tweet:»)); Serial.print (tweeter); // (bayt idx = 0; idx = 0) үшін сүйікті твиттерді тексеріңіз. tweets whizzy #0d1035 WHIZZY_TWEET = true; Serial.print («by»); Serial.print (SuperTweet [idx]);}} Serial.println («»);}} // --------- -------------------------------------------------- ---------------------------- - // бұл «youtube» хабарламасы келген сайын шақырылады- жарық диодты RED void youtubeMessage күйіне орнатыңыз (AdafruitIO_Data *деректері) {String tuber = (data-> toString ()); tuber.toLowerCase (); if ((lasttube! = tuber) && (tuber! = «»)) {lasttube = түйнек; setAll (0x29, 0x08,0x03); // youtube қызыл түсін орнатыңыз 290803 Serial.print (F («Youtube:»)); Serial.println (түйнек); // сүйікті Youtuber -ді тексеріңіз (байт idx = 0; idx = 0) {// Олардың бейнелерін #0d1035 WHIZZY_TUBER = ақиқат етуге мүмкіндік береді; Serial.print («by»); Serial.print (SuperTuber [idx]); }} Serial.println («»); }} // ---------------------------------------------- ------------------------------------------- // бұл әрқашан а деп аталады 'twitch' хабары келеді - жарық диодты PURPLE void twitchMessage күйіне орнатыңыз (AdafruitIO_Data *деректері) {String twitch = (data-> toString ()); twitch.toLowerCase (); if ((lasttwitch! = twitch) && (twitch! = «»)) {lasttwitch = twitch; setAll (0x24, 0x16, 0x28); // Қою күлгін түсті орнату #241628 Serial.print (F («Twitch:»)); Serial.println (бұралу); // Favourtite Twitcher тексерілмейді, біз тек бір WHIZZY_TUBER = ақиқатты ұстанамыз; Serial.println («»); }} // ---------------------------------------------- ------------------------------------------- // бұл функция кез келген уақытта шақырылады «түс» хабары қабылданды // ол соңғы түс беру мәнінің void handleMessage (AdafruitIO_Data *деректері) негізінде іске қосуда әдепкі түс орнатады {// RGB мәндерін және Serial.print он алтылық мәнін басып шығару (F («Алынған HEX мәні): «)); Serial.println (data-> value ()); ұзақ түс = data-> toNeoPixel (); // default_color = түс; Serial.print (F («HEX long алынды:»)); Serial.println (түс); үшін (int i = 0; i <PIXEL_COUNT; ++ i) {piksel.setPixelColor (i, түс); } showStrip (); } // ----------------------------------------------- ------------------------------------------------ жарамсыз RunningLights (байт қызыл, байт жасыл, байт көк, int WaveDelay) {int Position = 0; for (int j = 0; j <NUM_LEDS; j ++) {Позиция ++; // = 0; // Позиция + Бағалау; for (int i = 0; i <NUM_LEDS; i ++) {setPixel (i, ((sin (i + Position) * 127 + 128) / 255) * қызыл, ((sin (i + Position) * 127 + 128) / 255)*жасыл, ((sin (i + Позиция)*127 + 128) / 255)*көк); } showStrip (); кідіріс (WaveDelay); }} // ---------------------------------------------- ------------------------------------------- // Неопиксельді процедуралар жарамсыз setAll (байт қызыл, байт жасыл, байт көк) {үшін (int i = 0; i getConfigPortalSSID ()); // конфигурация режиміне кірді, Neo Pixel -ді күлгін етіп қойыңыз #241628 = 2364968 // setAll (0x24, 0x16, 0x28); setAll (0xeb, 0xfb, 0x03); // Сары ebfb03}

9 -қадам: Барлығын бірге дәнекерлеу

Барлығын бірге дәнекерлеу
Барлығын бірге дәнекерлеу
Барлығын бірге дәнекерлеу
Барлығын бірге дәнекерлеу
Барлығын бірге дәнекерлеу
Барлығын бірге дәнекерлеу

Бұл дизайндағы барлық заттар дәнекерленген және оларды басқару оңай болуы керек. Мен жұмысты жеңілдету үшін 3 түрлі түсті сымды қолдандым, біріншіден, неопиксельдің сымын WEMOS -қа өлшеу. Мен оларды өріп, жылуды қысқартатын кішкене бөлікті кидім, содан кейін оларды линзада тегіс болатындай етіп дәнекерледім.

Түйме келесі болды және негізге өте ыңғайлы болады. Түймешіктің бір жағы Gnd -ге өтеді және ол неопиксельдің жерге қосылған сымымен бірге бұралған. Содан кейін мен оларды қаңылтырладым және оларды WEMOS түйреуішіне дәнекерледім.

Neopixel үшін қуат сымы 5v PIn -ге өтеді. Сигнал сымы немесе неопиксельдің Di (деректері) Wemos түйреуішіне D1 ретінде дәнекерленген. 300-500 Ом резисторды сериялы түрде қосуды ұсынатын кейбір сайттар бар, бірақ әзірге менде ешқандай проблемалар болған жоқ, сондықтан әзірге бұл тікелей байланыс.

Жақсы тәжірибені қамтамасыз ету үшін және Adafruit сияқты сайттардың кеңесі бойынша мен неопиксельге Di желісімен 330R резисторды қойдым. Бұл сақинадағы бірінші светодиодтың сиқырлы пиксиктерді шығаруына жол бермеу үшін және сымды кесу арқылы және резисторды қою арқылы жүзеге асады. Кішкентай жылу бөлімі кез келген қысқа шортты тоқтатады. Сіз резисторды өте қысқа етіп кесіп, әр ұшына құрсау салып, сыммен де солай жасай аласыз.

Түйменің басқа сымы D2 түйреуішіне тікелей түседі. Тартылатын резистордың қажеті жоқ, себебі бұл түйреуішке PULLUP пәрменін қою арқылы бағдарламалық қамтамасыз етуде өңделеді.

Негізінде бәрі осында.

10 -қадам: 3D басып шығару

Бізде алып жарық диоды үшін қолданылатын STL файлдары берілген. Файлдар astro73 ремиксі/қайта өңделуі болып табылады және сіз барлық файлдарды https://www.thingiverse.com/thing:3290837 сайтынан алуға болады.

Аяқтар мен негіздер үшін мен Sunlu PETG+ жіпін қолдандым, ол Prusa i3 -де өте жақсы жұмыс істейді, мен 10 немесе 20% гироидты толтыруды қолдандым.

Светодиод үшін мен Sunlu мөлдір PLA қолдандым және концентрациялы жоғарғы және төменгі қабаттармен шамамен 10% толтыруды қолдандым.

Мен әрқайсысында тек Slic3r -дегі Prusa PET және Prusa PLA негізгі параметрлерін қолданамын және олардың барлығы жақсы жұмыс жасады. Мен аяғыма аздап қысылып қаламын, бірақ мен олардың үстінен шам жағып, жіп жоғалады:)

11 -қадам: алып диодты жинақ

Үлкен жарықдиодты жинақ
Үлкен жарықдиодты жинақ
Үлкен жарықдиодты жинақ
Үлкен жарықдиодты жинақ
Үлкен жарықдиодты жинақ
Үлкен жарықдиодты жинақ

Барлық бөлшектер бір -біріне өте оңай қосылады, бұранданың затты ұстап тұруына мүмкіндік беру үшін негізге М3 гайкасын басу керек. Сондай -ақ, NeoPixel -ді WEMOS -қа алдымен аяқтарынан өткізу керек. Мен кейбір қосқыштарды қалай қою керектігін ойладым, бірақ ол болашақта ажырамайды деп шештім.

Объектив - бұл тек аяққа итеру, олар өз кезегінде M3x20 мм болтпен негізге бекітіледі. Түйменің тесікшесінің ішкі жағына жақсы және еркін қозғалуы үшін пышақпен жүгіру қажет болуы мүмкін. Wemos төменнен бұралған 2 M2x8 розетка болттарымен бекітілген.

Аяқтау үшін қажет болған жағдайда сырғып кетуді тоқтату үшін негізге киіздің бір бөлігін жабыстыруға болады.

12 -қадам: Орнату және пайдалану нұсқаулары

Image
Image
Орнату және пайдалану нұсқаулары
Орнату және пайдалану нұсқаулары
Орнату және пайдалану нұсқаулары
Орнату және пайдалану нұсқаулары

Барлығы дайын және жүктелген бағдарламалық қамтамасыз ету жүктелгеннен кейін, USB -ге біраз қуат беріңіз, ал GIANT жарық диоды жануы керек, ал жарық диоды ҚЫЗЫЛ сөніп, содан кейін сары түске ауысады. Бұл желіге қосылмағанын және wifi конфигурациясын күтіп тұрғанын көрсетеді. Телефонды немесе сол сияқты GIANT LED wifi желісін іздеңіз және қосылыңыз, сіз WiFi менеджерінің экранын аласыз. Ол сіздің жергілікті аймағыңызды сканерледі, сіз жай ғана Wi -Fi мәліметтерін енгізесіз, ESP қайта жүктеледі және сіз қазір жасыл шаммен желіде боласыз. Ол сондай -ақ IO -ға қосылады және ескерту шамдары жанып тұрады, себебі ол әлі алдыңғы хабарларды көрмеген. Түймені бірнеше рет басыңыз, содан кейін GIANT жарық диоды жаңартуларға дайын болады.

Сіз осы уақытта Adafruit IO бақылау тақтасына кіре аласыз және әр фидке кейбір деректерді қоса аласыз және шамдардың ескерту режиміне өткенін көре аласыз.

Масайрау !

13 -қадам: Үлкен жарық диоды тағы не істей алады

Giant LED басқа не істей алады
Giant LED басқа не істей алады
Giant LED басқа не істей алады
Giant LED басқа не істей алады

Сізде осындай дизайнның негіздері болғаннан кейін және IFTTT көмегімен сіз оны көп нәрсеге қолдана аласыз. Gmail кіріс жәшігі туралы ескерту - бұл қарапайым, сонымен қатар Adafruit Webhooks -пен жұмыс жасайтындықтан, басқа бағдарламалар да оған деректерді жібере алады. Менде жұмыс жобасының бөлігі ретінде кейбір Big Query деректерінің жүктелуін қадағалау үшін біреуі орнатылған.

Сондай -ақ, оны басқа GIANT жарықдиодты сигнал беру үшін пайдалануға болады, сіз оны әр түрлі үйлерде орналастыра аласыз және оны жарықтан бас тарту үшін екінші тараптың түймесін басу үшін қашықтан индикатор ретінде пайдалана аласыз.

Деректерді жіберуге арналған webhook әдісіндегі пайдалы сілтеме. Бұл жағдайда ол IFTTT апплетін қолданады, бірақ сіз python көмегімен CURL әдісін оңай қолдана аласыз.

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

Шындығында, жарықдиодты кейбір мәтіндік мазмұнмен толықтыру үшін OLED 128x32 -ді негізге қоюға болады, мен қазір бұл бойынша жұмыс жасаймын және STL -ді жаңартып, сонымен бірге IO -ды пайдалану үшін кодты беремін.

Ұсынылған: