Სარჩევი:

გიგანტური LED - თვალთვალი Adam Savage: 13 ნაბიჯი (სურათებით)
გიგანტური LED - თვალთვალი Adam Savage: 13 ნაბიჯი (სურათებით)

ვიდეო: გიგანტური LED - თვალთვალი Adam Savage: 13 ნაბიჯი (სურათებით)

ვიდეო: გიგანტური LED - თვალთვალი Adam Savage: 13 ნაბიჯი (სურათებით)
ვიდეო: Pro Surfer Almost Got BITTEN IN HALF by A Great White Shark 2024, ივლისი
Anonim
გიგანტური LED - თვალთვალი Adam Savage
გიგანტური LED - თვალთვალი Adam Savage
გიგანტური LED - თვალთვალი Adam Savage
გიგანტური LED - თვალთვალი Adam Savage
გიგანტური LED - თვალთვალი Adam Savage
გიგანტური LED - თვალთვალი Adam Savage

აქ თქვენ ნახავთ გიგანტური LED- ის გადაცემას, რომელიც ხელახლა არის განზრახული იმოქმედოს როგორც Twitter, YouTube და Twitch გამაფრთხილებელი ნათურა. ჩემთვის მთავარი მიზანია გაფრთხილება მიაწოდოს, როდესაც არის ადამ სევჯის და გამოცდილი გუნდის ტვიტები, ვიდეოები ან გადაცემების ნაკადები და სამართლიანი ვიქნები, რამდენიმე სხვა ადამიანი, რომელსაც მივყვები რობერტ კოუანი, მარტი მექანიკოსი და სხვა.

ცხადია, მე შემიძლია გამოვიყენო twitter, twitch და ა. Webhooks მე ასევე მაქვს კონფიგურირებული, რომ მივიღო განახლებები Biq Query ცხრილებიდან, რომლებიც დაკავშირებულია სამუშაოსთან, რათა შემატყობინოს, განახლებულია თუ არა ისინი საკმარისი რაოდენობით ჩანაწერებით ყოველდღე.

Adafruit– ს აქვს სერვისი სახელწოდებით Adafruit IO, რომელიც მინდოდა ვცადო და მე მთელი წლის განმავლობაში ვცდილობდი ვცადო და ხელახლა გავუმკლავდე ESP8266– ს Wemos D1 Mini 3. გამოშვებაზე კარგი სიტყვების მოსმენის შემდეგ. ეს ყველაფერი ერთად დაიწყო, როდესაც მე ვიპოვე დიზაინი LED on thingiverse მიერ Astro73. დავიწყე ამით და ცოტათი გადავაბრუნე იგი მასშტაბისათვის და ასევე დაემატა ღილაკი ძირში და სხვა კოსმეტიკური ცვლილებები. თქვენ შეგიძლიათ იპოვოთ რემიქსი აქ

გარდა ამისა, მისი ხმის კონტროლი შესაძლებელია Alexa– ს საშუალებით, ისევე როგორც IFTTT alexa გამომწვევი სიტყვის მოსვლასთან ერთად.

ნაბიჯი 1: ინგრედიენტები

თუ გსურთ რომელიმე მათგანის შედგენა, ნაწილების სია საკმაოდ მცირეა და ასევე ფასდაუდებელიც იაფი. თუ არ გაწუხებთ ლოდინი, შეგიძლიათ მიიღოთ ძირითადი ნაწილები საზღვარგარეთიდან და კიდევ უფრო შეამციროთ ღირებულება. მთავარი ინგრედიენტი არის Giant LED საქმე და ბაზა. თუ თქვენ გაქვთ 3D პრინტერი, მაშინ ყველაფერი მზადაა, თუ არა, არის რამდენიმე ონლაინ პრინტერის კომპანია, რომელიც ბეჭდავს ნაწილებს. არსებობს მხოლოდ 3, ასე რომ ის ასევე უნდა იყოს საკმაოდ იაფი.

1. Wemos D1 Mini R3

2. Neopixel 8 LED

3. ნაბეჭდი ბაზა და ფეხები შავი PETG

4. ნაბეჭდი ობიექტივი და სინათლის დამჭერი გამჭვირვალე PLA- ში

5. Push Button Switch 12 მმ კვადრატი x1

6. მრგვალი ღილაკი Cap x1

7. USB კაბელი და ადაპტერი დენისთვის

8. M3x20 ღილაკის თავი

