[-]
Szybkie szukanie


Baner sklepu jdtech.pl
Odpowiedz 
 
Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
WLED "dla leniwych" - sterowanie każdą diodą RGB oddzielnie [WiFi, ESP, Android, iOS]
19-01-2020, 06:09 (Ten post był ostatnio modyfikowany: 03-02-2020 06:53 przez szopen.)
Post: #1
WLED "dla leniwych" - sterowanie każdą diodą RGB oddzielnie [WiFi, ESP, Android, iOS]
Właściwie to chciałem zatytułować wątek "WLED dla nie-programistów", ale nie wiem czy to oddaje sedno sprawy Tongue

Póki co to wstępna wersja, Ameryki nie odkrywam, projekt jest dobrze udokumentowany, nawet są jakieś materiały na YT (anglojęzyczne, ale sam projekt taki jest i tego raczej nie przeskoczymy), uzupełnię może o parę linków i trochę grafiki (zdjęcia/SS/QR, większość już wrzuciłem).

Moja inspiracja to projekt lampki nocnej (czy też efektowej) ze słoika Tongue :
https://forbot.pl/forum/topic/16878-lamp...01s-sloik/
postanowiłem zbudować coś podobnego, ale z innym oprogramowaniem (WLED jest w takim zastosowaniu mocno ciekawy - umożliwia integrację z wieloma innymi systemami, w tym np. HA czy Philips Hue, a oprócz tego umożliwia wygodną pracę stand-alone i to zarówno w sieci WiFi jak i nawet bez niej).

Oficjalne rozwinięcie skrótu WLED to "WiFi Lighting Effects Driver"
https://github.com/Aircoookie/WLED

Mając w szufladzie kilka modułów ESP-01 ("no name"?), które raczej poświęcę na zastosowania nie wymagające usypiania modułu - podobno wersje z flashem Puya miewają z tym problemy, tu akurat link opisujący ten problem w przypadku ESP12F, ale ponoć problem jest bardziej rozległy…
https://www.reddit.com/r/esp8266/comment...t_wake_up/

Generalnie miałem w planach nieco ambitniejsze posunięcie związane z kupnem tanich pasków bazujących na układach WS2812B, wspomniałem o tym tam:
http://forum.jdtech.pl/Watek-home-assist...3#pid48313
ale czas mi na to nie pozwala (no i co nie bez znaczenia - nie jestem programistą Tongue a to ma znaczenie, bo… czas który musiałbym poświęcić zdecydowanie byłby dłuższy niż gdybym się czymś takim zajmował na co dzień).

Czemu nie napisałem np. o "diodach ARGB" (gejmingowy skrót od "Adressable RGB" - taka moda nadeszła, by budę blaszaka oświetlić np. na tęczowo), tylko o układach WS2812B? ponieważ w każdej obudowie jest zamknięty kontroler ze specyficznym reclockerem sygnału (tak naprawdę nie jest to typowy reclocker, tylko skutek obróbki danych wynikających ze stosowanego protokołu danych - każdy kontroler "zjada" porcję danych przeznaczoną do wysterowania połączonych z nim diod LED, a resztę odsyła do dalszego łańcucha układów, przy okazji odświeżając prawidłowy przebieg sygnału, czyli załatwiając też taką kwestię przeznaczona dla zwykłego reclockera, jeśli ktoś nie rozumie, to trzeba zajrzeć do dokumentacji, bo nie wiem czy to klarownie opisałem) oraz 3 LEDy w kolorach podstawowych, czyli RGB (czerwony, zielony i niebieski).
Czasem pojawia się też nazwa NeoPixel w odniesieniu do takich układów (potocznie zwanych mocno niepoprawnie LEDami).

Same paski, które kupiłem w "promo" na ALi - trafiłem tylko na takie lutowane w połowie przy zamówieniach w różnym czasie (generalnie są to metrowe odcinki z podlutowanymi złączami z obu stron, takie półprodukty "gotowe" do montażu, w tym wypadku zlutowane z 2 odcinków po 0,5m początkowo podejrzewałem, że to odpady produkcyjne, ale po zgłębieniu tematu wyszło na to, że to są zwykłe łączenia technologiczne - a akurat 0,5m to kompromis między kosztem wytwarzania, a estetyką), ale cena 1$ za metrowy pasek (z małą gęstością, bo zaledwie 30 układów na metr) i tak mnie przekonała - u nas sporo drożej (najtańsze to ~20zł za metrowy odcinek), a tak sprzedawca ma darmową reklamę (Ali dopuszcza takie oferty, mimo braku dostępności towaru, dlatego linka nie będzie, bo zagrywka sprzedającego nie była zbyt uczciwa), ale i tak jestem zadowolony (bo 4zł za 30 układów to tanio, wstępny plan zakładał użycie po 15 LED na lampkę, ale pomysł na ostateczne rozwiązanie dopiero się rodzi w bólach Tongue może wrzucę po 30 skoro paski mam 2, a jeśli będę zadowolony to dokupię o większej gęstości, bo tu mi się chyba robi problem technologiczny natury mechanicznej - jak poupychać tą nadmiarową długość elastycznej płytki drukowanej by upakować układy gęściej).
       



WLED można samodzielnie skompilować, ale tu nie planuję opisu (wprawdzie odgrzebałem starego peceta i buduję sobie na nim "środowisko" do "zabawy we współczesną elektronikę", ale to jeszcze nie ten moment - wszystko jest rozgrzebane, sprzęt ma być głównie cichy, bo chyba będzie pracował na biurku i w miarę możliwości szybki, a trafiłem też na dość poważną przeszkodę - zamówiony w ChRL ssd Netac okazał być się uwalony na starcie i zamiast taniego ssd mam przepychankę ze sprzedawcą w trakcie dispute na ali, a już wcześniej miałem okazję używać takiego ssd pod tą marką i byłby OK do takiego wykorzystania, gdyby działał…), użyłem zamiast do tego swojego też już dośc starawego laptopa, którego używam normalnie do pracy (nie związanej z programowaniem) pracującego pod win7.

Dobra - do konkretu - zdecydowałem się na ultra uproszczone rozwiązanie, czyli wgranie prekompilowanych obrazów zamiast własnej kompilacji (ma to swoje ograniczenia np. nie można zdecydować z jakich wyjść skorzystamy, chyba że jest na tą okazję gotowiec, ale za to całej zabawy związanej z programowaniem jest na 5 minut roboty).

1. Więc potrzeba jakiegoś narzędzia do flashowania ESP, użyłem esphomeflasher
https://github.com/esphome/esphome-flasher/
można pobrać już gotowe skompilowane wersje binarne (są na maka i win x64 oraz ostanie wydanie 32-bitowe x86)
https://github.com/esphome/esphome-flasher/releases

2. W przypadku modułów nie wyposażonych w taki gadżet już na płytce (np. NodeMCU mają już wbudowany) potrzebny jakiś konwerter USB-port szeregowy UART/RS232 pracujący z poziomami napięć wyjściowych typowymi dla logiki 3,3V z działającymi sterownikami w systemie, którego używamy, do ESP używałem różnych od najprostszego CP2102 (środkowy na fotce, bez żadnych możliwości wyboru) po bardziej rozbudowanie na FT232RL (górny 3,3V i 5V czyli ogarnia większość zastosowań, dolny "super wypas" obsługuje nieco bardziej przyszłościowo 1,8V, 2,5V, 3,3V i 5V, jeśli go nie zjaram to wystarczy chyba do końca życia Tongue)

   

3a. No i niemal na koniec potrzebny gotowy firmware dla ESP
https://github.com/Aircoookie/WLED/releases

3b. Do pełni szczęścia jeszcze przyda się apka na smarfona (przy jednym sterowniku tak naprawdę nie jest potrzebna, choć poprawia wygodę, można po prostu sterować z poziomu przeglądarki)
Android >=5.0
https://play.google.com/store/apps/detai...ookie.WLED
iOS >=11.0
https://apps.apple.com/us/app/wled/id1475695033
Screenshot nie prezentuje wszystkich możliwości (niektóre obszary - palety i efekty są dodatkowo scrollowane, czego na automatycznym zrzucie ekranu się nie da pokazać)
   

3c. Tu jest miejsce gdzie wspomnę co i jak mi wyszło lub nie Tongue

- na dobry początek - jeśli macie moduł ESP-01 szczególnie w wersji 1MB Puya, to możecie odpuścić sobie v0.9.0-b1 (żaden z gotowców nie działa jak należy, ale może to wina tych moich "oszukanych" ESP01 z flashem Puya)

- wstępnie użyłem wersji 0.8.6 (zależało mi na tych nowych ficzerach związanych z integracją z HA), u mnie na tych ESP-01 działa jedna z dedykowanych wersji dla ESP01 edit: działa, ale jest jedno "ale"… działa do pierwszego restartu - czyli dane nie zapisują się we flash (niestety tak wygląda to w każdym innym skompilowanym obrazie 0.8.6
oraz prawdopodobnie wersja (z użytym LwIP1.4 bodajże)
https://github.com/Aircoookie/WLED/relea..._lwip1.bin

co to jest LwIP (lightweight IP):
https://en.wikipedia.org/wiki/LwIP
jestem dopiero w trakcie testów, więc to jeszcze nie są ostatecznie potwierdzone informacje

- cofam się z wersją do 0.8.5 (ta jest oznaczona jako stabilna), programowe restarty przechodzą wstępnie OK (w sumie nie sprawdziłem tego na tych nowszych wersjach, które startowały…)
ale zaczynam podejrzewać, że muszę zmodyfikować "pająka" sprzęt nie startuje z podłączonym "paskiem LED"
(czyżby rozwiązanie "na lenia" nie działało? - "sprytnie" pominąłem konwerter poziomów, ale to chyba nie było szczególnie rozsądne posunięcie, wejścia wymagające podciągnięcia poziomu do zasilania też na bezczelnego podpiąłem do zasilania, muszę przygotować układ "zgodnie z prawidłami sztuki" i wyposażyć go w sensowne zasilanie 3,3V dla ESP i 5V dla paska, możliwe że tu pies pogrzebany - do pająka tymczasowo podpiąłem 2 konwertery UART w celu podania tych napięć Big Grin)
jeśli to się nie uda, to pewnie poszukam rozwiązania w sieci - nie wierzę, że ktoś już nie trafił na takie problemy

- jak ogarnąć konwersję poziomów sygnałów - ESP pracuje z poziomami 3,3V a układy WS28xx wymagają zwykłych poziomów TTL (5V)
(w przygotowaniu, możliwych metod jest kilka, muszę odszukać linki z archiwum)

a) może to strzelanie z armaty do muchy Big Grin ale sam użyłem 8-kanałowego i dwukierunkowego TXS0108 i przynajmniej póki co z wersją 0.8.5 WLED to działa wystarczająco stabilnie (muszę jeszcze dopracować zasilanie, aby przy każdym podłączeniu idealnie startowało, bo w większości wypadków stany nieustalone zapalają pierwszego "LEDa", a układ TXS0108 me wejście OE, które można wysterować z lekkim opóźnieniem, na moje oko to powinno pomóc)
http://www.ti.com/lit/ds/symlink/txs0108e.pdf
użyłem właśnie podobnej płytki jak w tym artykule (pochodzącej jednak z ChRL, bo w PL cena >40zł zdecydowanie nie pasuje do mojego zastosowania), całkiem ładny opis jak się z tego korzysta (choć w innym zastosowaniu):
https://www.artekit.eu/using-logic-level-converters/

b) są też gotowce bazujące na tranzystorach (w polskich sklepach wystarczy wyszukać frazy "konwerter poziomów logicznych") można zbudować samodzielnie (nie musi być dwukierunkowy - tu dane płyną w jedną stronę), w takim pojekcie:
https://www.tjtom.com/tag/espixelstick/
zostały jednak skrytykowane jako zbyt wolne (mimo wszytko zaryzykuję zakup, jeśli nie do tego to się przyda do czegoś innego - wciąż sporo osprzętu pracuje w 5-woltowej logice TTL)

c) rozwiązanie "na bezczelnego" zużywamy do tego 1 dodatkowy układ WS2812 podpinając jego zasilanie przez diodę prostowniczą (do tego celu w WLED można pominąć pierwszy układ - "LED numer zero"), ESP musi być zasilana napięciem około 3,6V (najwyższe z dopuszczalnych), ponieważ moje moduły ESP01 z układami Puya podobno słabo znoszą podwyższone napięcie zasilania pozostanę przy typowym 3,3V
http://www.electrobob.com/ws2812-level-translator/

d) rozwiązanie na jeszcze bardziej bezczelnego (jest opisane w powyższym artykule Toma Hopkins'a o espixelstick)
-> brakujące linki



3d. Możliwe niespodzianki:

- chyba oczywiste, fabryczny SSID to WLED-AP ale hasło wled1234 już trudniej zgadnąć

kod QR do automatycznego połączenia smartfona z "fabryczną" siecią WiFi generowaną przez nieskonfigurowany WLED
   


- nie wszystkie wersje mają zaimplementowany captive portal (więc nie zostaniemy w każdym przypadku automatycznie przekierowania do "strony logowania" która służy do wstępnej konfiguracji - podania konfiguracji naszej sieci WiFi)

- wbrew aktualnej dokumentacji nie zawsze "fabryczny" IP to 4.3.2.1 który powinien działać od wersji 0.8.5 w górę
(niestety nie doszukałem się jaki adres był kiedyś, ten u mnie działał w przypadku wersji bez captive portalu):
http://192.168.244.1
oczywiście warto spróbować nawet jeśli nie zostaniemy przekierowani
http://4.3.2.1
ten nowy adres nie jest najszczęśliwiej wybrany, bo taki… przynajmniej teoretycznie istnieje w internecie (akurat ten malutki kawałek przestrzeni IPv4 czyli 4.3.2.0/24 należy do… google Tongue)




Miało być na bis coś zupełnie z innej beczki - sklep na Ali w którym nie kupiłem ani tych "lewych" ESP-01, ani trefnego ssd, za to kupowałem parę razy inne rzeczy, a mają asortyment właśnie do takiego "grzebactwa" i jestem z zakupów u nich na tyle zadowolony, że już miałem wrzucić linka, ale odpuściłem bo po każdym zakupie spamują mi aliekspresową skrzynkę wiadomościami jaki to oni mają wspaniały support i paroma innymi śmieciami, a właśnie mam otwarty spór i już myślałem, że to coś w jego temacie, więc pal ich 6 ;D

Statystyki Folding@home
[Obrazek: sigimage.php?un=szopen&t=247478]
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
19-01-2020, 23:07 (Ten post był ostatnio modyfikowany: 20-01-2020 05:43 przez szopen.)
Post: #2
WLED "dla leniwych" - sterowanie każdą diodą RGB oddzielnie [WiFi, ESP, Android, iOS]
Integracja z HA (Home Assistant) od wersji 0.102 HA odbywa się z użyciem kreatora
https://www.home-assistant.io/blog/2019/...lease-102/
https://www.home-assistant.io/integrations/wled/
wymagany WLED w wersji 0.85 lub nowszej

               

Statystyki Folding@home
[Obrazek: sigimage.php?un=szopen&t=247478]
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
26-08-2020, 15:27 (Ten post był ostatnio modyfikowany: 26-08-2020 15:33 przez szopen.)
Post: #3
WLED "dla leniwych" - sterowanie każdą diodą RGB oddzielnie [WiFi, ESP, Android, iOS]
Wydawało mi się, że o tym gdzieś pisałem, ale nie widzę Tongue
Informacja dość istotna dla posiadaczy słabszych sprzętowo (czytaj: z mało pojemną kostką Flash SPI) modułów ESP
https://github.com/Aircoookie/WLED/releases/tag/v0.10.0
niestety 0.10.x to ostatnia wersja dla posiadaczy "niebieskich ESP-01", czyli wersji 512kB
natomiast "czarne ESP-01" oraz ESP-01s i mnóstwo innych modułów 1MB pozostaną bez OTA (czyli budując na ich bazie konstrukcje trzeba przewidzieć możliwość flashowania po kabelku (w przypadku użycia ESP-01 to dość upierdliwe…)

Generalnie szykuje się sporo poważnych zmian w kolejnych wersjach, więc planując użycie tego projektu trzeba pomyśleć o "mocniejszym" sprzęcie (wśród zalecanych jest np. Wemos D1 mini i Wemos D1 pro).

PS w końcu zbliżam się do finalnej realizacji pomysłu (przez koronę poleciał na półkę - nie było okazji na zdobycie czegoś sensownego na obudowę… a niestety lubię "pomacać" potencjalny materiał) ostatecznie kloszem lamp będą… kuchenne słoiki z Ikei (przypadkiem trafiłem na dziale wyprzedażowym na poekspozycyjne bambusowe wieczka, trafiły oczywiście na obowiązkowe odkażanie, potem dopasowałem do nich słoiki (na szczęście Ikea chociaż częściowo standaryzuje rozmiary), nie wiem czy to nie ostatnia chwila na kupno, bo chyba asortyment się zmienia od sezonu jesiennego…
Wstępnie jeden słoik okleiłem ścinkami matującej folii (ale jeśli udałoby się załatwić normalne matowienie u szklarza w sensownej cenie, to może kiedyś spróbuję w taki sposób).

Statystyki Folding@home
[Obrazek: sigimage.php?un=szopen&t=247478]
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
04-04-2022, 14:12 (Ten post był ostatnio modyfikowany: 04-04-2022 14:42 przez szopen.)
Post: #4
RE: WLED "dla leniwych" - sterowanie każdą diodą RGB oddzielnie [WiFi, ESP, ...
Ostatni update…
Ze względu na brak możliwości dalszych aktualizacji firmware w przypadku modułów ESP-01 i innych z równie małym flashem (a projekt nie stoi w miejscu - wersja 0.13.1 wyszła niecały miesiąc temu) podjąłem ostatecznie decyzję o przeróbce wszystkiego na płytki ESP8266 mające 4MB flasha (w przypadku mojego rozwiązania nie widzę potrzeby używania ESP32), więc "mam na oku" NodeMCU v2/v3 lub Wemos D1 mini (jeszcze nie wybrałem ostatecznie, które użyję, wemos'y bądź ich klony mają idealnie mały rozmiar do upchnięcia w przypadku małej ilości miejsca, a że zdecydowałem się na zintegrowanie zasilaczy z 230V… to tego miejsca nie zostało za wiele).
Od wersji 0.12.0 jest możliwe wysterowanie kilku niezależnych pasków LED z jednej płytki MCU - dla ESP8266 możliwe są 3 niezależne wyjścia (z czego 2 o pełnej funkcjonalności na GPIO1 i GPIO2 oraz jedno o ograniczonej - dedykowane jedynie dla krótkich pasków na GPIO3), dla ESP32 można wykorzystać do 10 wyjść (jakkolwiek więcej niż 4 degradują wydajność).

PS
Od czasu gdy ostatnio wspomniałem o WLED, projekt dorobił się wspaniałej dokumentacji:
https://kno.wled.ge/


PPS
Moduły ESP-01 przestały się nadawać do sensownego wykorzystania w tym projekcie, ale można je wykorzystać wciąż w wielu innych (i nie stracą one możliwości aktualizacji OTA, gdy rozmiar generowanego firmware będzie rozsądnie mały) - te które miałem wykorzystane w WLED zostaną spożytkowane ponownie w ESPHome (m.in. jako dodatkowe płytki wciśnięte do ikeowskich czujników cząstek stałych czyli pyłów PM2.5 - VINDRIKTNING i tu ujawnia się chyba jedyna zaleta ESP-01 - płytki są naprawdę małe, więc dadzą się upchnąć w środku).

Statystyki Folding@home
[Obrazek: sigimage.php?un=szopen&t=247478]
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
Odpowiedz 


Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  DSTIKE WiFi Deauther MiNi szopen 0 1 473 08-04-2021 00:32
Ostatni post: szopen
  Hue Essentials - alternatywna apka dla Ikea Tradfri i Philips Hue [ZLL, Android] szopen 5 4 641 11-01-2021 22:43
Ostatni post: szopen
  Czujnik pyłu zawieszonego, smogu, "smogomierz", ale nie tylko [WiFi, ESP] szopen 6 3 085 03-06-2020 18:42
Ostatni post: szopen
  Najtańsze "gniazdko WiFi". Ekonomista 45 16 741 27-05-2020 00:24
Ostatni post: szopen
  DGM PP-W162 smart-plug z pomiarem energii [WiFi, Tuya, Android, iOS] szopen 5 8 032 14-04-2020 16:27
Ostatni post: szopen