Агуулгын хүснэгт:

Аварга LED - Адам Саважийг дагах: 13 алхам (зурагтай)
Аварга LED - Адам Саважийг дагах: 13 алхам (зурагтай)

Видео: Аварга LED - Адам Саважийг дагах: 13 алхам (зурагтай)

Видео: Аварга LED - Адам Саважийг дагах: 13 алхам (зурагтай)
Видео: Отец и сын ПРОБЛЕМА ПОХУДЫ НА 50 фунтов | Изменения в образе жизни: здоровое питание, упражнения 2024, Арванхоёрдугаар сар
Anonim
Аварга LED - Адам Саважийг дагаж байна
Аварга LED - Адам Саважийг дагаж байна
Аварга LED - Адам Саважийг дагаж байна
Аварга LED - Адам Саважийг дагаж байна
Аварга LED - Адам Саважийг дагаж байна
Аварга LED - Адам Саважийг дагаж байна

Эндээс та Twitter, YouTube, Twitch дохиоллын чийдэнгийн үүргийг гүйцэтгэх зорилготой Giant LED-ийн хувилбарыг олох болно. Миний гол зорилго бол Адам Саваж болон шалгагдсан багийн жиргээ, видео эсвэл мушгирсан урсгал байгаа үед сэрэмжлүүлэг өгөх, мөн шударга байхын тулд миний дагадаг Роберт Коуан, Марти Механик гэх мэт бусад хэдэн хүмүүс юм.

Мэдээжийн хэрэг би гар утас эсвэл зөөврийн компьютер дээрээ twitter, twitch гэх мэтийг ашиглаж болох байсан, гэхдээ маш олон үйлчилгээ, мэдэгдлүүдээс маш олон анхааруулга ирдэг тул би бүгдийг нь унтраасан бөгөөд утас нь оройн 22 цагаас хойш чимээгүй горимд ордог. Webhooks нь ажилтай холбоотой Biq Query хүснэгтүүдээс өдөр бүр хангалттай тооны бүртгэлээр шинэчлэгдэж байгаа эсэхийг надад мэдэгдэхийн тулд шинэчлэлтийг авахаар тохируулагдсан байдаг.

Adafruit нь Adafruit IO нэртэй үйлчилгээтэй бөгөөд үүнийг туршиж үзэхийг хүсч байсан бөгөөд Wemos D1 Mini хувилбарын талаар сайн үгсийг сонссоныхоо дараа ESP8266-ийг дахин туршиж үзэхийг бүтэн жилийн турш хүсч байсан. Astro73 -аас өөр зүйл дээр LED хийх загвар. Би үүнээс эхэлж масштабтай болгохын тулд бага зэрэг боловсруулж, суурь дээр түлхэх товчлуур болон бусад гоо сайхны өөрчлөлтүүдийг оруулсан. Та ремиксийг эндээс олж болно

Дээрээс нь IFTTT alexa гох үг гарч ирснээр Alexa -ээр дамжуулан дуу хоолойг хянах боломжтой.

Алхам 1: Найрлага

Хэрэв та эдгээрийн аль нэгийг хийхийг хүсч байвал эд ангиудын жагсаалт нь маш жижиг бөгөөд бас хямдхан болно. Хэрэв та хүлээхийг хүсэхгүй байгаа бол үндсэн хэсгүүдийг гадаадаас авах боломжтой бөгөөд өртөгийг нь улам бүр бууруулах боломжтой. Гэхдээ гол бүрэлдэхүүн хэсэг нь Giant LED хайрцаг ба суурь юм. Хэрэв танд 3D принтер байгаа бол та бэлэн боллоо, хэрэв үгүй бол эд ангиудыг хэвлэх цөөн хэдэн онлайн принтер компаниуд байдаг. Зөвхөн 3 ширхэг байгаа тул нэлээд хямд байх ёстой.

1. Wemos D1 Mini R3

2. Neopixel 8 LED

3. Хар PETG дээр хэвлэсэн суурь ба хөл

4. Ил тод ХАЧА -д хэвлэсэн линз, гэрэл эзэмшигч

5. Push Button Switch 12mm дөрвөлжин x1

6. Дугуй түлхэх товчны таг x1

7. Цахилгаан тэжээлд зориулагдсан USB утас ба адаптер

8. M3x20 товчлуурын толгой

9. M3 самар