9. M3 თხილი

10. M2x8 მმ ჭანჭიკი x2

11. M2 თხილი x2

12. შავი, წითელი და ყვითელი მავთულები

13. 300-500 Ohm რეზისტორი

14. სითბოს შემცირების პატარა ნაჭერი

თქვენ შეგიძლიათ გამოიყენოთ სხვა ESP მოწყობილობები, ან თუნდაც Huzzah, მაგრამ ქეისი განკუთვნილია მინი -სთვის, რომელსაც აქვს სამონტაჟო ხვრელები და თავიდან აიცილებს მის წებოვნებას.

ნაბიჯი 2: ინსტრუმენტები

ამის შესაქმნელად და შესაქმნელად დაგჭირდებათ შემდეგი

1. 3D პრინტერი

2. 1.5 მმ და 2 მმ ალენის გასაღები

3. შესადუღებელი რკინა და შედუღება

4. მავთულხლართები

5. ბლინები

6. იუმორის გრძნობა

7. სკალპელი მოსაკრეფად

ნაბიჯი 3: კოდის მოთხოვნები

ასე რომ, სანამ ჩვენ ჩავუღრმავდებით მშენებლობაში, მე ვაპირებ გამოვხატო ზოგიერთი მოთხოვნა, რომელიც მინდოდა მასში შემეტანა. მათი უმეტესობა მხედველობაში მქონდა დაწყებამდე და რამდენიმე მონახაზი შევადგინე იმის გასარკვევად, თუ რის გაკეთებას ვაპირებდი. რაც გაგრძელდა, მე აღმოვაჩინე გარკვეული პრობლემები სერვისებთან, რომელთა მოგვარებაც მინდოდა.

მოთხოვნები.

მინდოდა LED მაჩვენებინა ახალი ტვიტის ან ვიდეოს გამოქვეყნებისას და ასევე გამოდის, როდესაც Twitch– ის სპეციფიკური არხი იწყება. მე ასევე მინდოდა, რომ გაფრთხილება გაგრძელებულიყო მანამ, სანამ არ გავაუქმე, რომ ცოტა ხნით შორს ყოფნისას ვიცოდე რაც მოხდა შორს ყოფნისას. მე ასევე მინდოდა ის იყოს კონფიგურირებული Wi-Fi წვდომისთვის პროგრამული უზრუნველყოფის განახლების გარეშეც. ბოლო რამ, რაც ასევე გამოჩნდა, იყო გარდა იმისა, რომ რეაგირებდი მოვლენებზე პირდაპირ ეთერში, მე მჭირდებოდა ყოველ 15 წუთში ერთხელ მისი მონაცემების სტატუსის შესამოწმებლად

ასე რომ, საფუძვლების გათვალისწინებით, შემდეგი იყო შემუშავება, თუ როგორ უნდა შესრულებულიყო თითოეული ნაწილი. თქვენ შეგიძლიათ ნახოთ ჩემი იდეები ქვემოთ რომელ ნაწილზე იქნება დამუშავებული რომელი ტიპის პროგრამული უზრუნველყოფა ან პლატფორმა.

1. Adafruit IO, ეს გამოიყენება სიგნალებისთვის არხების დასაყენებლად, შეგიძლიათ მიიღოთ ანგარიში აქ

მე ვიყენებ ამას, როგორც შეტყობინებების რიგში დგომის სერვისს, სადაც გავგზავნი მას შეტყობინებებს IFTTT– დან და შემდეგ Giant LED მიიღებს ამ შეტყობინებებს, რათა მან შეძლოს მათზე მოქმედება.

2. IFTTT, https://ifttt.com/ და ეს გამოიყენება არჩეული Twitter, YouTube და Twitch არხების სკანირებისთვის და შემდეგ აგზავნის ღონისძიებას Adafruit IO- ში

3. ESP8266 კოდი ამ წყაროების წასაკითხად და ის ჩაწერილია ESP8266 სტანდარტული Arduino IDE გამოყენებით (v1.8.8)

4. Arduino კოდი, დატვირთული ESP8266– ზე Adafruit IO არხების წასაკითხად და ნეოპიქსელის გასანათებლად

5. Arduino კოდი, რომ წაიკითხოთ ღილაკი, რომ გაასუფთაოთ გაფრთხილება

