Spisu treści:
- Krok 1: Składniki
- Krok 2: Narzędzia
- Krok 3: Wymagania dotyczące kodu
- Krok 4: Konfiguracja IO Adafruit
- Krok 5: Konfiguracja IFTTT
- Krok 6: Instalowanie płyt ESP8266 w Arduino IDE
- Krok 7: Instalowanie biblioteki WiFi Manager
- Krok 8: Kod ESP8266 - z drukowaniem debugowania
- Krok 9: Zlutuj wszystko razem
- Krok 10: Wydruk 3D
- Krok 11: Gigantyczny montaż LED
- Krok 12: Instrukcja konfiguracji i obsługi
- Krok 13: Co jeszcze może zrobić Giant LED?
Wideo: Giant LED - Śledzenie Adama Savage'a: 13 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
Tutaj znajdziesz wersję Giant LED, która została ponownie wykorzystana do działania jako lampka ostrzegawcza Twittera, YouTube i Twitcha. Głównym celem dla mnie jest ostrzeganie, gdy pojawiają się tweety, filmy lub twitchowe streamy Adama Savage'a i testowanego zespołu, a żeby być uczciwym, kilku innych ludzi, których śledzę, takich jak Robert Cowan, Marty Mechanik i wielu innych.
Oczywiście mógłbym używać twittera, twitcha itp. na moim telefonie lub laptopie, ale jest tak wiele alertów z tak wielu usług i powiadomień, że w zasadzie je wszystkie wyłączam, a telefon przechodzi w tryb cichy po 22:00, ponieważ będzie działać również z Webhook Mam również skonfigurowany do otrzymywania aktualizacji z niektórych tabel Biq Query, które są związane z pracą, aby dać mi znać, czy zostały zaktualizowane OK z wystarczającą liczbą rekordów każdego dnia.
Adafruit ma usługę o nazwie Adafruit IO, którą chciałem wypróbować i przez cały rok chciałem spróbować ponownie zmierzyć się z ESP8266 po usłyszeniu kilku dobrych słów na temat wydania Wemos D1 Mini 3. Wszystko zaczęło się układać, gdy znalazłem projekt dla diody LED na rzeczach Astro73. Zacząłem od tego i przerobiłem go trochę, aby zwiększyć skalę, a także dodać przycisk w podstawie i kilka innych kosmetycznych zmian. Remiks można znaleźć tutaj
Dodatkowo może być sterowany głosem przez Alexę teraz, a także dzięki pojawieniu się słowa wyzwalającego IFTTT alexa.
Krok 1: Składniki
Jeśli chcesz wykonać jedną z tych części, lista części jest dość mała, a także stosunkowo niedroga. Jeśli nie masz nic przeciwko czekaniu, możesz pozyskać główne części z zagranicy, a także jeszcze bardziej obniżyć koszty. Głównym składnikiem jest jednak obudowa i podstawa Giant LED. Jeśli masz drukarkę 3D, to wszystko jest gotowe, jeśli nie, istnieje kilka firm zajmujących się drukowaniem online, które będą drukować części. Są tylko 3, więc powinno być również dość tanie.
1. Wemos D1 Mini R3
2. Neopiksel 8 LED
3. Drukowana podstawa i nogi z czarnego PETG
4. Drukowane soczewki i uchwyt światła w przezroczystym PLA
5. Przełącznik wciskany 12mm kwadrat x1
6. Okrągła nasadka na przycisk x1
7. Przewód USB i adapter do zasilania
8. Głowica przycisku M3x20
9. Nakrętka M3
10. Śruba M2x8mm x2
11. M2 Nakrętka x2
12. Niektóre czarne, czerwone i żółte przewody
13. Rezystor 300-500 omów
14. Mały kawałek koszulki termokurczliwej
Możesz użyć innych urządzeń ESP, a nawet Huzzah, ale obudowa została zaprojektowana dla mini, która ma otwory montażowe i unika konieczności wklejania.
Krok 2: Narzędzia
Aby to stworzyć i zbudować, potrzebujesz następujących
1. Drukarka 3D
2. Klucz imbusowy 1,5 mm i 2 mm
3. Lutownica i lut
4. Przecinaki do drutu
5. Szczypce
6. Poczucie humoru
7. Skalpel do przycinania
Krok 3: Wymagania dotyczące kodu
Więc zanim zagłębimy się w kompilację, przedstawię niektóre z wymagań, które chciałem w tym uwzględnić. Większość z nich miałem na myśli przed rozpoczęciem i naszkicowałem kilka przepływów, aby dowiedzieć się, co zamierzam wypróbować. Mimo to odkryłem pewne problemy z usługami, którymi chciałem się zająć.
Wymagania.
Chciałem, aby dioda LED pokazywała mi, kiedy opublikowano nowy tweet lub wideo, a także okazało się, że uruchamia się określony kanał Twitch. Chciałem również, aby alert był kontynuowany, dopóki go nie anuluję, aby jeśli mnie nie było przez jakiś czas, wiedziałbym, co się wydarzyło podczas mojej nieobecności. Chciałem również, aby można go było skonfigurować pod kątem dostępu do Wi-Fi bez konieczności aktualizacji oprogramowania. Ostatnią rzeczą, która również się pojawiła, było reagowanie na wydarzenia na żywo, potrzebowałem tego, aby co 15 minut sprawdzać stan przesyłanych do niego danych
Więc mając podstawy, następną rzeczą było ustalenie, jak każda część zostanie wykonana. Poniżej możesz zobaczyć moje pomysły, które części będą obsługiwane przez dany rodzaj oprogramowania lub platformy.
1. Adafruit IO, służy do konfiguracji kanałów dla alertów, możesz założyć konto tutaj
Będę używał tego jako usługi kolejkowania wiadomości, w której będę wysyłał wiadomości z IFTTT, a następnie dioda Giant LED odbiera te wiadomości, aby mogła na nich działać.
2. IFTTT, https://ifttt.com/ i służy do skanowania wybranych kanałów Twitter, YouTube i Twitch, a następnie wysyła zdarzenie do Adafruit IO
3. Kod ESP8266 do odczytu tych kanałów i jest wypalany w ESP8266 za pomocą standardowego Arduino IDE (v1.8.8)
4. Kod Arduino, załadowany do ESP8266, aby odczytać kanały IO Adafruit i rozświetlić Neopixel
5. Kod Arduino do odczytania przycisku, aby wyczyścić alert
6. Móc skonfigurować kartę WiFi bez konieczności ponownego wypalania ESP, a do tego użyłem biblioteki WiFi Manager firmy Tzapu, https://github.com/tzapu/WiFiManager chociaż opcje konfiguracji wymagały niewielkiej zmiany, aby dostosować Biblioteki Adafruit IO.
Krok 4: Konfiguracja IO Adafruit
Jest to pierwszy krok, ponieważ będziesz potrzebować kluczy dostępu, które tutaj utworzysz, a także musisz utworzyć kanały, do których IFTTT będzie wysyłać zdarzenia. Możesz skonfigurować zarówno to, jak i konto IFTTT i prawie wszystko skonfigurować i działać, zanim przejdziesz do części Arduino tego projektu.
Zamiast kopiować przykłady adafruit, możesz znaleźć podstawy tutaj https://learn.adafruit.com/gmailbox/adafruit-io-se… które pomogą Ci skonfigurować.
Następnie dla diody GIANT będziesz musiał również dodać do domyślnych kanałów następujące kanały
1. kolor - pozwala nam to zdalnie zmieniać kolor za pomocą czegoś takiego jak Alexa
2. drgnięcie
3. twitterfan
4. youtube fan
Następnie musisz również utworzyć nową grupę, jeśli jeszcze nie nazwałeś input, a następnie do tej grupy utwórz kanał o nazwie digital. Pozwoli nam to również zobaczyć efekt naciśnięcia przycisku, gdybyśmy chcieli rozszerzyć zastosowanie tego urządzenia do innych celów.
Jeśli chcesz również w tym momencie, pobaw się deską rozdzielczą, aby dodać do niej te kanały w celu uzyskania informacji i wyszukiwania błędów.
Krok 5: Konfiguracja IFTTT
Możesz również skorzystać z przewodnika Adafruit tutaj, https://learn.adafruit.com/gmailbox/ifttt-setup. Następnie możesz wybrać działania Twittera, YouTube i Twitch, aby skonfigurować swoje listy obserwacyjne, a następnie wysłać je do odpowiednich kanałów. Załączam prosty film, aby zobaczyć, jak szybko może to być.
Ponadto, jeśli chcesz sterować głosowo kolorem diody LED za pomocą Alexy, dostępny jest teraz aplet Amazon Alexa. Aby ustawić jeden z nich, wybierz aplikację i wybierz słowo niebieski, a następnie podłącz je do skonfigurowanego kanału Adafruit o nazwie kolor i wprowadź 0000ff jako dane do wysłania do tego kanału. Możesz także przekazać w ten sposób dodatkowe polecenia do diody GIANT, takie jak reset lub ponowne uruchomienie, jeśli chcesz.
Kiedy konfigurujesz wyzwalacz IFTTT, musisz wybrać dane, które są wysyłane i nazywa się to „Składnikami” w IFTTT. Pierwszym elementem, którego potrzebujemy, jest „UserName”, następnie spacja, a następnie „CreatedAt”
Wybieramy oba elementy, aby po otrzymaniu danych do ESP8266 móc wykryć, czy jest to nowy tweet i czy różni się od poprzednich tweetów tych samych użytkowników. Możesz zobaczyć, jak to powinno wyglądać na załączonym obrazku.
Krok 6: Instalowanie płyt ESP8266 w Arduino IDE
Tutaj sprawy są nieco trudniejsze i może zająć trochę więcej czasu, aby rozwiązać problem. Oprócz ESP8266 potrzebujesz również bibliotek Adafruit IO i możesz postępować zgodnie z tym przewodnikiem.
learn.adafruit.com/gmailbox/arduino-setup
Tutaj również znajduje się proste wyjaśnienie, jak dodać płyty ESP8266
Nie zapomnij upewnić się, że Twoje Arduino IDE jest również w najnowszej wersji, a ja używałem 1.8.8 w momencie pisania tego.
Inną biblioteką, z której korzystamy, jest SimpleTimer, ponieważ pozwoli nam to ustawić zegar w tle, abyśmy mogli okresowo sprawdzać kanały, instrukcje dotyczące tego można znaleźć pod adresem uses simpletimer https://playground.arduino.cc/Code/SimpleTimer# Pobierać
Krok 7: Instalowanie biblioteki WiFi Manager
Aby umożliwić nam zdalną konfigurację konfiguracji WiFi, użyjemy Tzapu Wifi Manger, szczegóły na ten temat i sposób instalacji bibliotek można znaleźć tutaj, github.com/tzapu/WiFiManager
Jest to dość prosta instalacja bibliotek zewnętrznych, a opcja znajduje się już w sekcji Zarządzaj biblioteką w sekcji narzędzi Arduino IDE.
Krok 8: Kod ESP8266 - z drukowaniem debugowania
// Ten kod zawiera instrukcje drukowania, dzięki czemu możesz monitorować jego działanie za pomocą monitora szeregowego
// Na podstawie Adafruit IO RGB LED Output Przykład // Adafruit inwestuje czas i zasoby, dostarczając ten kod open source. // Proszę wesprzyj Adafruit i sprzęt open source kupując // produkty od Adafruit! // // Autor Todd Treece dla Adafruit Industries // Copyright (c) 2016-2017 Adafruit Industries // Licencjonowany na licencji MIT. // // Cały powyższy tekst musi być uwzględniony w każdej redystrybucji. // używa simpletimer https://playground.arduino.cc/Code/SimpleTimer#Do… // https://playground.arduino.cc/Code/SimpleTimer#Do… // reszta kodu autorstwa Ajaxa Jonesa https:// plac zabaw.arduino.cc/Code/SimpleTimer#Do // https://playground.arduino.cc/Code/SimpleTimer#Do… // ******************* ******* Konfiguracja ***********************************/ #define IO_USERNAME "Twoje IO Username" #define IO_KEY "your IO Key" // zostaw puste, ponieważ otrzymamy je przez Menedżera Wifi, wygląda na to, że w ten sposób działa dobrze #define WIFI_SSID "" #define WIFI_PASS "" // nie uwzględniamy tego, ponieważ AdafruitIO dołącz jego wersję //#include //https://github.com/esp8266/Arduino //potrzebne dla biblioteki #include #include #include "WiFiManager.h" //https://github.com/tzapu/WiFiManager # zawierać zegar SimpleTimer; #include "AdafruitIO_WiFi.h" AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS); //************************* Konfiguracje NeoPixel ********************** *********// #include "Adafruit_NeoPixel.h" #define PIXEL_PIN 5 #define PIXEL_COUNT 8 int NUM_LEDS = PIXEL_COUNT; #define PIXEL_TYPE NEO_GRB + NEO_KHZ800 Adafruit_NeoPixel piksele = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, PIXEL_TYPE); // Główne kolory i domyślny kolor long default_color = 865554; długi CZERWONY_kolor = 2689027; // czerwony #290803 długi GREEN_color = 865554; // zielony #0d3512 długi BLUE_color = 856117; // niebieski #0d1035 długi PURPLE_color = 2364968; // fioletowy #241628 long BRIGHTRED_color = 15990784; // jasnoczerwony #f40000 // ------------------------------- ----------------------------------------------- //czas pomysł zaczerpnięty z https://www.safaribooksonline.com/library/view/arduino-cookbook-2nd/9781449321185/ch12.html https://playground.arduino.cc/Code/SimpleTimer#Do… https://playground. arduino.cc/Code/SimpleTimer#Do… const long oneSecond = 1000; // sekunda to tysiąc milisekund const long oneMinute = oneSecond * 60; const long fiveMinutes = oneMinute * 5; const długie piętnaście minut = pięć minut * 3; const długa jedna godzina = piętnaście minut * 4; // Twitter Użytkownicy, których lubimy najbardziej i te będą migać, a wszystkie inne wybrane przez nas tweety po prostu zmienią kolor String SuperTweet = { "ajaxjones", "donttrythis", "prodnose", "testedcom"}; String SuperTuber = {"testowany", "kowan", "marty"}; // ustawia stan alertu, abyśmy mogli ciągle migać diodami w pętli głównej bool WHIZZY_TWEET = false; bool WHIZZY_TUBER = fałsz; bool WHIZZY_TWITCH = fałsz; // Zapisuje ostatni tweet i youtube, dzięki czemu możemy co jakiś czas sprawdzać serwis w celu sprawdzenia String lasttweet =""; Ciąg lasttube =""; Ciąg lasttwitch =""; // cyfrowy pin 5, to jest przycisk, którego używamy do resetowania kolorów alertów #define BUTTON_PIN 4 // stan przycisku, niezupełnie używany, ponieważ szukamy przycisku przy przerwaniu bool current = false; bool last = false; // skonfiguruj kanał 'color', abyśmy mogli testować i wysyłać kolory na żądanie lub użyć wyzwalacza Alexa AdafruitIO_Feed *color = io.feed("color"); // skonfiguruj kanał 'twitterfan' - Blue AdafruitIO_Feed *twitter = io.feed("twitterfan"); // skonfiguruj kanał 'youtubefan' - Red AdafruitIO_Feed *youtube = io.feed("youtubefan"); // skonfiguruj kanał 'twitch' - Purple AdafruitIO_Feed *twitch = io.feed("twitch"); // skonfiguruj kanał 'digital' AdafruitIO_Feed *digital = io.feed("input.digital"); // ------------------------------------------------ ----------------------------------------- void setup() { // ustaw pin przycisku jako wejście używamy INPUT_PULLUP ponieważ nie musimy używać zewnętrznych rezystorów pinMode(BUTTON_PIN, INPUT_PULLUP); // Dołącz przerwanie do wektora ISR dla przycisku attachInterrupt(digitalPinToInterrupt(BUTTON_PIN), handleInterrupt, FALLING); // Uruchom serial i poczekaj na otwarcie monitora szeregowego, a następnie połącz się z io.adafruit.com Serial.begin(115200); podczas (! Szeregowy); // neopixel begin pikseli.begin(); // Ustaw stan początkowy na czerwony, abyśmy wiedzieli, że jesteśmy offline i pracujemy setAll(0xf4, 0x00, 0x00); // czerwony // do testowania, pokaże status WiFi WiFi.printDiag(Serial); WiFiManager WiFiManager; //ustaw wywołanie zwrotne, które zostanie wywołane, gdy połączenie z poprzednim Wi-Fi nie powiedzie się i przejdzie w tryb punktu dostępu wifiManager.setAPCallback(configModeCallback); //zresetuj zapisane ustawienia, usuń komentarz w tej następnej linii, aby wymusić testowanie Menedżera WiFi, aby można było połączyć się //użyć telefonu lub tabletu w celu wyszukania sieci Giant LED, która się pojawi //wifiManager.resetSettings(); //ustawia limit czasu do momentu wyłączenia portalu konfiguracyjnego //przydatne, aby spróbować ponownie lub przejść w tryb uśpienia //w sekundach wifiManager.setTimeout(240);if (!wifiManager.autoConnect("GIANT LED")) { Serial.println (F("nie udało się połączyć i przekroczyć limit czasu")); //resetuj i spróbuj ponownie delay(3000); ESP.reset(); opóźnienie (1000); } // do testowania możemy sprawdzić, czy mamy odpowiednie dane uwierzytelniające do połączenia //Serial.println(WiFi. SSID()); //Serial.println(WiFi.psk());//WiFi.begin(WIFI_SSID, WIFI_PASS); //podczas (WiFi.status() != WL_CONNECTED) { //opóźnienie(500); //Serial.print("."); //} Serial.println(); Serial.println(F("Połączenie WiFi")); Serial.println(F("adres IP: ")); Serial.println(WiFi.localIP()); // teraz łączymy się z usługą IO Serial.print(F("Połączenie z IO Adafruit")); io.connect(); // skonfiguruj obsługę wiadomości dla kanału „color”. color->onMessage(handleMessage); // skonfiguruj obsługę wiadomości dla kanału 'twitterfan'. twitter->onMessage(twitterMessage); // skonfiguruj moduł obsługi wiadomości dla kanału „youtubefan”. youtube->onMessage(youtubeMessage); // skonfiguruj obsługę wiadomości dla kanału „twitch”. twitch->onMessage(twitchMessage); // czekaj na połączenie while (io.status() < AIO_CONNECTED) { Serial.print(F(".")); opóźnienie (500); } // jesteśmy połączeni Serial.println(); Serial.println(io.statusText()); //Serial.println(sizeof(SuperTweet)); //Serial.println(sizeof(SuperTweet[0])); // Wydrukuj listę kont Twitter, na które czekamy (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("'"); } // Wydrukuj listę kont YouTube, na które czekamy (byte idx = 0; idx get(); // poproś o istniejące stany kanałów, więc będziesz musiał nacisnąć reset podczas uruchamiania youtube ->get();twitter->get();twitch->get();for (int i = 0; i get();twitter->get();twitch->get(); Serial.print("pobieranie kilku tweetów"); Serial.print("czas pracy (s): "); Serial.println(millis() / 1000); } // ---------------- -------------------------------------------------- ----------------------- void loop() { // io.run(); jest wymagany dla wszystkich szkiców. io.run(); timer. run(); if (WHIZZY_TWEET == true) { RunningLights(0x0d, 0x10, 0x35, 250); } if (WHIZZY_TUBER == true) { RunningLights(0x29, 0x08, 0x03, 250); } if (WHIZZY_TWITCH == true)) { RunningLights(0x24, 0x16, 0x28, 250); } } // ---------------------------------- -------------------------------------------------- ------ // ustaw przerwanie, aby wyczyścić alert po naciśnięciu przycisku i sprawdź internet void handleInterrupt() { WHIZZY_TWEET = fałszywe; WHIZZY_TUBER = fałsz; WHIZZY_TWITCH = fałsz; prąd = prawda; // wyślij aktualny stan do kanału 'input.digital' na adafruit io, abyśmy mogli go zobaczyć digital->save(current); for (int i = 0; i ")); Serial.print(current); Serial.print(F("i domyślny kolor ")); Serial.println(default_color); current = false; digital->save(current); while (WiFi.status() != WL_CONNECTED) { delay(500); setAll(0xeb, 0xfb, 0x03); // Żółty ebfb03 } } // ------------------ -------------------------------------------------- ------------------------- // jest to wywoływane za każdym razem, gdy nadejdzie wiadomość 'twitter' - ustaw diodę LED na Blue void twitterMessage(AdafruitIO_Data *data) { String tweeter = (data->toString()); tweeter.toLowerCase();if ((lasttweet != tweeter) && (tweeter != "")) { lasttweet = tweeter; setAll(0x0d, 0x10, 0x35); // Ustaw kolor niebieski tweetów Serial.print(F("Tweet: ")); Serial.print(tweeter); // sprawdź ulubiony tweeter for (byte idx = 0; idx = 0) { // Zróbmy ich tweety whizzy #0d1035 WHIZZY_TWEET = true; Serial.print(" by "); Serial.print(SuperTweet[idx]); } } Serial.println(""); } } // --------- -------------------------------------------------- ---------------------------- -- // to jest wywoływane, gdy nadejdzie wiadomość 'youtube' - ustaw diodę LED na CZERWONY void youtubeMessage(AdafruitIO_Data *data) { String tuber = (data->toString()); bulwa.doLowerCase(); if ((lasttube != bulwa) && (bulwa !="")) { lasttube = bulwa; ustawWszystko(0x29, 0x08,0x03); // Ustaw kolor czerwony youtube 290803 Serial.print(F("Youtube: ")); Serial.println(bulwa); // poszukaj ulubionego YouTubera for (byte idx = 0; idx = 0) { // Sprawmy, by ich filmy były świszczące #0d1035 WHIZZY_TUBER = true; Serial.print (" by "); Serial.print(SuperTuber[idx]); } } Serial.println(""); } } // ------------------------------------------------------------- -------------------------------------------- // to jest wywoływane, gdy a nadchodzi wiadomość 'twitch' - ustaw diodę LED na PURPLE void twitchMessage(AdafruitIO_Data *data) { String twitch = (data->toString()); twitch.toLowerCase(); if ((lastwitch != drganie) && (drganie !="")) { lasttwitch = drganie; ustawWszystko (0x24, 0x16, 0x28); // Ustaw fioletowy kolor twitcha #241628 Serial.print(F("Twitch: ")); Serial.println(drganie); // Brak czeku na ulubionego Twitchera, śledzimy tylko jednego WHIZZY_TUBER = true; Serial.println(""); } } // ------------------------------------------------------------- -------------------------------------------- // ta funkcja jest wywoływana zawsze odbierana jest wiadomość 'color' // która ustawi domyślny kolor przy starcie na podstawie ostatniej wartości koloru void handleMessage(AdafruitIO_Data *data) { // wydrukuje wartości RGB i wartość szesnastkową Serial.print(F("Otrzymana wartość HEX: ")); Serial.println(dane->wartość()); długi kolor = dane->toNeoPixel(); //domyślny_kolor = kolor; Serial.print(F("Otrzymany HEX długi: ")); Serial.println(kolor); for (int i = 0; i < PIXEL_COUNT; ++i) { pikseli.setPixelColor(i, kolor); } pokażStrip(); } // ----------------------------------------------- ------------------------------------------ void RunningLights (bajt czerwony, bajt zielony), byte blue, int WaveDelay) { int Pozycja = 0; for (int j = 0; j < LICZBA_LED; j++) { Pozycja++; // = 0; //Pozycja + Stawka; for (int i = 0; i < LICZBA_LED; i++) { setPixel(i, ((sin(i + Pozycja) * 127 + 128) / 255)*czerwony, ((sin(i + Pozycja) * 127 + 128) / 255)*zielony, ((sin(i + pozycja) * 127 + 128) / 255)*niebieski); } pokażStrip(); opóźnienie (opóźnienie fali); } } // ------------------------------------------------------------- ------------------------------------------- // Procedury Neopixel void setAll(byte red, byte green, byte blue) { for (int i = 0; i getConfigPortalSSID()); //wszedłem w tryb konfiguracji, ustaw Neo Pixel na fioletowy #241628 = 2364968 // setAll(0x24, 0x16, 0x28); setAll(0xeb, 0xfb, 0x03); // Żółty ebfb03 }
Krok 9: Zlutuj wszystko razem
Wszystko w tym projekcie jest lutowane razem i powinno być dość łatwe w zarządzaniu. Użyłem 3 różnych kolorowych przewodów, aby to ułatwić, a pierwszą rzeczą jest zmierzenie przewodu od neopiksela do WEMOS. Splotłem je i nałożyłem mały kawałek koszulki termokurczliwej, a następnie przylutowałem tak, aby leżał płasko w soczewce.
Przycisk był następny i będzie pasował ciasno do podstawy. Jedna strona przycisku przechodzi do Gnd i jest skręcona razem z przewodem uziemiającym neopiksela. Następnie ocynowałem je i przylutowałem jako jeden do kołka uziemiającego WEMOSa.
Przewód zasilający dla Neopixel idzie do 5v PIN. Przewód sygnałowy lub Di (dane w) neopiksela jest przylutowany do pinu Wemos jako D1. Są strony, które proponują włożenie szeregowo z tym rezystorem 300-500 Ohm, ale jak na razie nie miałem żadnych problemów, więc na razie jest to tylko bezpośrednie połączenie.
Aby zapewnić dobrą praktykę i za radą serwisów takich jak Adafruit, podłączyłem szeregowo rezystor 330R z linią Di do neopiksela. Ma to na celu powstrzymanie pierwszej diody LED w pierścieniu przed wypuszczeniem magicznych pixy i wystarczy przeciąć przewód i włożyć rezystor. Mały kawałek koszulki termokurczliwej zatrzyma wszelkie spięcia. Możesz przyciąć rezystor dość krótko i po prostu włożyć obręcz na każdym końcu i zrobić to samo z drutem.
Drugi przewód przycisku biegnie bezpośrednio do pinu D2. Nie ma potrzeby stosowania rezystora podciągającego, ponieważ jest on obsługiwany przez oprogramowanie, umieszczając polecenie PULLUP na tym styku.
To w zasadzie wszystko.
Krok 10: Wydruk 3D
Załączone są tutaj pliki STL, których używamy dla Giant LED. Pliki są remiksem/przeróbką astro73 i można je również pobrać z
Do nóg i podstawy użyłem filamentu Sunlu PETG+, który działa naprawdę dobrze na Prusa i3 i użyłem wypełnienia żyroidalnego 10 lub 20%.
Do samej diody LED użyłem przezroczystego PLA Sunlu i użyłem około 10% wypełnienia z koncentrycznymi warstwami górną i dolną.
Z każdym używam tylko fabrycznych ustawień Prusa PET i Prusa PLA w Slic3r i wszystkie działają dobrze. Mam trochę naciągania na nogach, ale po prostu macham nad nimi palnikiem i naciąg znika:)
Krok 11: Gigantyczny montaż LED
Wszystkie elementy łączą się ze sobą bardzo łatwo, musisz wcisnąć nakrętkę M3 w podstawę, aby śruba mogła utrzymać całość razem. Musisz również najpierw podłączyć NeoPixel do WEMOS przez nogi. Zastanawiałem się, jak włożyć kilka złączy, ale zdecydowałem, że nie rozpadnie się w przyszłości.
Soczewka jest po prostu mocowana na wcisk na nóżkach, które z kolei są przykręcane do podstawy za pomocą pojedynczej śruby M3x20mm. Być może będziesz musiał przesunąć nożem po wewnętrznej stronie dziurki na guzik, aby poruszał się swobodnie i swobodnie. Wemos jest utrzymywany na miejscu za pomocą 2 śrub imbusowych M2x8 wkręconych od dołu.
Aby zakończyć, możesz przykleić kawałek filcu do podstawy, aby w razie potrzeby zatrzymać poślizg.
Krok 12: Instrukcja konfiguracji i obsługi
Gdy wszystko jest gotowe i oprogramowanie wgrane, podłącz trochę zasilania do usb, a dioda GIANT powinna się włączyć, a dioda LED zmieni kolor na CZERWONY, a następnie zmieni kolor na żółty. To pokazuje, że jest wyłączony i czeka na konfigurację Wi-Fi. Za pomocą telefonu lub podobnego poszukaj sieci Wi-Fi GIANT LED i połącz się, a otrzymasz ekran Menedżera WiFi. Przeskanuje twój obszar lokalny i po prostu wpiszesz dane Wi-Fi, ESP uruchomi się ponownie i będziesz teraz online z zielonym światłem. W tym momencie połączy się również z IO i zapalą się lampki ostrzegawcze, ponieważ nie widział jeszcze żadnych poprzednich komunikatów. Naciśnij przycisk kilka razy, a dioda GIANT LED jest gotowa na nadejście aktualizacji.
W tym momencie możesz przejść do pulpitu nawigacyjnego Adafruit IO i dodać trochę danych do każdego kanału i zobaczyć, jak światła przechodzą w tryb alertu.
Baw się dobrze !
Krok 13: Co jeszcze może zrobić Giant LED?
Kiedy już masz podstawy takiego projektu, a dzięki IFTTT możesz go używać do wielu rzeczy. Alert skrzynki odbiorczej Gmaila jest jednym łatwym, a ponieważ Adafruit współpracuje również z Webhookami, inne programy również mogą wysyłać do niego dane. Mam w tej chwili skonfigurowaną jedną, aby śledzić niektóre przesyłane dane Big Query w ramach projektu roboczego.
Również za pomocą przycisku można go używać do sygnalizowania innych diod GIANT LED, można je mieć w różnych domach i używać go jako zdalnego wskaźnika, aby druga strona nacisnęła przycisk, aby anulować światło.
Oto przydatny link dotyczący metody przesyłania danych do kanału przez webhooka. W tym przypadku używa apletu IFTTT, ale równie łatwo można użyć metody CURL z pythonem.
io.adafruit.com/blog/notebook/2018/11/26/f…
W rzeczywistości możliwe jest nawet zamontowanie OLED 128x32 w podstawie, aby uzupełnić diodę LED o pewną treść tekstową, a obecnie pracuję nad tym i zaktualizuję STL i dostarczę kod, aby wykorzystać IO również z tym.
Zalecana:
Licznik kroków - Micro:Bit: 12 kroków (ze zdjęciami)
Licznik kroków - Micro:Bit: Ten projekt będzie licznikiem kroków. Do pomiaru kroków użyjemy czujnika przyspieszenia wbudowanego w Micro:Bit. Za każdym razem, gdy Micro:Bit się trzęsie, dodamy 2 do licznika i wyświetlimy go na ekranie
GIANT RC SAMOLOT: 9 kroków (ze zdjęciami)
GIANT RC SAMOLOT: Cześć wszystkim, jestem Ensar. Dziś napiszę o moim najdłuższym projekcie. Zrobiłem to jesienią 2018 roku i dziś mam energię do powiedzenia. Podam Ci pliki DXF do grawerowania laserowego oraz kody Arduino. Proszę zasubskrybuj mój kanał YouTube. mówię
Sterowana przez Alexę dynia Adam Savage: 5 kroków (ze zdjęciami)
Adam Savage Pumpkin kontrolowany przez Alexę: Wszystkie światła w moim domu są inteligentne, więc przyzwyczaiłem się do krzyczenia na nie, żeby się włączały i wyłączały, ale kończy się to, że wyglądam głupio, kiedy krzyczę na światło, które nie jest . I wyglądam szczególnie głupio, kiedy krzyczę na świece. Normalnie to nie jest zbyt
Giant Retro Gamepad: 11 kroków (ze zdjęciami)
Gigantyczny retro gamepad: Postanowiliśmy więc stworzyć gigantycznego, działającego gamepada… ¯\_(ツ)_/¯Podstawowym pomysłem było wykorzystanie kawałka drewna i dodanie niedrogiej elektroniki, aby był funkcjonalny, przy jednoczesnym utrzymaniu niskich kosztów ogólnych . Miałem już większość materiałów leżących wokół m
GIANT Pumpktris: 8 kroków (ze zdjęciami)
GIANT Pumpktris: W zeszłym roku na Halloween HaHaBird – znany również jako Nathan Pryor, oświetlił społeczność Instructables swoim Pumpktrisem. To był jeden z najfajniejszych podręczników, jakie kiedykolwiek opublikowano. Teraz, gdy tutaj w Instructables jesteśmy sąsiadami ze wspaniałymi, wspaniałymi