10. M2x8mm боолт x2

11. М2 самар x2

12. Зарим хар, улаан, шар утас

13. 300-500 Ом эсэргүүцэл

14. Дулааны ховилын жижиг хэсэг

Та бусад ESP төхөөрөмжүүд, эсвэл бүр Хуззаг ашиглаж болно, гэхдээ уг хайрцаг нь нүхтэй мини зориулагдсан бөгөөд нааж болохгүй.

Алхам 2: Багаж хэрэгсэл

Үүнийг бий болгох, бүтээхийн тулд танд дараахь зүйлс хэрэгтэй болно

1. 3D принтер

2. 1.5 мм ба 2 мм хэмжээтэй Аллен түлхүүр

3. Гагнуурын төмөр ба гагнуур

4. Утгачид

5. бахө

6. Хошин шогийн мэдрэмж

7. Шүргэх зориулалттай скальпель

Алхам 3: Кодын шаардлага

Тиймээс бид бүтээн байгуулалтанд орохоосоо өмнө би үүнд оруулахыг хүсч буй зарим шаардлагуудаа тайлбарлах болно. Эдгээрийн ихэнхийг би эхлэхээсээ өмнө санаж байсан бөгөөд юу хийхийг оролдохын тулд хэд хэдэн урсгалыг тоймлов. Үргэлжлүүлэн би шийдвэрлэхийг хүсч буй үйлчилгээнүүдийнхээ зарим асуудлыг олж мэдэв.

Шаардлага.

Би шинэ жиргээ эсвэл видео нийтлэх үед LED -ийг надад харуулахыг хүссэн бөгөөд Twitch -ийн тодорхой суваг эхлэхэд гарч ирнэ. Би мөн анхааруулгыг цуцлах хүртлээ үргэлжлүүлээсэй гэж хүссэн бөгөөд ингэснээр хэрэв би хэсэг хугацаанд байхгүй байсан бол хол байхдаа юу болсныг мэдэх болно. Би үүнийг програм хангамжийг дахин ачаалалгүйгээр Wi-Fi-д нэвтрэх боломжтой болгохыг хүссэн. Хамгийн сүүлд хийсэн нэг зүйл бол үйл явдалд шууд хариулахаас гадна түүнд өгсөн мэдээллийн статусыг 15 минут тутамд шалгаж байх шаардлагатай байв.

Тиймээс анхан шатны мэдлэгтэй болсон тул дараагийн зүйл бол хэсэг бүрийг хэрхэн гүйцэтгэх талаар судлах явдал байв. Та ямар төрлийн програм хангамж эсвэл платформоор аль хэсгийг нь зохицуулах талаар миний санааг доороос харж болно.

1. Adafruit IO, энэ нь сэрэмжлүүлгийн тэжээлийг тохируулахад ашиглагддаг, эндээс данс авах боломжтой

Би үүнийг IFTTT -ээс мессеж илгээх болно.

2. IFTTT, https://ifttt.com/ ба энэ нь сонгосон Twitter, YouTube, Twitch сувгуудыг сканнердахад хэрэглэгддэг бөгөөд дараа нь арга хэмжээг Adafruit IO руу илгээдэг.

3. ESP8266 кодыг эдгээр тэжээлийг унших бөгөөд үүнийг стандарт Arduino IDE (v1.8.8) ашиглан ESP8266 болгон шатаасан болно.

4. Adafruit IO тэжээлийг уншиж, Neopixel -ийг асаахын тулд 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 -ийн LED -ийн өнгийг дуугаар удирдахыг хүсч байвал одоо 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 юм, учир нь энэ нь арын тоолуурыг тохируулах боломжийг олгодог бөгөөд ингэснээр бид тэжээлийг үе үе шалгаж байх боломжтой байдаг. Татаж авах

Алхам 7: WiFi менежерийн номын санг суулгах

WiFi -ийн тохиргоог алсаас авах боломжийг бидэнд олгохын тулд бид Tzapu Wifi Manger -ийг ашиглах гэж байгаа бөгөөд энэ талаар болон номын санг хэрхэн суулгах талаар дэлгэрэнгүй мэдээллийг эндээс авах боломжтой.

github.com/tzapu/WiFiManager

Энэ бол гадаад номын сангуудын маш энгийн суулгалт бөгөөд сонголт нь таны Arduino IDE хэрэгслүүдийн хэсгийн номын санг удирдах хэсэгт аль хэдийн орсон байгаа.