6. შეძლებთ დააკონფიგურიროთ WiFi ადაპტერი ESP– ის ხელახლა ჩართვის გარეშე და ამისათვის გამოვიყენე WiFi მენეჯერის ბიბლიოთეკა Tzapu– ს მიერ, https://github.com/tzapu/WiFiManager, თუმცა დაყენების ვარიანტებს მცირე ცვლილება სჭირდებოდა. ადაფრუტის IO ბიბლიოთეკები.

ნაბიჯი 4: Adafruit IO- ს დაყენება

Adafruit IO– ს დაყენება
Adafruit IO– ს დაყენება

ეს არის პირველი ნაბიჯი, რადგან თქვენ დაგჭირდებათ აქ შექმნილი წვდომის გასაღებები და ასევე უნდა შექმნათ არხები, რომლებსაც IFTTT გამოგიგზავნით მოვლენებს. თქვენ შეგიძლიათ შექმნათ როგორც ეს, ასევე IFTTT ანგარიში და საკმაოდ მოაწყოთ ყველაფერი, სანამ ამ პროექტის არდუინოს ნაწილზე გადახვალთ.

ადაფრუტის მაგალითების გადაწერის ნაცვლად, თქვენ შეგიძლიათ იპოვოთ საფუძვლები აქ https://learn.adafruit.com/gmailbox/adafruit-io-se…, რაც დაყენების საშუალებას მოგცემთ.

შემდეგ GIANT LED– ისთვის ასევე დაგჭირდებათ ნაგულისხმევი არხების დამატება შემდეგი არხებით

1. ფერი - ეს საშუალებას გვაძლევს დისტანციურად შევცვალოთ ფერი ალექსის მსგავსი

2. გადახრა

3. twitterfan

4. youtubefan

შემდეგ თქვენ ასევე უნდა შექმნათ ახალი ჯგუფი, თუ თქვენ ჯერ არ გქონიათ შესავალი, შემდეგ ამ ჯგუფში ასევე შექმენით არხი სახელწოდებით ციფრული. ეს საშუალებას მოგვცემს ასევე დავინახოთ ღილაკის დაჭერის ეფექტი, თუ გვსურს ამ მოწყობილობის გამოყენების გაფართოება სხვა მიზნებისთვის.

თუ თქვენც გინდათ, რომ ამ მომენტში ითამაშეთ დაფაზე, რომ დაამატოთ ეს არხები მას ინფორმაციისა და ხარვეზის აღმოჩენის მიზნით.

ნაბიჯი 5: IFTTT– ის დაყენება

IFTTT– ის დაყენება
IFTTT– ის დაყენება
IFTTT– ის დაყენება
IFTTT– ის დაყენება

თქვენ ასევე შეგიძლიათ მიყევით ადაფრუტის სახელმძღვანელოს აქ, https://learn.adafruit.com/gmailbox/ifttt-setup. ამის შემდეგ შეგიძლიათ შეარჩიოთ Twitter, youtube და twitch მოქმედებები თქვენი ყურების დასადგენად და შემდეგ გაგზავნოთ ისინი შესაბამის არხებში. მე დავამატე მარტივი ვიდეო, რომ ნახოთ რამდენად სწრაფია.

გარდა ამისა, თუ გსურთ ხმის გაკონტროლება თქვენი LED– ის ფერით Alexa– ს მიერ, ახლა არის Amazon Alexa აპლეტი. ერთ -ერთი მათგანის დასაყენებლად შეარჩიეთ აპლიკაცია და შეარჩიეთ სიტყვა ლურჯი, შემდეგ დააკავშირეთ იგი თქვენს მიერ შექმნილ Adafruit არხთან, რომელსაც ეწოდება ფერი და შეიყვანეთ 0000ff, როგორც მონაცემები იმ არხზე გასაგზავნად. თქვენ ასევე შეგიძლიათ გადააგზავნოთ დამატებითი ბრძანებები GIANT LED– ზე, როგორიცაა გადატვირთვა ან გადატვირთვა, თუ გსურთ.

IFTTT გამომწვევის შექმნისას თქვენ უნდა აირჩიოთ მონაცემები, რომლებიც იგზავნება და ამას IFTTT- ში ეწოდება "ინგრედიენტები". პირველი ნაწილი, რაც ჩვენ გვჭირდება არის "UserName", შემდეგ სივრცე და შემდეგ "CreatedAt"

