Mündəricat:
- Addım 1: Tərkibi
- Addım 2: Alətlər
- Addım 3: Kod Tələbləri
- Addım 4: Adafruit IO qurmaq
- Addım 5: IFTTT qurmaq
- Addım 6: Arduino IDE -yə ESP8266 lövhələrinin quraşdırılması
- Addım 7: WiFi Manager Kitabxanasının quraşdırılması
- Addım 8: ESP8266 Kodu - Debug Çapı ilə
- Addım 9: Hamısını birlikdə lehimləyin
- Addım 10: Çapı 3D edin
- Addım 11: Nəhəng LED Quraşdırma
- Addım 12: Quraşdırma və Əməliyyat Təlimatları
- Addım 13: Nəhəng LED nə edə bilər
Video: Nəhəng LED - Adam Savagein İzlənməsi: 13 Addım (Şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
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
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
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
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
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ı
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
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ə:
Nəhəng Gizli Rəf Kenar Saatı Necə Qurulur: 27 Addım (Şəkillərlə)
Nəhəng Gizli Rəf Kenar Saatı Necə İnşa Edilir: Otaq otağımızın divarının bir hissəsində asmaq üçün doğru 'şeyi' tapa bilməyəcəyimiz böyük bir yerimiz vardı. Bir neçə il çalışdıqdan sonra özümüzdən bir şey etmək qərarına gəldik. Bu olduqca yaxşı çıxdı (fikrimizcə) buna görə çevirdim
Adosia IoT WiFi Controller + Motion Detect istifadə edərək Kərtənkələ Terrariumunun İzlənməsi: 17 Addım (Şəkillərlə)
Adosia IoT WiFi Controller + Motion Detect istifadə edərək kərtənkələ teraryumunun monitorinqi: Bu dərslikdə, kənarda bağçılıq edərkən təsadüfən tapdığımız və narahat etdiyimiz bir ovuc dəri dərisi üçün sadə bir kərtənkələ terrariumunun necə qurulacağını sizə göstərəcəyik. Buna görə də bir plastik istifadə edərək təhlükəsiz bir yer yaratmaq
Hərəkətli və Danışan Nəhəng Lego Hulk MiniFig (10: 1 Ölçüsü): 14 Addım (Şəkillərlə)
Hərəkətli və Danışan Nəhəng Lego Hulk MiniFig (10: 1 Ölçüsü): Mən həmişə uşaqlıqda legosla oynamışam, amma "fantastik" legolardan heç biri yox idi, sadəcə klassik lego kərpicləri. Mən də Marvel Sinematik Kainatının (MCU) böyük bir pərəstişkarıyam və ən sevdiyim personaj Hulkdur. Elə isə ikisini birləşdirib nəhəng bir iş görməyin
Nəhəng Analog CO2 Metr: 6 Addım (Şəkillərlə birlikdə)
Nəhəng Analog CO2 Metr: Havayda bir dağın üstündəki indiki atmosfer təxminən 400 ppm Karbon Dioksid ehtiva edir. Bu rəqəm planetlərin səthində yaşayanlar üçün son dərəcə vacibdir. İndi ətrafımızı ya bu narahatlığı inkar edənlər, ya da narahat edənlər
Nəhəng bir LED işarəsi yaradın! (24x8 Matrix): 11 Addım (Şəkillərlə)
Nəhəng bir LED işarəsi yaradın! (24x8 Matrix): YENİLƏNİB !! Sxem ONLINE -dir! 2 YENİLƏN !! Kod ONLINE! Bu layihə, 24x8 matrisin olduqca sürətli qurulmasını ətraflı izah edir. Bu layihə üçün ilham mənbəyim Syst3mX -in 24x6 matrisindən gəldi. 24x6 bir matris böyük idi, amma mənim üçün çox kiçik idi, çünki yoxdu