Алхам 8: ESP8266 код - дебаг хэвлэх боломжтой

// Энэ код нь хэвлэлийн мэдэгдлийг агуулдаг тул та түүний ажиллагааг Цуваа дэлгэцээр хянах боломжтой

// Adafruit IO RGB LED гаралтын жишээ дээр үндэслэн // Adafruit нь энэхүү нээлттэй эх кодыг хангахын тулд цаг хугацаа, нөөцөө зарцуулдаг. // Adafruit -аас // бүтээгдэхүүн худалдаж авах замаар Adafruit болон нээлттэй эхийн техник хангамжийг дэмжинэ үү! // // Adafruit Industries-д зориулж бичсэн Тодд Триц // Зохиогчийн эрх (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_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 тохиргоо ********************** ********* // #include "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); // Үндсэн өнгө ба үндсэн өнгө урт 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 long oneSecond = 1000; // секунд бол мянган миллисекунд const урт oneMinute = oneSecond * 60; const long fiveMinutes = oneMinute * 5; const урт арван таван минут = таван минут * 3; const long oneHour = арван таванМинут * 4; // Твиттер хэрэглэгчид бидэнд хамгийн их таалагддаг бөгөөд эдгээр нь анивчих бөгөөд бидний сонгосон бусад бүх жиргээ String SuperTweet = {"ajaxjones", "donttrythis", "prodnose", "testcom"} өнгийг өөрчлөх болно. String SuperTuber = {"шалгагдсан", "cowan", "marty"}; // дохиоллын статусыг тохируулдаг тул бид LED -ийг үндсэн давталтад үргэлжлүүлэн асааж болно boiz WHIZZY_TWEET = false; bool WHIZZY_TUBER = худал; bool WHIZZY_TWITCH = худал; // Сүүлийн жиргээ болон youtube -ийг хадгалдаг тул бид үйлчилгээгээ үе үе шалгаж, дараа нь String lasttweet = ""; String lasttube = ""; String lasttwitch = ""; // дижитал зүү 5, энэ бол сэрэмжлүүлгийн өнгийг дахин тохируулах товчлуур юм #BUTTON_PIN 4 товчлуурын төлөвийг тодорхойлдог // товчлуурын төлөвийг бид огт ашигладаггүй, гэхдээ interupt bool current = false; bool last = false; // "өнгө" тэжээлийг тохируулаарай, ингэснээр бид хүссэн өнгөөр тест хийж, илгээх эсвэл Alexa trigger AdafruitIO_Feed *color = io.feed ("өнгө") ашиглах боломжтой болно; // 'twitterfan' тэжээлийг тохируулах - Blue AdafruitIO_Feed *twitter = io.feed ("twitterfan"); // 'youtubefan' тэжээлийг тохируулах - Red AdafruitIO_Feed *youtube = io.feed ("youtubefan"); // 'twitch' тэжээлийг тохируулах - Нил ягаан өнгийн AdafruitIO_Feed *twitch = io.feed ("мушгирах"); // 'дижитал' тэжээлийг тохируулах AdafruitIO_Feed *digital = io.feed ("input.digital"); // ------------------------------------------------ ----------------------------------------- void setup () {// оролтын хувьд товчлуурын зүү, бид гадаад эсэргүүцэл pinMode (BUTTON_PIN, INPUT_PULLUP) ашиглах шаардлагагүй тул INPUT_PULLUP ашигладаг; // Таслах товчлуурын ISR векторт таслах хавсаргах attachInterrupt (digitalPinToInterrupt (BUTTON_PIN), handleInterrupt, FALLING); // Цуваа эхлүүлээд цуваа дэлгэц нээгдэхийг хүлээгээд io.adafruit.com Serial.begin (115200) руу холбогдоно уу; байхад (! Цуваа); // neopixel begin pixel.begin (); // Анхдагч төлөвийг улаан болгож тохируулаарай, ингэснээр бид офлайн байгаа бөгөөд setAll (0xf4, 0x00, 0x00) ажиллаж байгааг мэдэж болно; // улаан // туршихад энэ нь WiFi WiFi -ийн статусыг харуулах болно.printDiag (Цуваа); WiFiManager wifiManager; // өмнөх WiFi -д холбогдох үед дуудлага хийх дуудлага амжилтгүй болж, Access Point горимд ордог wifiManager.setAPCallback (configModeCallback); // хадгалсан тохиргоог анхны байдалд нь оруулж, WiFi менежерийг туршихын тулд энэ дараагийн мөрөнд тайлбар бичээрэй, ингэснээр та холбогдох боломжтой болно // гар утас эсвэл таблетаа ашиглан Giant LED сүлжээг хайж олоорой //wifiManager.resetSettings (); // тохиргооны портал унтрах хүртэл завсарлагааг тохируулна // бүгдийг дахин оролдох эсвэл унтахад хэрэгтэй болно // секундын дотор wifiManager.setTimeout (240); if (! 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.println (); Serial.println (F ("WiFi холбогдсон")); Serial.println (F ("IP хаяг:")); Serial.println (WiFi.localIP ()); // одоо бид IO үйлчилгээнд холбогдож байна Serial.print (F ("Adafruit IO руу холбогдох")); io.connect (); // 'өнгө' тэжээлд зориулж зурвас зохицуулагчийг тохируулна уу. color-> onMessage (handleMessage); // 'twitterfan' тэжээлд мессеж боловсруулагчийг тохируулах. twitter-> onMessage (twitterMessage); // 'youtubefan' тэжээлд мессеж боловсруулагчийг тохируулах. youtube-> onMessage (youtubeMessage); // 'twitch' тэжээлд зориулж зурвас зохицуулагчийг тохируулна уу. 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 дансны жагсаалтыг хэвлэх (byte idx = 0; idx <sizeof (SuperTweet) / sizeof (SuperTweet [0]); idx ++) {Serial.print (F ("SuperTweet [")); Цуваа.хэвлэх (idx); Serial.print ("] = '"); Serial.print (SuperTweet [idx]); Serial.println ("'"); } // Бидний хүлээж буй YouTube акаунтуудын жагсаалтыг хэвлэ (byte idx = 0; idx get (); // тэжээлийн одоо байгаа төлөвийг хүсэх тул youtube дээр эхлэх үед дахин тохируулах товчийг дарах шаардлагатай болно. -> get (); twitter-> get (); twitch-> get (); for (int i = 0; i get (); twitter-> get (); twitch-> get (); Serial.print ("жиргээ авах"); Serial.print ("uptime (s):"); Serial.println (millis () / 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 == үнэн) {RunningLights (0x24, 0x16, 0x28, 250);}} // --------------------------------- -------------------------------------------------- ------ // товчлуур дарагдсан үед дохиоллыг арилгахын тулд интерфэйсийг тохируулж, интернетийн хүчингүй бариулыг шалгаарайInterrupt () {WHIZZY_TWEET = худал; WHIZZY_TUBER = худал; WHIZZY_TWITCH = худал; одоогийн = үнэн; // одоогийн төлөвийг adafruit io дээрх 'input.digital' тэжээл рүү илгээнэ үү, ингэснээр бид үүнийг дижитал хэлбэрээр харж болно-> хадгалах (одоогийн); for (int i = 0; i ")); Serial.print (current); Serial.print (F (" and default color ")); Serial.println (default_color); current = false; digital-> save (current)); while (WiFi.status ()! = WL_CONNECTED) {саатал (500); setAll (0xeb, 0xfb, 0x03); // Шар ebfb03}} // -------------- -------------------------------------------------- ------------------------- // үүнийг 'twitter' мессеж ирэх бүрт дууддаг-LED-ийг 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); // (bayte idx = 0; idx = 0) гэсэн дуртай жиргээч байгаа эсэхийг шалгана уу. tweets whizzy #0d1035 WHIZZY_TWEET = үнэн; Serial.print ("by"); Serial.print (SuperTweet [idx]);}} Serial.println ("");}} // --------- -------------------------------------------------- ---------------------------- - // үүнийг 'youtube' мессеж ирэх бүрт дууддаг- LED-ийг 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 (булцуу); // favourtite Youtuber байгаа эсэхийг шалгана уу (байт idx = 0; idx = 0) {// Тэдний видеог шившигтэй болгоё #0d1035 WHIZZY_TUBER = үнэн; Serial.print ("by"); Serial.print (SuperTuber [idx]); }} Serial.println (""); }} // ---------------------------------------------- ------------------------------------------- // үүнийг а гэж нэрлэдэг 'twitch' гэсэн мессеж ирнэ. twitch.toLowerCase (); if ((lasttwitch! = twitch) && (twitch! = "")) {lasttwitch = twitch; setAll (0x24, 0x16, 0x28); // Twitch ягаан өнгийг тохируулах #241628 Serial.print (F ("Twitch:")); Serial.println (мушгирах); // Дуртай Twitcher -ийг шалгах шаардлагагүй, бид зөвхөн нэг WHIZZY_TUBER -ийг дагаж мөрддөг = үнэн; Serial.println (""); }} // ---------------------------------------------- ------------------------------------------- // энэ функцийг хүссэн үедээ дууддаг 'өнгө' гэсэн мессеж хүлээн авлаа // энэ нь хүчингүй болгох сүүлийн өнгөний тэжээлийн утга дээр суурилсан эхлэх өнгийг тохируулах болно.: ")); Serial.println (data-> утга ()); урт өнгө = өгөгдөл-> toNeoPixel (); // default_color = өнгө; Serial.print (F ("HEX -ийг хүлээн авсан:")); Serial.println (өнгө); for (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)*ногоон, ((нүгэл (i + албан тушаал)*127 + 128) / 255)*цэнхэр); } showStrip (); саатал (WaveDelay); }} // ---------------------------------------------- ------------------------------------------- // Неопикселийн горимууд хүчингүй setAll (байт улаан, байт ногоон, цэнхэр байт) {for (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 руу явдаг. Неопикселийн дохионы утас буюу Ди (өгөгдөл) нь Wemos зүү рүү D1 хэлбэрээр гагнаж байна. Үүнтэй хамт 300-500 Ом эсэргүүцэл оруулахыг санал болгож буй зарим сайтууд байдаг боловч одоогоор надад ямар ч асуудал гараагүй байгаа тул одоогоор энэ нь шууд холболт юм.