ჩვენ ვირჩევთ ორივე ერთეულს ისე, რომ როდესაც მონაცემები ESP8266– ში მოვა, ჩვენ შეგვიძლია დავადგინოთ, არის თუ არა ეს ახალი ტვიტი და ის განსხვავდება ერთი და იმავე მომხმარებლების წინა ტვიტებისგან. თქვენ შეგიძლიათ ნახოთ რა უნდა მოეწონოს ამას თანდართული სურათიდან.

ნაბიჯი 6: ESP8266 დაფების დაყენება Arduino IDE– ში

ეს არის ის, სადაც ყველაფერი ცოტა უფრო რთულია და შეიძლება ცოტა მეტი დრო დასჭირდეს დალაგებას. ESP8266– ის გარდა თქვენ ასევე გჭირდებათ ადაფრუტის 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 LED გამოყვანის მაგალითზე დაყრდნობით // Adafruit ინვესტიციას უწევს დროს და რესურსებს ამ ღია კოდის უზრუნველსაყოფად. // გთხოვთ მხარი დაუჭიროთ ადაფრუტს და ღია კოდის აპარატურას ადაფრუტისგან // პროდუქციის შეძენით! // // დაწერილი Todd Treece– ის მიერ Adafruit Industries // საავტორო უფლება (გ) 2016-2017 Adafruit Industries // ლიცენზირებული MIT ლიცენზიით. // // ყველა ზემოთ მოყვანილი ტექსტი უნდა შეიცავდეს ნებისმიერ გადანაწილებას. // იყენებს simpletimer 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" "#define 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; #განსაზღვრეთ PIXEL_TYPE NEO_GRB + NEO_KHZ800 Adafruit_NeoPixel პიქსელი = Adafruit_NeoPixel (PIXEL_COUNT, PIXEL_PIN, PIXEL_TYPE); // ძირითადი ფერები და ნაგულისხმევი ფერი long default_color = 865554; გრძელი RED_color = 2689027; // წითელი #290803 გრძელი მწვანე_ფერი = 865554; // მწვანე #0d3512 გრძელი ლურჯი_ფერი = 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; // წამი არის ათასი მილიწამი მუდმივი ერთი წუთი = ერთი წამი * 60; const long fiveMinutes = oneMinute * 5; const long თხუთმეტი წუთი = ხუთი წუთი * 3; const long oneHour = თხუთმეტი წუთი * 4; // ტვიტერის მომხმარებლები, რომლებიც ჩვენ ყველაზე მეტად მოგვწონს და ეს აანთებს და ყველა სხვა ტვიტი, რომელიც ჩვენ ავირჩიეთ, უბრალოდ შეცვლის ფერს String SuperTweet = {"ajaxjones", "donttrythis", "prodnose", "testcom"}; სიმებიანი SuperTuber = {"შემოწმებულია", "კოუანი", "მოწამე"}; // ადგენს გაფრთხილების სტატუსს, რათა ჩვენ გავაგრძელოთ LED- ების მოციმციმე ძირითად მარყუჟში bool WHIZZY_TWEET = false; bool WHIZZY_TUBER = ყალბი; bool WHIZZY_TWITCH = ყალბი; // ინახავს ბოლო ტვიტს და youtube- ს, რათა ჩვენ შევძლოთ სერვისის ორმაგი შემოწმება დროდადრო String lasttweet = ""; სიმებიანი lasttube = ""; სიმებიანი lasttwitch = ""; // ციფრული პინი 5, ეს არის ღილაკი, რომელსაც ჩვენ ვიყენებთ განგაშის ფერების გადასაყენებლად #განსაზღვრეთ BUTTON_PIN 4 // ღილაკის მდგომარეობა, რაც ნამდვილად არ გამოიყენება, რადგან ჩვენ ვეძებთ ღილაკს interolpt 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" არხის შექმნა - Purple AdafruitIO_Feed *twitch = io.feed ("twitch"); // დააყენეთ "ციფრული" არხი AdafruitIO_Feed *digital = io.feed ("input.digital"); // ---------------------------------------------------- --------------------------------------------- void setup () {// set the ღილაკის პინი შეყვანის სახით, ჩვენ ვიყენებთ INPUT_PULLUP- ს, რადგან არ გვჭირდება გარე რეზისტორების pinMode (BUTTON_PIN, INPUT_PULLUP) გამოყენება; // მიამაგრეთ შეწყვეტა ISR ვექტორს ღილაკზე attachInterrupt (digitalPinToInterrupt (BUTTON_PIN), handleInterrupt, FALLING); // დაიწყეთ სერიალი და დაელოდეთ სერიული მონიტორის გახსნას და შემდეგ დაუკავშირდით io.adafruit.com Serial.begin (115200); ხოლო (! სერიული); // neopixel begin pixels.begin (); // დააყენეთ ინტიალური მდგომარეობა წითლად, რათა ვიცოდეთ რომ ჩვენ ვართ ხაზგარეშე და ვმუშაობთ setAll (0xf4, 0x00, 0x00); // წითელი // ტესტირებისთვის, ეს აჩვენებს WiFi WiFi.printDiag (სერიული) სტატუსს; WiFiManager wifiManager; // დააყენეთ გამოძახება, რომელიც იძახება წინა WiFi– სთან დაკავშირებისას ვერ ხერხდება და შედის წვდომის წერტილის რეჟიმში wifiManager.setAPCallback (configModeCallback); // გადატვირთეთ შენახული პარამეტრები, გაუკეთეთ კომენტარი ამ მომდევნო ხაზს, რათა აიძულოთ WiFi მენეჯერის ტესტირება, ასე რომ თქვენ შეგიძლიათ დააკავშიროთ // გამოიყენეთ თქვენი ტელეფონი ან ტაბლეტი გიგანტური LED ქსელის მოსაძებნად, რომელიც გამოჩნდება //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. დაწყება (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 ("Connecting Adafruit IO")); io.connect (); // დააყენეთ შეტყობინებების დამმუშავებელი "ფერის" არხისთვის. ფერი-> 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 (ზომა (SuperTweet))); //Serial.println (ზომა ((SuperTweet [0]))); // დაბეჭდეთ Twitter ანგარიშების სია, რომელსაც ჩვენ ველოდებით (byte idx = 0; idx <sizeof (SuperTweet) / sizeof (SuperTweet [0]); idx ++) {Serial.print (F ("SuperTweet [")); Serial.print (idx); Serial.print ("] = '"); Serial.print (SuperTweet [idx]); Serial.println ("'"); } // დაბეჭდეთ იმ YouTube ანგარიშების სია, რომელსაც ჩვენ ველოდებით (byte idx = 0; idx get (); // მოითხოვეთ არხების არსებული მდგომარეობა, ასე რომ თქვენ უნდა დააჭიროთ გადატვირთვისას YouTube– ის გაშვებისას -> მიიღეთ (); twitter-> მიიღეთ (); twitch-> მიიღეთ (); for (int i = 0; მე მივიღებ (); twitter-> მიიღეთ (); twitch-> მიიღეთ (); სერიული. ბეჭდვა ("ზოგიერთი ტვიტის მიღება"); Serial.print ("დრო (ები):"); Serial.println (millis () / 1000);} // ---------------- ------------------------------------------------------ ----------------------- ბათილი მარყუჟი () {// io.run (); საჭიროა ყველა ესკიზისთვის. io.run (); ქრონომეტრი. run (); if (WHIZZY_TWEET == true) {RunningLights (0x0d, 0x10, 0x35, 250);} if (WHIZZY_TUBER == true) {RunningLights (0x29, 0x08, 0x03, 250);} თუ (WHIZZY_TWITCH ==) {RunningLights (0x24, 0x16, 0x28, 250);}} // --------------------------------- ------------------------------------------------------ ------ // დააყენეთ შუალედი ღილაკის დაჭერისას გაფრთხილების გასასუფთავებლად და შეამოწმეთ ინტერნეტი void handleInterrupt () {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}} // -------------- ------------------------------------------------------ -------- {String tweeter = (data-> toString ()); tweeter.toLowerCase (); if ((lasttweet! = Tweeter) && (tweeter! = "")) {Lasttweet = tweeter; setAll (0x0d, 0x10, 0x35); // დააყენეთ tweet ლურჯი ფერი Serial.print (F ("Tweet:")); Serial.print (tweeter); // შეამოწმეთ ფავორიტი ტვიტერი (byte idx = 0; idx = 0) {// მოდით შევქმნათ tweets whizzy #0d1035 WHIZZY_TWEET = true; Serial.print ("by"); Serial.print (SuperTweet [idx]);}} Serial.println ("");}} // --------- ------------------------------------------------------ -------------------------------- - // ამას ეძახიან როდესაც "youtube" შეტყობინება მოდის- დააყენეთ LED RED void youtubeMessage (AdafruitIO_Data *data) {String tuber = (data-> toString ()); tuber.toLowerCase (); if ((lasttube! = tuber) && (tuber! = "")) {lasttube = tuber; setAll (0x29, 0x08,0x03); // დააყენეთ youtube წითელი ფერი 290803 Serial.print (F ("Youtube:")); Serial.println (ტუბერი); // შეამოწმეთ ფავორიტი Youtuber for (byte idx = 0; idx = 0) {// მოდით მათი ვიდეოები იყოს whizzy #0d1035 WHIZZY_TUBER = true; Serial.print ("by"); Serial.print (SuperTuber [idx]); }} Serial.println (""); }} // -------------------------------------------------- ---------------------------------------------- // // ამას ჰქვია ყოველთვის, როდესაც ა 'twitch' შეტყობინება მოდის - დააყენეთ LED PURPLE void twitchMessage (AdafruitIO_Data *data) {String twitch = (data-> toString ()); twitch.toLowerCase (); თუ ((lasttwitch! = twitch) && (twitch! = "")) {lasttwitch = twitch; setAll (0x24, 0x16, 0x28); // დააყენეთ twitch purple color #241628 Serial.print (F ("Twitch:")); Serial.println (twitch); // არ არის შემოწმებული საყვარელი Twitcher– ისთვის, ჩვენ ვიცავთ მხოლოდ ერთ WHIZZY_TUBER = true; Serial.println (""); }} // -------------------------------------------------- ---------------------------------------------- // ეს ფუნქცია ეწოდება ნებისმიერ დროს მიიღება "ფერადი" შეტყობინება // რომელიც დააყენებს ნაგულისხმევ ფერს გაშვებისას ფერადი კვების ბოლო მნიშვნელობის საფუძველზე void handleMessage (AdafruitIO_Data *data) {// დაბეჭდეთ RGB მნიშვნელობები და ექვსკუთხედი მნიშვნელობა Serial.print (F ("მიღებული HEX მნიშვნელობა: ")); Serial.println (მონაცემები-> მნიშვნელობა ()); გრძელი ფერი = მონაცემები-> toNeoPixel (); // ნაგულისხმევი_ფერი = ფერი; Serial.print (F ("მიღებული HEX ხანგრძლივი:")); Serial.println (ფერი); for (int i = 0; i <PIXEL_COUNT; ++ i) {pixels.setPixelColor (i, ფერი); } showStrip (); } // -------------------------------------------------- ---------------------------------------------- ბათილი RunningLights (ბაიტი წითელი, ბაიტი მწვანე, ბაიტი ლურჯი, int WaveDelay) {int პოზიცია = 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) * წითელი, ((ცოდვა (i + პოზიცია) * 127 + 128) / 255)*მწვანე, ((ცოდვა (i + პოზიცია)*127 + 128) / 255)*ლურჯი); } showStrip (); დაგვიანება (WaveDelay); }} // -------------------------------------------------- ---------------------------------------------- // ნეოპიქსელის რუტინები ბათილია მითითებული ყველა (ბაიტი წითელი, ბაიტი მწვანე, ბაიტი ლურჯი) {for (int i = 0; i getConfigPortalSSID ()); // შევიდა კონფიგურაციის რეჟიმში, დააყენეთ Neo Pixel იისფერი #241628 = 2364968 // setAll (0x24, 0x16, 0x28); setAll (0xeb, 0xfb, 0x03); // ყვითელი ebfb03}

ნაბიჯი 9: გააერთიანეთ ეს ყველაფერი ერთად

Soldering ეს ყველაფერი ერთად
Soldering ეს ყველაფერი ერთად
Soldering ეს ყველაფერი ერთად
Soldering ეს ყველაფერი ერთად
Soldering ეს ყველაფერი ერთად
Soldering ეს ყველაფერი ერთად

ამ დიზაინში ყველაფერი გაერთიანებულია და მისი მართვა საკმაოდ მარტივი უნდა იყოს. მე გამოვიყენე 3 სხვადასხვა ფერის მავთული, რომ საქმეები გამიადვილდეს და პირველი რაც უნდა გავზომოთ მავთულის ნეოპიქსელისთვის WEMOS– ზე. მე ჩავამაგრე ისინი და დავაყენე სითბოს შესამცირებელი პატარა ნაჭერი და შემდეგ შევახურე ისინი ისე, როგორც ნაჩვენებია ისე, რომ ის ობიექტივში მოთავსდეს.

ღილაკი შემდეგი იყო და მოთავსდება ძირში. ღილაკის ერთი მხარე მიდის Gnd– ზე და ის გადაუგრიხულია ნეოპიქსელის Ground მავთულთან ერთად. შემდეგ მე მოვათავსე ისინი და შევაერთე როგორც ერთი WEMOS- ის დაფქვილ პინში.

Neopixel– ის სიმძლავრე მიდის 5v PIn– ზე. ნეოპიქსელის სიგნალის მავთული, ანუ Di (მონაცემები in) არის შეკრული Wemos pin– ზე, როგორც D1. არის საიტები, რომლებიც გვთავაზობენ 300-500 Ohm რეზისტორის სერიულად შეყვანას, მაგრამ ჯერჯერობით არანაირი პრობლემა არ მქონია, ჯერჯერობით ეს მხოლოდ პირდაპირი კავშირია.

კარგი პრაქტიკის უზრუნველსაყოფად და ისეთი საიტების რჩევით, როგორიცაა Adafruit მე დავდე 330R რეზისტორი სერიაში Di ხაზით ნეოპიქსელამდე. ეს არის იმისთვის, რომ თავიდან აიცილოს ბეჭედიდან პირველი შუქი, რომ არ გამოუშვას ჯადოსნური პიქსიები და უბრალოდ გაკეთდეს მავთულის მოჭრით და რეზისტორის ჩასმით. თქვენ შეგიძლიათ გაჭრათ რეზისტორი საკმაოდ მოკლედ და უბრალოდ მოათავსოთ ჰოოპ თითოეულ ბოლოში და იგივე გააკეთოთ მავთულით.

ღილაკის სხვა მავთული პირდაპირ მიდის D2 პინზე. არ არის საჭირო გამწევი რეზისტორი, რადგან ეს ხდება პროგრამულ უზრუნველყოფაში PULLUP ბრძანების დაყენებით ამ პინზე.

ეს არის ძირითადად ყველაფერი, რაც მას აქვს.

ნაბიჯი 10: 3D ბეჭდვა

აქ არის თანდართული STL ფაილები, რომლებსაც ჩვენ ვიყენებთ Giant LED– ისთვის. ფაილები არის astro73– ის რემიქსი/გადაკეთება და თქვენ შეგიძლიათ აიღოთ ყველა ფაილი https://www.thingiverse.com/thing:3290837 ასევე.

ფეხებისა და ფსკერისთვის გამოვიყენე Sunlu PETG+ ბოჭკო, რომელიც მართლაც კარგად მუშაობს Prusa i3– ზე და ვიყენებ გიროიდების 10 ან 20% შევსებას.

LED- ისთვის მე ვიყენებ Sunlu გამჭვირვალე PLA– ს და ვიყენებ დაახლოებით 10% შევსებას კონცენტრირებული ზედა და ქვედა ფენებით.

თითოეულს მხოლოდ Slus3r– ში ვიყენებ მარაგის 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 inbox გაფრთხილება არის ერთი მარტივი და რადგან Adafruit ასევე მუშაობს Webhooks– სთან ერთად სხვა პროგრამებსაც შეუძლიათ მონაცემების გაგზავნა. მე მყავს ერთი მომენტი, რომელიც თვალყურს ადევნებს Big Query მონაცემების ატვირთვას სამუშაო პროექტის ფარგლებში.

ასევე ღილაკთან ერთად შეგიძლიათ გამოიყენოთ სხვა GIANT LED- ების სიგნალიც, შეგიძლიათ გქონდეთ ერთი სხვადასხვა სახლში და გამოიყენოთ იგი დისტანციური ინდიკატორისთვის, რათა მეორე მხარემ დააჭიროს ღილაკს სინათლის გასაუქმებლად.

აქ არის სასარგებლო ბმული webhook მეთოდზე მონაცემების არხზე გაგზავნის შესახებ. ამ შემთხვევაში ის იყენებს IFTTT აპლეტს, მაგრამ თქვენ შეგიძლიათ მარტივად გამოიყენოთ CURL მეთოდი პითონთან.

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

ფაქტობრივად, შესაძლებელია OLED 128x32- ის ბაზაზე მოთავსება, რათა შეავსოს LED ტექსტური შინაარსით და მე ამჟამად ვმუშაობ ამაზე და განვაახლებ STL- ს და მივაწოდებ კოდს IO- ს გამოსაყენებლად.

გირჩევთ: