ESPHome + ESP32 + LED WS2812B

Witam, wymyśliłem sobie oświetlenie pod szafki nocne w sypialni żeby w nocy nie rozpraszać swojej drugiej połówki zapalającym się światłem jak idę do kibelka. Efekt jest świetny niestety ESP32 po kilku godzina lub kilku włączenia zawiesza się. Nie wiem za bardzo co może być przyczyną może ktoś coś.
Konfiguracja pobrana z FastLED Light — ESPHome
ESP32 nówka. W ESPHome to jest na tę chwilę jedyne urządzenie. Zasilacz 12V 2.5A. Zauważyłem jedynie że przy wyłączaniu ledy przechodzą w inny kolor i mrugają. Na razie to prototyp.

esphome:
  name: ws2812b-test
  platform: ESP32
  board: esp32dev

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:
  password: "pass"

wifi:
  ssid: "SSID"
  password: "PASS"
  
  manual_ip:
    static_ip: 192.168.99.243
    gateway: 192.168.99.1
    subnet: 255.255.255.0

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "ssid"
    password: "pass"

captive_portal:

# Example configuration entry
light:
  - platform: fastled_clockless
    chipset: WS2812B
    pin: GPIO23
    num_leds: 16
    rgb_order: GRB
    name: "FastLED WS2812b Light"

Może to kwestia chwilowego spadku napięcia podczas włączania ledów. ESP32 i ledy są zasilane z tego samego złącza. Spróbuj tuż przy połączeniu z ESP dorzucić równolegle kondensator(y) (100nF+100uF).

1 polubienie

Jak masz to opięte jeśli chodzi o zasilanie, że jeszcze nie spłonęło?

edit: teraz obejrzałem zdjęcie i jednak masz zasilacz 3,3V+5V (MB-102), ale wciąż nie widzę jak to zasilasz, a raczej nie tak jak trzeba (jestem w delegacji więc nie mając przed oczami identycznego sprzętu nie jestem w stanie zgadnąć jak to jest opięte na podstawie tego zdjęcia).

Między GPIO ESPxxx, a wejście pierwszego układu WSxxxx wstaw konwerter poziomów między logikami 3,3V<->5V

@szopen spokojnie nie jestem elektronikiem ale czytać umiem na ESP i LEDy podaję 5v

Ale ESP wymaga zasilania 3,3V - na płytce ESP masz po prostu stabilizator je obniżający (prawdopodobnie AMS1117), dlatego jest potrzebny konwerter poziomów logicznych, bo WSxxxx pracują faktycznie na 5V, a dla ESP to jest napięcie zabójcze.

Można zastosować sztuczkę polegającą na dodaniu jednego układu WS2812B zasilanego napięciem koło 4V (wtedy będzie z niego taki “konwerter poziomów logicznych”) między ESP a resztą WSxxxx.

hmmm

esp
ESP32 WiFi + BT 4.2- platforma z modułem ESP-WROOM-32 zgodny z ESP32-DevKit Botland - Sklep dla robotyków

Płytka jest zasilana 5V ale sam ESP z całą pewnością nie, jeśli lubisz oglądać dym to podepnij 5V na dowolny pin opisany 3,3V.

Albo chociaż obejrzyj co producent zamontował (poszukaj AMS1117 lub jego odpowiednika).

Twój problem polega najprawdopodobniej na tym, że pullup wbudowany w WSxxx jest podpięty do 5V i podciąga GPIO powyżej dopuszczalnego napięcia pracy.

1 polubienie

Pogubiłem się. Więc tak zasilanie ESP mam wpięte do 5V, zasilenie WSxx mam podpięte do 5V, a dane (DI) do GPIO23

Kurde ni mam. Muszę wybrać się na zakupy :slight_smile:

Super, ale zupełnie nie bierzesz pod uwagę faktu, że 5V masz podpięte do wejścia stabilizatora 3,3V, a jego wyjście na którym jest faktyczne 3,3V (a nie 5V) dopiero zasila SoC
Więc jego wyjścia pracują z logiką 3,3V.
(poszukałeś tego stabilizatora na twojej płytce ESP?)

WS2812B jest za to zaprojektowany do pracy z logiką TTL (5V).

1 polubienie

Łopatologiczne ale skuteczne. Czyli konwerter poziomów pomiędzy GPIO a DI w WSxx. :beers:

Nie mogę obiecać, że to pomoże, ale powinno, kondensatory też by się przydały (ale niby kilkanaście WSxxx jeszcze nie ciągnie tyle prądu, aby to mógł być jakiś straszny dramat, przyjmij np. po 30mA na sztukę).

Stabilizator znaleziony

No nic odkładam zabawkę na półkę w poniedziałek zamawiam kondensatory i konwertery.

EDIT:
podłączyłem WSxxx do arduino uno i działa bez problemu. Myślę że konwerter 3.3v do 5v wystarczy. Przeglądałem wujka google i nie widziałem żeby ktoś stosował kondensatory. Zamówiłem już konwertery i kondensatory (kondensatory żeby mieć).
Jeśli chodzi o zasilanie powinien wystarczyć ten zasilacz

ZASILACZ MODUŁOWY 5V 5A 25W MEAN WELL RS-25-5 - Sklep internetowy AGD i RTV - Allegro.pl

dla:
2x WS2812Bx16led
2x HX711 - wzmacniacz belki tensometrycznej
1X esp32 wroom 32

UNO ma output 5V.

Sprawdzone rozwiązanie więc konwerter nie jest konieczny.

1 polubienie
  1. Sprawdź, czy ten “zasilacz” na płytkę prototypowa działa poprawnie - miałem taki i zamiast 5v dawał napięcie z zasilacza (u mnie 12v)
  2. Ten ESP to chyba devkit (?) Jemu na Vin zalecane jest 7-12v natomiast ws wymagają dobrego zasilania 5v
  3. Dla testów zasil ESP z ładowarki do telefonu przez microusb , ws podłącz do Vin (5v) i gnd, a di steruj przez któreś gpio. Pojedyncze diody zadziałają na takim zasilaniu (niekoniecznie na pełnej jasności)
    …ale ja obstawiam że winowajcą jest ten moduł zasilający… Zmierz napięcie czy jest tam 5v.
  1. Według dokumentacji 1 led ws2812b dla każdego z koloru pobiera 20mA, dla “białego” 3x20mA = 60mA. 16 x 60mA daje 960mA (0,96A). Wydajność regulatora AMS1117 5V to maksymalnie 1A. A Przecież ESP32 + jego AMS1117 3.3 również coś konsumują. Rozwiązaniem może być podpięcie ws2812b pod 5V (AMS1117 5), a ESP32 devkitC pod 3.3v (AMS1117 3.3).

  2. WS2812b można sterować poziomem od ~0,7 x napięcie zasilania (stan wysoki) więc 3,3v z ESP32 jest tuż pod granicą stanu wysokiego. Jednak skoro daje się nimi sterować do ok.

Dziękuję wszystkim za lekcję. Zastosuję jednak konwerter poziomów ponieważ posiadam taki ring
Pierścień WS2812B 24 bity Diody LED 5050 - Sklep internetowy AGD i RTV - Allegro.pl
a żeby obniżyć zasilanie musiał bym dodatkowo dołożyć jeszcze jedną diodę WSxx.

Źródło napięcia dla układu również musisz ogarnąć. Jeden regulator 5V jest na granicy wydolności. Na płytce zasilającej masz dwa regulatory napięcia o wydolności prądowej do 1A każdy. Jeden na 5V, drugi na 3.3V. Zasilanie ledów podłącz pod 5V a ESP32 pod 3.3V (oczywiście do pinu 3.3V).

@Mariusz_Kuciński Zasilacz 5V 5A z pewnością wystarczy na 2 takie konstrukcje, to co wymaga zasilania 3,3V załatwia regulatory dostępne na płytkach prototypowych (z angielska podobne ESP zwykle nazywane są devkit, czyli skrót od developer kit - zestaw deweloperski).

Jak widać wyżej @wileu miał czas zajrzeć do jakiejś lepszej noty katalogowej (sprawdzenie parametrów podzespołów to jest generalnie więcej niż dobry zwyczaj przy budowaniu DIY) - taka jaka jest pierwszym trafieniem google niestety nie zawiera tak istotnych danych jak maksymalny pobór prądu:

można to wprawdzie policzyć pośrednio np. z takiej konstrukcji
http://szhtdled.com/Upload/products/20170103214412571.pdf
i potwierdza to wskazane 60mA per układ.

@szopen właśnie też w to zaglądałem i widziałem że nie ma tam podanego poboru. Ja bazowałem na tym poradnikiem WS2812B LED Strip with ESPHome and Home Assistant - YouTube. W poradniku jest tabela z poborem dla WSxx
LED strips - Arkusze Google

@wileu źródło napięcia chcę ogarnąć zasilaczem o którym pisałem wcześniej.