Сайн туршлагыг баталгаажуулахын тулд Adafruit гэх мэт сайтуудын зөвлөгөөгөөр би 330R резисторыг Ди шугамтай неопикселд цувралаар байрлуулсан. Энэ нь цагираган дахь анхны LED -ийг шидэт пиксиг гаргахаас урьдчилан сэргийлэхийн тулд утсыг хайчилж, резистор оруулах замаар хийх болно. Дулаан агшилтын жижиг хэсэг нь хаашаа ч явахгүй шорт зогсох болно. Та резисторыг нэлээд богиносгож, төгсгөл бүрт цагираг тавьж, утсаар ижил зүйлийг хийж болно.

Товчлуурын нөгөө утас нь D2 зүү рүү шууд ордог. Татах эсэргүүцэл шаардагдахгүй, учир нь үүнийг зүү дээр PULLUP командыг ашиглан програм хангамжийн хүрээнд зохицуулдаг.

Энэ бол үндсэндээ бүх зүйл юм.

Алхам 10: 3D хэвлэх

Giant LED -д ашигладаг STL файлуудыг энд хавсаргав. Файлууд нь astro73 -ийн ремикс/дахин боловсруулалт бөгөөд та https://www.thingiverse.com/thing:3290837 дээрх бүх файлыг татаж авах боломжтой.

Хөл, суурийн хувьд би Sunlu PETG+ утас ашигласан бөгөөд энэ нь Prusa i3 дээр үнэхээр сайн ажилладаг бөгөөд би бамбай булчирхайн дүүргэлтийн 10 эсвэл 20% -ийг ашигласан.

LED -ийн хувьд би Sunlu тунгалаг PLA -ийг ашиглаж, дээд ба доод давхаргын 10% орчим дүүргэлтийг ашиглаж ирсэн.

Тус бүрдээ би зөвхөн Slic3r дахь Prusa PET болон Prusa PLA -ийн хувьцааны тохиргоог ашигладаг бөгөөд тэд бүгд амжилттай болсон. Би хөлөндөө жаахан уядаг, гэхдээ би дээгүүр нь үлээгч түрхээд уяа алга болно:)

Алхам 11: Аварга LED угсралт

Аварга том LED угсралт
Аварга том LED угсралт
Аварга том LED угсралт
Аварга том LED угсралт
Аварга том LED угсралт
Аварга том LED угсралт

Бүх хэсгүүд хоорондоо маш амархан нийлдэг тул шураг нь уг зүйлийг барьж авахын тулд сууринд нь M3 самар дарах хэрэгтэй. Та мөн NeoPixel -ийг WEMOS руу эхлээд хөлөөрөө холбох хэрэгтэй. Би зарим холбогчийг хэрхэн оруулах талаар бодож байсан боловч ирээдүйд салахгүй гэж шийдсэн.

Линз нь зүгээр л хөл рүү түлхэх зориулалттай бөгөөд тэдгээр нь M3x20 мм хэмжээтэй ганц боолтоор сууринд бэхлэгддэг. Товчны нүхний дотор эргэлдэж, чөлөөтэй хөдөлж байхын тулд хутга зүүх хэрэгтэй болж магадгүй юм. Wemos -ийг доороос нь шургуулсан 2 M2x8 хэмжээтэй боолтоор бэхэлсэн байна.

Дуусгахын тулд шаардлагатай бол хальтиргаа гулгааг зогсоохын тулд эсгий хэсгийг суурь дээр нааж болно.

Алхам 12: Тохируулах ба ашиглах заавар

Image
Image
Тохиргоо ба ашиглалтын заавар
Тохиргоо ба ашиглалтын заавар
Тохиргоо ба ашиглалтын заавар
Тохиргоо ба ашиглалтын заавар

Бүх зүйл бэлэн болсон, програм хангамжийг байршуулсны дараа usb -д бага зэрэг хүч хэрэглэвэл GIANT LED гарч ирэх ёстой бөгөөд LED нь улаан болж, дараа нь шар өнгөтэй болно. Энэ нь сүлжээнээс гарсан бөгөөд wifi тохиргоог хүлээж байгааг харуулж байна. GIANT LED wifi сүлжээг холбохын тулд утас эсвэл үүнтэй төстэй дүрсийг ашиглан WiFi менежерийн дэлгэцийг авах болно. Энэ нь таны орон нутгийг сканнердах бөгөөд та зөвхөн wifi -ийнхээ мэдээллийг оруулна уу, ESP дахин асах бөгөөд та одоо ногоон гэрлээр онлайн байх болно. Энэ нь IO -тэй холбогдох бөгөөд өмнөх мессежийг хараахан хараагүй байгаа тул дохиоллын гэрэл асах болно. Энэ товчлуурыг хэдхэн удаа дарахад GIANT LED шинэчлэлт ирэхэд бэлэн боллоо.

Та энэ үед Adafruit IO хяналтын самбарт орж, тэжээл бүрт зарим өгөгдлийг нэмж, гэрэл дохио өгөх горимд шилжиж байгааг харах боломжтой.

Хөгжилтэй байгаарай!

Алхам 13: Аварга LED өөр юу хийж чадах вэ

Аварга LED өөр юу хийж чадах вэ
Аварга LED өөр юу хийж чадах вэ
Аварга LED өөр юу хийж чадах вэ
Аварга LED өөр юу хийж чадах вэ

Ийм загварын үндсэн ойлголттой болсны дараа IFTTT -ийн тусламжтайгаар үүнийг олон зүйлд ашиглах боломжтой болно. Gmail ирсэн имэйлийн анхааруулга нь хялбар бөгөөд Adafruit нь Webhooks -тэй ажилладаг тул бусад програмууд түүн рүү өгөгдөл илгээх боломжтой. Ажлын төслийн нэг хэсэг болох Big Query -ийн зарим өгөгдлийг хянахын тулд би яг одоо тохируулж байна.

Түүнчлэн товчлуурыг ашигласнаар та бусад GIANT LED -ийг дохио өгөх боломжтой бөгөөд үүнийг өөр өөр байшинд байрлуулж, алсын заагч болгон ашиглаж нөгөө тал нь гэрлээ цуцлах товчийг дарна.

Мэдээллийг тэжээл рүү илгээх webhook аргын талаархи ашигтай холбоос энд байна. Энэ тохиолдолд энэ нь IFTTT апплет ашиглаж байгаа боловч та python ашиглан CURL аргыг хялбархан ашиглаж болно.

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

Үнэн хэрэгтээ LED -ийг текстэн контентоор дүүргэхийн тулд OLED 128x32 -ийг сууринд оруулах боломжтой бөгөөд одоогоор би энэ талаар ажиллаж байгаа бөгөөд STL -ийг шинэчилж, IO -ийг ашиглах кодыг нийлүүлэх болно.

Зөвлөмж болгож буй: