Mündəricat:

Nəhəng LED - Adam Savagein İzlənməsi: 13 Addım (Şəkillərlə)
Nəhəng LED - Adam Savagein İzlənməsi: 13 Addım (Şəkillərlə)

Video: Nəhəng LED - Adam Savagein İzlənməsi: 13 Addım (Şəkillərlə)

Video: Nəhəng LED - Adam Savagein İzlənməsi: 13 Addım (Şəkillərlə)
Video: 35 Scary Ghost Videos: Mega Compilation of 2023 [V1] 2024, Iyul
Anonim
Nəhəng LED - Adam Savagein İzlənməsi
Nəhəng LED - Adam Savagein İzlənməsi
Nəhəng LED - Adam Savagein İzlənməsi
Nəhəng LED - Adam Savagein İzlənməsi
Nəhəng LED - Adam Savagein İzlənməsi
Nəhəng LED - Adam Savagein İzlənməsi

Burada Twitter, YouTube və Twitch xəbərdarlıq lampası kimi fəaliyyət göstərmək niyyətində olan Giant LED-in bir versiyasını tapa bilərsiniz. Mənim üçün əsas məqsəd, Adam Savage və test edilmiş komandanın tvitləri, videoları və ya seğirmə axınları olanda xəbərdarlıq etmək və ədalətli olmaq üçün Robert Cowan, Marty the Mechanic və daha çox kimi izlədiyim bir neçə insan.

Aydındır ki, telefonumda və ya dizüstü kompüterimdə twitter, twitch və s. İstifadə edə bilərdim, amma o qədər çox xidmətdən və bildirişdən o qədər çox xəbərdarlıq var ki, hamısını əsasən söndürürəm, üstəgəl telefon 10.00 -dan sonra səssiz rejimə keçir. Veb kancalarım, hər gün kifayət qədər sayda qeyd ilə OK olaraq yenilənmiş olub -olmadığını bildirmək üçün işlə əlaqəli bəzi Biq Query cədvəllərindən yeniləmələr almaq üçün də konfiqurasiya etdim.

Adafruit, cəhd etmək istədiyim Adafruit IO adlı bir xidmətə sahibdir və Wemos D1 Mini buraxılışında 3 yaxşı söz eşitdikdən sonra bütün il ESP8266-ı sınamaq və yenidən həll etmək niyyətindəyəm. Astro73 tərəfindən bir şeydə LED üçün dizayn. Bununla başladım və miqyas üçün bir az yenidən işlədim və bazaya bir düymə və digər kosmetik dəyişikliklər əlavə etdim. Remixi burada tapa bilərsiniz

Üstəlik, IFTTT alexa tətik sözünün gəlməsi ilə həm indi Alexa vasitəsi ilə səslə idarə oluna bilər.

Addım 1: Tərkibi

Bunlardan birini etmək istəyirsinizsə, hissələrin siyahısı olduqca kiçikdir və eyni zamanda çox ucuzdur. Əgər gözləməsəniz, əsas hissələri xaricdən əldə edə bilərsiniz, həm də xərcləri daha da azalda bilərsiniz. Ancaq əsas tərkib hissəsi Giant LED çantası və bazasıdır. 3D printeriniz varsa, hazırsınız, yoxsa hissələri çap edəcək bir neçə onlayn printer şirkəti var. Yalnız 3 var, buna görə də olduqca ucuz olmalıdır.

1. Wemos D1 Mini R3

2. Neopixel 8 LED

3. Qara PETG -də çap olunmuş baza və ayaqları

4. Şəffaf PLA -da çap edilmiş lens və işıq tutucusu

5. Push Button Switch 12mm kvadrat x1

6. Dairəvi Push Button Cap x1

7. Güc üçün USB qurğusu və adapter

8. M3x20 düymə başlığı

9. M3 Fındıq

10. M2x8mm bolt x2

11. M2 Fındıq x2

12. Bəzi Qara, Qırmızı və Sarı tel

13. 300-500 Ohm Rezistor

14. Kiçik istilik payı

Digər ESP cihazlarından və ya hətta bir Huzzahdan istifadə edə bilərsiniz, ancaq korpus montaj delikləri olan və yapışdırmaq məcburiyyətində olmayan mini üçün hazırlanmışdır.

Addım 2: Alətlər

Bunu yaratmaq və qurmaq üçün aşağıdakılara ehtiyacınız olacaq

1. 3D printer

2. 1,5 mm və 2 mm Allen açarı

3. Havya və lehim

4. Wirecutters

5. Kəlbətinlər

6. Yumor hissi

7. Kəsmə üçün skalpel

Addım 3: Kod Tələbləri

Quruluşa girməzdən əvvəl, bura daxil etmək istədiyim bəzi tələbləri təsvir edəcəyəm. Bunların çoxunu başlamazdan əvvəl düşündüm və sınamaq istədiklərimi həll etmək üçün bir neçə axın hazırladım. Davam edərkən, həll etmək istədiyim xidmətlərlə bağlı bəzi problemləri kəşf etdim.

Tələblər.

Yeni bir tvit və ya video yerləşdirildikdə LED -in mənə göstərməsini istədim və müəyyən bir Twitch kanalı başladıqda da ortaya çıxdı. Mən də xəbərdarlığın ləğv olunana qədər davam etməsini istədim ki, bir müddət uzaqda olsaydım, uzaqda olarkən nə baş verdiyini biləydim. Proqramı da yeniləmədən Wi-Fi girişi üçün konfiqurasiya olunmasını istədim. Bitmiş son bir şey, hadisələrə canlı cavab verməklə yanaşı, hər 15 dəqiqədən bir ona verilən məlumatların vəziyyətini yoxlamaq üçün lazım idi.

Əsasların yerində olması ilə, növbəti iş, hər hissənin necə icra ediləcəyini öyrənmək idi. Hansı hissənin hansı proqram və ya platforma tərəfindən idarə olunacağını aşağıda görə bilərsiniz.

1. Adafruit IO, bu siqnallar üçün kanalları qurmaq üçün istifadə olunur, burada bir hesab əldə edə bilərsiniz

Bunu IFTTT -dən mesaj göndərəcəyim bir mesaj sırası xidməti olaraq istifadə edəcəyəm və sonra Giant LED bu mesajları qəbul edə bilər ki, onlara təsir etsin.

2. IFTTT, https://ifttt.com/ və bu seçilmiş Twitter, YouTube və Twitch kanallarını taramaq üçün istifadə olunur və sonra tədbiri Adafruit IO -ya göndərir.

3. Bu məlumatları oxumaq üçün ESP8266 kodu və standart Arduino IDE (v1.8.8) istifadə edərək ESP8266 -ya yazılır.

4. Adafruit IO kanallarını oxumaq və Neopixeli işıqlandırmaq üçün ESP8266 -ya yüklənmiş Arduino kodu.

5. Arduino kodu, xəbərdarlığı silmək üçün bir düyməni oxumaq üçün

6. ESP -ni geri qaytarmadan WiFi adapterini konfiqurasiya edə biləsiniz və bunun üçün Tzapu, https://github.com/tzapu/WiFiManager tərəfindən WiFi Manager kitabxanasından istifadə etdim, baxmayaraq ki, quraşdırma seçimləri bir az dəyişikliyə ehtiyac duydu. Adafruit IO kitabxanaları.

Addım 4: Adafruit IO qurmaq

Adafruit IO qurulması
Adafruit IO qurulması

Bu, burada yaratdığınız giriş düymələrinə ehtiyac duyacağınız və IFTTT -nin hadisələri göndərəcəyi xəbərləri yaratmanız lazım olduğu üçün ilk addımdır. Həm bu, həm də IFTTT hesabını qura bilərsiniz və bu layihənin Arduino hissəsinə keçməzdən əvvəl hər şeyi qura və işlədə bilərsiniz.

Adafruit nümunələrini kopyalamaq əvəzinə, əsasları burada tapa bilərsiniz https://learn.adafruit.com/gmailbox/adafruit-io-se… ki, bu da sizi qurmağa imkan verəcək.

Sonra GIANT LED üçün aşağıdakı kanalları standart kanallara əlavə etməlisiniz

1. rəng - bu, Alexa kimi bir şeylə uzaqdan rəng dəyişdirməyə imkan verir

2. seğirmek

3. twitterfan

4. youtubefan

Daha sonra giriş çağırmadınızsa yeni bir qrup yaratmalısınız, sonra bu qrupa rəqəmsal adlı bir lent də yaradın. Bu cihazın digər məqsədlər üçün istifadəsini genişləndirmək istəsək, düyməni basmağın təsirini də görəcəyik.

İstəyirsinizsə, bu nöqtədə məlumat və səhv tapmaq məqsədləri üçün bu lentləri əlavə edə biləcəyiniz üçün idarəetmə paneli ilə oynamaqdır.

Addım 5: IFTTT qurmaq

IFTTT qurulması
IFTTT qurulması
IFTTT qurulması
IFTTT qurulması

Adafruit bələdçisini burada da izləyə bilərsiniz, https://learn.adafruit.com/gmailbox/ifttt-setup. İzləmə siyahılarınızı qurmaq üçün Twitter, youtube və seğirmə hərəkətlərini seçə və sonra bunları müvafiq lentlərə göndərə bilərsiniz. Nə qədər sürətli ola biləcəyini görmək üçün sadə bir video əlavə etdim.

Əlavə olaraq LED -in rəngini Alexa tərəfindən səslə idarə etmək istəyirsinizsə, indi Amazon Alexa proqramı var. Bunlardan birini qurmaq üçün proqramı seçin və mavi sözünü seçin, sonra rəng adlandırdığınız Adafruit yeminə qoşun və o kanala göndəriləcək məlumat olaraq 0000ff daxil edin. GIANT LED -ə istədiyiniz halda sıfırlama və ya yenidən başlatma kimi əlavə əmrlər də verə bilərsiniz.

IFTTT tetikleyicisini qurarkən göndərilən məlumatları seçməlisiniz və buna IFTTT -də "Tərkibi" deyilir. Ehtiyac duyduğumuz ilk parça "İstifadəçi Adı", sonra boşluq və sonra "CreatedAt"

Hər iki elementi seçirik ki, məlumatlar ESP8266 -ya çatanda yeni bir tweet olub olmadığını və eyni istifadəçilərin əvvəlki tvitlərindən fərqli olduğunu aşkar edə bilək. Əlavə edilmiş şəkildən bunun nəyi sevdiyini görə bilərsiniz.

Addım 6: Arduino IDE -yə ESP8266 lövhələrinin quraşdırılması

İşlərin bir az hiyləgər olduğu və nizamlanması bir az daha çox vaxt tələb edə biləcəyi yerdir. ESP8266 -ya əlavə olaraq Adafruit IO kitabxanalarına da ehtiyacınız var və bunlar üçün bu təlimatı izləyə bilərsiniz.

learn.adafruit.com/gmailbox/arduino-setup

ESP8266 lövhələrini bura necə əlavə edəcəyinizə dair sadə bir izahat var

Arduino IDE -nin ən son versiyaya uyğun olduğundan əmin olun və bunu yazarkən 1.8.8 istifadə edirdim.

İstifadə etdiyimiz digər bir kitabxana SimpleTimer -dir, çünki bu, vaxt sayğacını qurmağa imkan verəcək, belə ki, vaxtaşırı olaraq xəbərləri yoxlaya bilərik, bunun üçün təlimatları https://playground.arduino.cc/Code/SimpleTimer# istifadə edə bilərsiniz. Yüklə

Addım 7: WiFi Manager Kitabxanasının quraşdırılması

WiFi qurğusunun uzaqdan konfiqurasiyasını əldə etməyimizi təmin etmək üçün Tzapu Wifi Manger -dən istifadə edəcəyik, bu barədə ətraflı məlumat və kitabxanaların necə qurulacağını burada tapa bilərsiniz, github.com/tzapu/WiFiManager

Bu xarici kitabxanaların olduqca sadə bir quraşdırılmasıdır və seçim artıq Arduino IDE alətlər bölmənizin Kitabxananı idarə et bölməsindədir.

Addım 8: ESP8266 Kodu - Debug Çapı ilə

// Bu kod çap işlərini ehtiva edir, buna görə Serial monitor vasitəsilə işini izləyə bilərsiniz

// Adafruit IO RGB LED Çıxış Nümunəsinə əsaslanaraq // Adafruit, bu açıq mənbə kodunu təmin etmək üçün vaxt və mənbələrə sərmayə qoyur. // Zəhmət olmasa Adafruit -dən // məhsulları alaraq Adafruit və açıq mənbə aparatlarına dəstək olun! // // Adafruit Industries üçün Todd Treece tərəfindən yazılmışdır // Müəlliflik hüququ (c) 2016-2017 Adafruit Industries // MIT lisenziyası ilə lisenziyalaşdırılmışdır. // // Yuxarıdakı bütün mətnlər hər hansı bir yenidən paylamaya daxil edilməlidir. // simpletimer istifadə edir https://playground.arduino.cc/Code/SimpleTimer#Do… // https://playground.arduino.cc/Code/SimpleTimer#Do… // Ajax Jones tərəfindən kodun qalan hissəsi https:// playground.arduino.cc/Code/SimpleTimer#Do // https://playground.arduino.cc/Code/SimpleTimer#Do… // ******************* ******* Konfiqurasiya *********************************/ #IO_USERNAME "ı təyin edin İstifadəçi adı " #IO_KEY" IO Açarınızı təyin edin "// Wifi meneceri vasitəsi ilə əldə edəcəyimiz üçün boş buraxın, bu şəkildə yaxşı işləyir kimi görünür #WIFI_SSID" müəyyən edin " #WIFI_PASS təyin edin" "// bunu AdafruitIO -nun istədiyi kimi daxil etmirik versiyasını daxil edin // #daxil edin //https://github.com/esp8266/Arduino // kitabxana üçün lazım olan #daxil edin #daxil edin "WiFiManager.h" daxil edin //https://github.com/tzapu/WiFiManager # SimpleTimer timer daxildir; #"AdafruitIO_WiFi.h" daxil edin AdafruitIO_WiFi io (IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS); // ************************ NeoPixel konfiqurasiyaları ********************** ********* // #"Adafruit_NeoPixel.h" daxil edin #PIXEL_PIN 5 təyin edin #PIXEL_COUNT 8 int NUM_LEDS = PIXEL_COUNT; #define PIXEL_TYPE NEO_GRB + NEO_KHZ800 Adafruit_NeoPixel piksel = Adafruit_NeoPixel (PIXEL_COUNT, PIXEL_PIN, PIXEL_TYPE); // Əsas rənglər və standart rəng uzun default_color = 865554; uzun RED_color = 2689027; // qırmızı #290803 uzun GREEN_color = 865554; // yaşıl #0d3512 uzun BLUE_color = 856117; // mavi #0d1035 uzun PURPLE_color = 2364968; // bənövşəyi #241628 uzun BRIGHTRED_color = 15990784; // parlaq qırmızı #f40000 // ------------------------------------------ ----------------------------------------------- // vaxt https://www.safaribooksonline.com/library/view/arduino-cookbook-2nd/9781449321185/ch12.html https://playground.arduino.cc/Code/SimpleTimer#Do… götürülmüş fikir https:// oyun meydançası. arduino.cc/Code/SimpleTimer#Do… const oneSecond = 1000; // saniyə min milisaniyəyə bərabərdir const long oneMinute = oneSecond * 60; const long fiveMinutes = oneMinute * 5; const uzun on beşMinutes = beşMinutes * 3; const long oneHour = on beşDakika * 4; // Ən çox bəyəndiyimiz Twitter İstifadəçiləri yanıb -sönəcək və seçdiyimiz digər bütün tvitlər String rəngini dəyişəcək SuperTweet = {"ajaxjones", "donttrythis", "prodnose", "testcom"}; String SuperTuber = {"sınandı", "kovan", "şəhid"}; // xəbərdarlıq vəziyyətini təyin edir ki, LEDləri əsas döngədə yandırmağa davam edək boiz WHIZZY_TWEET = false; boiz WHIZZY_TUBER = yalan; bool WHIZZY_TWITCH = yalan; // Son tweet və youtube -u saxlayır, beləliklə xidməti hər dəfə iki dəfə yoxlamağa məcbur edə bilərik String lasttweet = ""; String lasttube = ""; String lasttwitch = ""; // rəqəmsal pin 5, bu xəbərdarlıq rənglərini sıfırlamaq üçün istifadə etdiyimiz düymədir #BUTTON_PIN 4 təyin edin // düymənin vəziyyəti, interupt bool current = false düyməsini axtardığımız kimi istifadə edilmir. bool last = false; // "rəng" lentini qurun, istədiyimiz rəngləri sınaya və göndərə bilək və ya Alexa trigger AdafruitIO_Feed istifadə edə bilək *color = io.feed ("rəng"); // 'twitterfan' lentini qurun - Mavi AdafruitIO_Feed *twitter = io.feed ("twitterfan"); // 'youtubefan' lentini qurun - Red AdafruitIO_Feed *youtube = io.feed ("youtubefan"); // 'seğirme' yemini qurun - Purple AdafruitIO_Feed *seğirme = io.feed ("seğirme"); // 'rəqəmsal' feed qurun AdafruitIO_Feed *digital = io.feed ("input.digital"); // ------------------------------------------------ ----------------------------------------- void setup () {// düymə pinini giriş olaraq, INPUT_PULLUP istifadə edirik, çünki xarici müqavimət pinMode (BUTTON_PIN, INPUT_PULLUP) istifadə etmək məcburiyyətində deyilik; // attachInterrupt (digitalPinToInterrupt (BUTTON_PIN), handleInterrupt, FALLING) düyməsi üçün ISR vektoruna bir kəsmə əlavə edin; // Seriala başlayın və serial monitorun açılmasını gözləyin, sonra io.adafruit.com Serial.begin (115200) ilə əlaqə qurun; while (! Serial); // neopikseldən başlayaraq piksel.begin (); // Daxili vəziyyəti qırmızıya qoyun ki, biz oflayn və setAll işlədiyimizi bilək (0xf4, 0x00, 0x00); // qırmızı // test üçün bu WiFi WiFi.printDiag (Serial) vəziyyətini göstərəcək; WiFiManager wifiManager; // əvvəlki Wi -Fi -ya qoşulduqda çağırılan geri çağırışı təyin edin və Access Point rejiminə girin wifiManager.setAPCallback (configModeCallback); // xilas edilmiş parametrləri sıfırlayın, WiFi menecerinin testini məcbur etmək üçün bu növbəti sətirə şərh yazmayın // telefonunuzdan və ya tabletinizdən istifadə edərək görünən Giant LED şəbəkəsini axtarmaq üçün //wifiManager.resetSettings (); // konfiqurasiya portalı sönənə qədər zaman aşımını təyin edir // hamısını yenidən sınamaq və ya yatmaq üçün faydalıdır // saniyələr ərzində wifiManager.setTimeout (240); əgər (! wifiManager.autoConnect ("GİANT LED")) {Serial.println (F ("bağlana bilmədi və zaman aşımı vuruldu"))); // sıfırlayın və yenidən cəhd edin gecikmə (3000); ESP.reset (); gecikmə (1000); } // test etmək üçün //Serial.println (WiFi. SSID ()) ilə əlaqə qurmaq üçün doğru məlumatlara sahib olub -olmadığımızı görə bilərik; //Serial.println(WiFi.psk());//WiFi.begin(WIFI_SSID, WIFI_PASS); // while (WiFi.status ()! = WL_CONNECTED) {// gecikmə (500); //Serial.print ("."); //} Serial.println (); Serial.println (F ("WiFi bağlı")); Serial.println (F ("IP ünvanı:")); Serial.println (WiFi.localIP ()); // indi IO xidmətinə qoşuluruq Serial.print (F ("Adafruit IO -ya qoşulma")); io.connect (); // 'rəng' lenti üçün bir mesaj işləyicisi qurun. color-> onMessage (handleMessage); // 'twitterfan' lenti üçün bir mesaj işləyicisi qurun. twitter-> onMessage (twitterMessage); // 'youtubefan' lenti üçün mesaj işləyicisi qurun. youtube-> onMessage (youtubeMessage); // 'seğirmə' yemi üçün bir mesaj işləyicisi qurun. twitch-> onMessage (twitchMessage); // əlaqəni gözləyin (io.status () <AIO_CONNECTED) {Serial.print (F (".")); gecikmə (500); } // bağlıyıq Serial.println (); Serial.println (io.statusText ()); //Serial.println(sizeof(SuperTweet)); //Serial.println(sizeof(SuperTweet [0]))); // Gözlədiyimiz Twitter hesablarının siyahısını çap edin (bayt idx = 0; idx <sizeof (SuperTweet) / sizeof (SuperTweet [0]); idx ++) {Serial.print (F ("SuperTweet [")); Serial.print (idx); Serial.print ("] = '"); Serial.print (SuperTweet [idx]); Serial.println ("'"); } // Gözlədiyimiz YouTube hesablarının siyahısını yazdırın (byte idx = 0; idx get (); // feed -lərin mövcud vəziyyətlərini tələb edin, buna görə youtube -da işə salındıqda sıfırlamaya basmalısınız. -> almaq (); twitter-> almaq (); twitch-> almaq (); üçün (int i = 0; i almaq (); twitter-> almaq (); twitch-> almaq (); Serial.print ("bəzi tvitlər almaq"); Serial.print ("iş vaxtı (lar):"); Serial.println (millis () / 1000);} // ---------------- -------------------------------------------------- ----------------------- void loop () {// io.run (); bütün eskizlər üçün tələb olunur. io.run (); taymer. run (); if (WHIZZY_TWEET == true) {RunningLights (0x0d, 0x10, 0x35, 250);} if (WHIZZY_TUBER == true) {RunningLights (0x29, 0x08, 0x03, 250);} if (WHIZZY_TWITCH == doğru) {RunningLights (0x24, 0x16, 0x28, 250);}} // --------------------------------- -------------------------------------------------- ------ // düyməni basıldıqda xəbərdarlığı silmək üçün interuptu təyin edin və internet boşluğunun idarəçisini yoxlayınInterrupt () {WHIZZY_TWEET = yalan; WHIZZY_TUBER = yanlış; WHIZZY_TWITCH = yalan; cari = doğru; // mövcud vəziyyəti adafruit io üzərindəki 'input.digital' yeminə göndərin ki, rəqəmsal olaraq görək-> saxla (cari); for (int i = 0; i ")); Serial.print (cari); Serial.print (F (" və standart rəng ")); Serial.println (default_color); cari = yanlış; rəqəmsal-> saxla (cari)); while (WiFi.status ()! = WL_CONNECTED) {gecikmə (500); setAll (0xeb, 0xfb, 0x03); // Sarı ebfb03}} // -------------- -------------------------------------------------- ------------------------- // buna 'twitter' mesajı gəldikdə deyilir-LED-i mavi boş twitterMessage (AdafruitIO_Data *data) olaraq təyin edin. {String tweeter = (data-> toString ()); tweeter.toLowerCase (); if ((lasttweet! = Tweeter) && (tweeter! = "")) {Lasttweet = tweeter; setAll (0x0d, 0x10, 0x35); // Tweet mavi rəngini Serial.print (F ("Tweet:")); Serial.print (tweeter); // (bayt idx = 0; idx = 0) üçün favorit bir tweeter olub olmadığını yoxlayın {// tweets whizzy #0d1035 WHIZZY_TWEET = doğru; Serial.print ("by"); Serial.print (SuperTweet [idx]);}} Serial.println ("");}} // --------- -------------------------------------------------- ---------------------------- - // bu, 'youtube' mesajı gəldikdə çağırılır- LED-i RED void youtubeMessage (AdafruitIO_Data *data) {String tuber = (data-> toString ()) olaraq təyin edin; tuber.toLowerCase (); if ((lasttube! = yumru) && (yumru! = "")) {lasttube = yumru; setAll (0x29, 0x08,0x03); // YouTube -un qırmızı rəngini təyin edin 290803 Serial.print (F ("Youtube:")); Serial.println (yumru); // (bayt idx = 0; idx = 0) üçün favourtite Youtuber yoxlayın {// Videolarını vızıltılı edək #0d1035 WHIZZY_TUBER = doğru; Serial.print ("by"); Serial.print (SuperTuber [idx]); }} Serial.println (""); }} // ---------------------------------------------- ------------------------------------------- // buna hər zaman a deyilir 'twitch' mesajı gəlir - LED -i PURPLE void twitchMessage (AdafruitIO_Data *data) olaraq təyin edin {String twitch = (data-> toString ()); twitch.toLowerCase (); if ((lasttwitch! = twitch) && (twitch! = "")) {lasttwitch = twitch; setAll (0x24, 0x16, 0x28); // Twitch bənövşəyi rəng təyin edin #241628 Serial.print (F ("Twitch:")); Serial.println (seğirme); // Favourtite Twitcher yoxlanılmır, yalnız bir WHIZZY_TUBER = riayət edirik; Serial.println (""); }} // ---------------------------------------------- ------------------------------------------- // bu funksiya hər dəfə çağırılır 'rəng' mesajı alınır // son rəng axını dəyərinin boşluğuna əsaslanaraq başlanğıcda standart rəngi təyin edəcək Mesaj (AdafruitIO_Data *məlumatları) {// çap RGB dəyərləri və onaltılıq dəyər Serial.print (F ("Alınan HEX dəyəri: ")); Serial.println (data-> dəyər ()); uzun rəng = data-> toNeoPixel (); // default_color = rəng; Serial.print (F ("HEX uzun alındı:")); Serial.println (rəngli); for (int i = 0; i <PIXEL_COUNT; ++ i) {piksel.setPixelColor (i, rəng); } showStrip (); } // ----------------------------------------------- ------------------------------------------ RunningLights (bayt qırmızı, bayt yaşıl), mavi bayt, int WaveDelay) {int Vəzifə = 0; for (int j = 0; j <NUM_LEDS; j ++) {Vəzifə ++; // = 0; // Vəzifə + Qiymət; for (int i = 0; i <NUM_LEDS; i ++) {setPixel (i, ((günah (i + Mövqe) * 127 + 128) / 255) * qırmızı, ((günah (i + Mövqe) * 127 + 128) / 255)*yaşıl, ((günah (i + Mövqe)*127 + 128) / 255)*mavi); } showStrip (); gecikmə (WaveDelay); }} // ---------------------------------------------- ------------------------------------------- // Neopixel prosedurları etibarsızdır setAll (bayt qırmızı, bayt yaşıl, mavi bayt) {for (int i = 0; i getConfigPortalSSID ()); // konfiqurasiya rejiminə girdi, Neo Pixel'i bənövşəyi olaraq təyin et #241628 = 2364968 // setAll (0x24, 0x16, 0x28); setAll (0xeb, 0xfb, 0x03); // Sarı ebfb03}

Addım 9: Hamısını birlikdə lehimləyin

Hamısını Birlikdə Lehimləmək
Hamısını Birlikdə Lehimləmək
Hamısını Birlikdə Lehimləmək
Hamısını Birlikdə Lehimləmək
Hamısını Birlikdə Lehimləmək
Hamısını Birlikdə Lehimləmək

Bu dizayndakı hər şey birlikdə lehimlənir və idarə etmək olduqca asan olmalıdır. İşləri asanlaşdırmaq üçün 3 fərqli rəngli teldən istifadə etdim və ilk şey WEMOS üçün neopiksel üçün tel ölçməkdir. Onları ördüm və üstünə kiçik bir istilik büzüşü qoydum və sonra göstərildiyi kimi lehimlədim ki, obyektivə düz düşsün.

Düymənin yanında idi və bazaya möhkəm oturacaq. Düymənin bir tərəfi Gnd -ə gedir və bu, neopikselin Topraklama teli ilə birlikdə bükülür. Daha sonra onları qalayladım və WEMOS -un torpaq pininə bir -bir lehim etdim.

Neopixel üçün elektrik qurğusu 5v PIn -ə gedir. Neopikselin siqnal teli və ya Di (məlumatlar) Wemos pininə D1 olaraq lehimlənir. Bununla birlikdə 300-500 Ohm rezistor daxil etməyi təklif edən bəzi saytlar var, amma indiyə qədər heç bir problem yaşamadım, bu səbəbdən hələlik birbaşa əlaqəsidir.

Yaxşı təcrübə təmin etmək üçün və Adafruit kimi saytların məsləhəti ilə Neopixel -ə Di xətti ilə birlikdə 330R rezistor qoydum. Rinqdəki ilk LED -in sehrli pixies buraxmasına mane olmaqdır və sadəcə teli kəsərək rezistor qoyur. Kiçik bir istilik daralması hər hansı bir şortu dayandıracaq. Rezistoru olduqca qısa bir şəkildə kəsə bilərsiniz və hər ucuna bir halqa qoyub tellə eyni şeyi edə bilərsiniz.

Düymənin digər teli birbaşa D2 pininə gedir. Çəkmə müqavimətinə ehtiyac yoxdur, çünki bu pin daxilində PULLUP əmri qoyularaq proqram daxilində idarə olunur.

Əsasən hamısı budur.

Addım 10: Çapı 3D edin

Giant LED üçün istifadə etdiyimiz STL sənədləri burada əlavə olunur. Fayllar astro73 -ün remix/yenidən işlənməsidir və bütün faylları https://www.thingiverse.com/thing:3290837 saytından da götürə bilərsiniz.

Ayaqları və bazası üçün Prusa i3 -də həqiqətən yaxşı işləyən bir Sunlu PETG+ filamentindən istifadə etdim və ya 10 və ya 20% -li tiroid dolğusu istifadə etdim.

LED -in özü üçün Sunlu şəffaf PLA və konsentrik üst və alt qatlarla təxminən 10% doldurma istifadə edirəm.

Hər biri ilə mən yalnız Slic3r -də olan stok Prusa PET və Prusa PLA parametrlərindən istifadə edirəm və hamısı yaxşı işləndi. Ayaqlarımı bir az sıxıram, ancaq üstünə bir şam vururam və iplər yox olur:)

Addım 11: Nəhəng LED Quraşdırma

Nəhəng LED Quraşdırma
Nəhəng LED Quraşdırma
Nəhəng LED Quraşdırma
Nəhəng LED Quraşdırma
Nəhəng LED Quraşdırma
Nəhəng LED Quraşdırma

Bütün parçalar çox asanlıqla bir araya gəlir, vidanın əşyanı bir yerdə saxlamasına imkan vermək üçün bazaya M3 qozunu basmalısınız. NeoPixel'i WEMOS -a əvvəlcə ayaqları ilə bağlamalısınız. Bəzi bağlayıcıları necə qoyacağımı düşünürdüm, amma gələcəkdə ayrılmayacağına qərar verdim.

Objektif ayaqların üstünə itələyir və öz növbəsində tək bir M3x20 mm boltla bazaya bərkidilir. Düymənin çuxurunun içərisindən gözəl və sərbəst hərəkət etməsi üçün bıçaq çəkmək lazım ola bilər. Wemos, aşağıdan vidalanmış 2 M2x8 yuva cıvatası ilə yerində saxlanılır.

Bitirmək üçün, lazım olduqda hər hansı bir sürüşməni dayandırmaq üçün bazaya bir hissə yapışdıra bilərsiniz.

Addım 12: Quraşdırma və Əməliyyat Təlimatları

Image
Image
Quraşdırma və Əməliyyat Təlimatları
Quraşdırma və Əməliyyat Təlimatları
Quraşdırma və Əməliyyat Təlimatları
Quraşdırma və Əməliyyat Təlimatları

Hər şey hazır olduqda və proqram yükləndikdə usb -ə bir az güc tətbiq edin və GIANT LED -i görünməlidir və LED QIRMIZI yanacaq və sonra sarı rəngə çevriləcək. Bu, xəttin olmadığını və wifi konfiqurasiyasını gözlədiyini göstərir. GIANT LED wifi şəbəkəsi üçün bir telefon və ya bənzər bir görünüş istifadə edərək qoşulun və WiFi Meneceri ekranını alacaqsınız. Yerli ərazinizi tarayacaq və yalnız wifi məlumatlarınızı daxil edəcəksiniz, ESP yenidən başlayacaq və indi yaşıl işıqla onlayn olacaqsınız. Həm də bu nöqtədə IO -ya bağlanacaq və əvvəlki mesajları hələ görmədiyindən xəbərdarlıq işıqları yanacaq. Düyməni bir neçə dəfə basın və GIANT LED indi yeniləmələrin gəlməsinə hazırdır.

Bu anda Adafruit IO tablosuna keçə bilərsiniz və hər bir yemə bəzi məlumatlar əlavə edə bilərsiniz və işıqların xəbərdarlıq rejiminə keçdiyini görə bilərsiniz.

Əylənin !

Addım 13: Nəhəng LED nə edə bilər

Nəhəng LED nə edə bilər
Nəhəng LED nə edə bilər
Nəhəng LED nə edə bilər
Nəhəng LED nə edə bilər

Belə bir dizaynın əsaslarını əldə etdikdən sonra və IFTTT ilə bir çox şey üçün istifadə edə bilərsiniz. Gmail gələn qutusu siqnalı çox sadədir və Adafruit də Webhooks ilə işlədiyi üçün digər proqramlar da ona məlumat göndərə bilər. Bir iş layihəsinin bir hissəsi olaraq bəzi Big Query məlumat yükləmələrini izləmək üçün hazırda qurduğum biri var.

Düymə ilə digər GİANT LED -lərini də siqnal etmək üçün istifadə edə bilərsiniz, fərqli evlərdə ola bilər və işığı ləğv etmək üçün digər tərəfin düyməni basmasını təmin etmək üçün uzaqdan göstərici kimi istifadə edə bilərsiniz.

Videoya məlumat göndərmək üçün webhook metodunda faydalı bir link. Bu vəziyyətdə bir IFTTT tətbiqindən istifadə edir, ancaq python ilə bir CURL metodundan istifadə edə bilərsiniz.

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

Əslində LED -ə bəzi mətn məzmunu əlavə etmək üçün bir OLED 128x32 -ni bazaya yerləşdirmək belə mümkündür və hazırda bunun üzərində işləyirəm və STL -ləri yeniləyəcəyəm və IO -nu da istifadə etmək üçün kodu təmin edəcəyəm.

Tövsiyə: