LED trakovi, Prispevki ESP

WLED: vodič za krmiljenje LED trakov z ESP32

Shema delovanja WLED: ESP32 krmilnik, napajalnik 5 V in naslovljiv LED trak WS2812B

WLED je odprtokodni firmware, ki ESP32 spremeni v Wi-Fi krmilnik za naslovljive LED trakove. Namestiš ga v dveh minutah neposredno iz brskalnika, nato pa trak upravljaš prek spletnega vmesnika ali mobilne aplikacije, brez ene same vrstice kode. Ta vodič gre skozi celotno postavitev: izbiro ploščice, ožičenje, izračun napajanja, prve nastavitve in napake, ki jih naredi skoraj vsak.

Kaj je WLED

WLED je leta 2018 napisal Christian Schwinne, znan pod vzdevkom Aircoookie, in od takrat je postal najbolj razširjen način za krmiljenje naslovljivih LED trakov. Firmware na mikrokrmilniku teče kot majhen spletni strežnik. Ko se ESP poveže v tvoje omrežje, do njega dostopaš prek brskalnika ali aplikacije in trak upravljaš od koder koli v hiši.

Kaj vse zna: več kot 100 svetlobnih učinkov, okoli 50 osnovnih barvnih palet, razdelitev traku na neodvisne segmente, shranjevanje do 250 prednastavitev, časovnike, nočno lučko in posodabljanje firmwarea prek omrežja. Z dodanim digitalnim mikrofonom se luči odzivajo na glasbo v realnem času. Povezljivost pokriva Home Assistant, Amazon Alexa, MQTT in protokol E1.31 za sinhronizacijo več naprav.

Ena razjasnitev, ker je iskalni izraz dvoumen: če si WLED naletel v zvezi s televizorji, gre za nekaj povsem drugega. Tam kratica pomeni white LED, torej LCD zaslon z belo LED osvetlitvijo ozadja, in nima nobene zveze s tem člankom.

Katere LED trakove WLED podpira

WLED loči dve družini trakov. Digitalni naslovljivi trakovi imajo pri vsaki diodi svoj krmilni čip, zato lahko vsako diodo prižgeš v svoji barvi. To je pogoj za mavrične prelive, potujoče luči in vizualizacijo zvoka. Analogni trakovi imajo vse diode vezane vzporedno, zato cel trak vedno sveti v eni barvi.

ČipNapetostPodatkovne žicePosebnost
WS2812B (NeoPixel)5 V1De facto standard, največ izbire
SK68125 V1Dodaten beli kanal (RGBW), čistejša bela
WS281112 V1En čip krmili skupino treh diod
WS28015 V2 (podatki + ura)Manj občutljiv na časovne zahteve signala
APA102 (DotStar)5 V2 (SPI)Zelo visoka hitrost osveževanja

Za začetek je najbolj smiselna izbira WS2812B trak. Deluje na 5 V, potrebuje eno samo podatkovno žico in ima daleč največ podpore v skupnosti. Če te zanimajo podrobnosti o tem čipu, jih pokriva ločen članek o WS2812B LED traku.

Analogni trakovi za delovanje z WLED potrebujejo MOSFET tranzistor na vsak barvni kanal. WLED jih podpira v enobarvni, CCT, RGB, RGBW in RGBCCT izvedbi, a učinkov razen spreminjanja barve in svetlosti celotnega traku tu ni.

Vrste LED trakov za WLED: primerjava čipov WS2812B, SK6812, WS2811, WS2801 in APA102
WS2812B je privzeta izbira, SK6812 doda beli kanal, WS2811 pa teče na 12 V.

ESP32 ali ESP8266

WLED je nastal na ESP8266, danes pa je ta čip v projektu razglašen za konec življenjske dobe. Podpora še obstaja, a se počasi zaključuje in za nove postavitve se odsvetuje.

Razlika v zmogljivosti je velika. ESP8266 izračuna približno 15.000 slikovnih pik na sekundo, podpira največ tri LED izhode in zanesljivo krmiljenje deluje le na nekaterih pinih. ESP32 ima dve jedri, izračuna med 65.000 in 85.000 pik na sekundo in podpira do deset neodvisnih izhodov. Če uporabljaš zvočno odzivne učinke, se to število zmanjša na devet, ker avdio gonilnik zasede eno strojno enoto.

Pri ESP32 lahko za podatkovni izhod uporabiš skoraj kateri koli prosti GPIO. Izjema so pini od 34 do 39, ki so samo vhodni in signala ne morejo oddajati.

Najbolj preizkušena izbira ostaja klasični ESP32-WROOM-32. Novejše različice ESP32-C3, ESP32-S2 in ESP32-S3 so podprte eksperimentalno, kar pomeni, da posamezne funkcije še niso povsem stabilne. Ploščice najdeš v kategoriji ESP32 krmilniki.

Namestitev WLED prek brskalnika

Najhitrejša pot je spletni namestitveni program, ki firmware zapiše neposredno iz brskalnika. Potrebuješ namizno različico brskalnika na osnovi Chromiuma, torej Chrome ali Edge, in USB kabel, ki prenaša podatke. Marsikateri poceni kabel je namenjen samo polnjenju in ploščice sploh ne bo videl.

Postopek je kratek. Ploščico priklopiš na računalnik in počakaš, da operacijski sistem namesti gonilnik za COM vrata. Odpreš install.wled.me, klikneš Connect in s seznama izbereš prava vrata. Potrdiš namestitev, pri čemer te program opozori, da bo obstoječa vsebina na ploščici izbrisana. Klikneš Install in počakaš približno dve minuti.

Po namestitvi se ploščica sama znova zažene. Podatke za domače Wi-Fi omrežje lahko vneseš že v namestitvenem programu. Če tega ne storiš, WLED ustvari lastno dostopno točko z imenom WLED-AP in geslom wled1234. Nanjo se povežeš s telefonom in vmesnik odpreš na naslovu http://4.3.2.1.

Ena omejitev: namestitveni program ne dela s ploščicami, ki imajo manj kot 4 MB flash pomnilnika, na primer ESP-01. Vse ostalo pokriva uradna dokumentacija WLED.

Ožičenje ESP32 in LED traku

Med ESP32 in trakom tečejo tri povezave: podatki, napajanje in masa. Podatkovno žico priklopiš na GPIO pin, ki ga nato vpišeš v nastavitve. Privzeta vrednost v WLED je GPIO16, dobro delujejo tudi pini 1 do 4.

Med GPIO in podatkovni vhod prve diode sodi serijski upor. Pogosto priporočena vrednost je 68 Ω, v praksi se uporabljajo vrednosti med 68 in 470 Ω. Naloga upora je dušenje odbojev na liniji in zaščita prvega piksla pred tokovnim sunkom ob vklopu.

Med +5 V in maso, čim bližje traku, sodi elektrolitski kondenzator okoli 1000 µF. Tega WLED dokumentacija ne omenja izrecno, gre za splošno priporočilo proizvajalcev naslovljivih trakov, ki blaži nihanje napetosti ob vklopu.

Skupna masa ni izbirna. Masa napajalnika, masa ESP32 in masa traku morajo biti povezane. Brez tega podatkovni signal nima referenčne točke in trak utripa ali se sploh ne odzove.

Ostane še vprašanje nivoja signala. ESP32 pošilja podatke pri 3,3 V, trakovi na 5 V pa pričakujejo 5 V logiko. Trak to pogosto še sprejme, a je na robu specifikacije. Za trajne namestitve, daljše podatkovne linije in 12 V ali 24 V trakove uporabi pretvornik nivoja, na primer SN74HCT125N. Pri kratki povezavi na mizi in testiranju ga lahko izpustiš.

Zadnje pravilo je najpomembnejše: daljšega traku nikoli ne napajaj prek 5 V pina na ESP32. Ploščica takega toka ne zmore.

Napajanje in izračun toka

Ena WS2812B dioda pri polni beli svetlobi, torej ko so vsi trije kanali na maksimumu, porabi približno 60 mA pri 5 V. To številko potrebuješ za vsak izračun.

Primer izračuna

Vzemimo 5-metrski trak s 60 diodami na meter. Skupaj je to 300 diod. Tok znaša 300 × 0,06 A = 18 A, moč pa 5 V × 18 A = 90 W. Napajalnik torej izberi tako, da zmore vsaj 18 A, in dodaj nekaj rezerve, da ne bo delal na meji.

Realno bo poraba nižja, ker redko poganjaš cel trak v polni beli. Napajalnik pa se dimenzionira po najslabšem primeru, ne po povprečju. Napajalnike najdeš v kategoriji napajanje.

Vbrizgavanje napajanja

Bakrene poti na traku imajo upor. Pri dolgih trakovih napetost proti koncu pade, zato so zadnje diode temnejše, bela pa postane oranžkasta ali rdečkasta. Rešitev je vbrizgavanje napajanja: +5 V in maso pripelješ neposredno iz napajalnika še na konec traku, pri zelo dolgih pa tudi na sredino.

Če za ESP32 in za trak uporabljaš ločena napajalnika, poveži njuni masi, plusov pa nikoli ne. Dva vzporedno vezana plusa se zaradi majhne razlike v napetosti med seboj obremenjujeta.

\n

Pri 18 A si na območju, kjer tanka žica ni več varna. Uporabi ustrezen presek in vgradi varovalko. Za natančnejše načrtovanje toka, preseka žic in varovalk obstaja WLED Power Calculator. Za risanje in preverjanje sheme pa projekt ponuja WLED Wiring Designer.

Izračun napajanja za WLED: 300 diod WS2812B porabi 18 A oziroma 90 W
Ena WS2812B dioda pri polni beli porabi 60 mA. Pri 300 diodah je to 18 A oziroma 90 W.

Prve nastavitve v vmesniku WLED

Ko se WLED prvič zažene, sveti le prvih 30 diod v oranžni barvi. To ni napaka, to je privzeta konfiguracija. Vse se uredi v meniju Config, razdelek LED Preferences.

Vnesti moraš štiri stvari. LED count je točno število diod na traku, po katerem si WLED razdeli pomnilnik. LED type je čip, ki ga trak uporablja, torej WS2812B, SK6812 RGBW ali WS2811. LED GPIO pin je številka pina, na katerega si fizično priklopil podatkovno žico. Color Order določa vrstni red barvnih kanalov.

Pri vrstnem redu barv velja, da WS2812B običajno uporablja GRB, starejši WS2811 pogosto RGB, trakovi z belim kanalom pa GRBW. Če izbereš rdečo in zasveti zelena, si našel napačno nastavitev. Ena past izstopa: trak WS2814 je treba nastaviti kot SK6812, ne kot WS281x.

Zadnje polje je Maximum Current, ki poganja samodejni omejevalnik svetlosti. WLED sproti ocenjuje porabo glede na trenutno barvo in svetlost vseh diod, in ko izračun preseže vpisano mejo, neopazno zniža splošno svetlost. Privzeta vrednost je 850 mA, kar je za vsak daljši trak veliko premalo. Vpiši vrednost nekoliko pod nazivom napajalnika, na primer 4000 mA za 5 A napajalnik, da ostane rezerva za samo ploščico. Pri zelo velikih postavitvah z močnim napajalnikom in izvedenim vbrizgavanjem lahko omejevalnik izklopiš in s tem pridobiš nekaj hitrosti osveževanja. Na koncu klikni Save.

Segmenti, učinki in palete

Segment je zaokrožen del traku, ki ima svojo barvo, paleto in učinek. Določiš ga z začetno in končno številko diode. En del traku lahko tako mirno sveti, drugi pa utripa v ritmu glasbe.

Od različice 0.12.0 WLED podpira več fizičnih izhodov hkrati in vse priklopljene trakove obravnava kot en dolg niz. Če imaš dva trakova po 50 diod, jih vidi kot niz 100 diod: segment 1 zajema diode 0 do 50, segment 2 pa 50 do 100. Vsak izhod ima lahko svoj tip diod, tako da na enem pinu teče WS2812B, na drugem pa SK6812.

Koliko diod zmore en pin, je vprašanje hitrosti osveževanja. Do 512 diod na pin deluje odlično, do 800 zelo dobro, pri 1000 diodah dobiš približno 70 sličic na sekundo. Pri 2000 diodah pade na okoli 35, pri 4000 pa na približno 18. Dobro razmerje med stabilnostjo in zmogljivostjo dajejo štirje izhodi.

Učinkov je več kot 100 in temeljijo na knjižnicah WS2812FX in FastLED. Palet je bilo osnovno okoli 50, z različico 16.0 pa je prišlo več kot 800 dodatnih iz zbirke cpt-city in urejevalnik za lastne barvne kombinacije. Za začetek so uporabni Rainbow za preverjanje vseh barv, Twinkle za mehko svetlikanje in Solid za navadno osvetlitev. Med zvočno odzivnimi so VU Meter, Spectrum Analyzer in Pulse. Vse skupaj shraniš v prednastavitve, ki jih je lahko do 250.

Povezava s Home Assistant

Home Assistant ima za WLED nativno integracijo in napravo v lokalnem omrežju običajno najde sam. Če je ne, jo dodaš ročno prek Nastavitve, Naprave in storitve, Dodaj integracijo, kjer vpišeš IP naslov ali ime gostitelja. Pogoj je WLED različice 0.14.0 ali novejše. Komunikacija teče prek WebSocket povezave, zato se stanje posodablja takoj.

Integracija ustvari precej entitet. Vsak segment postane svoja luč, poleg tega dobiš glavno luč za vklop in svetlost celotne naprave. Izbirniki poganjajo shranjene prednastavitve, sezname predvajanja in palete. Prek številskih entitet nastavljaš intenzivnost in hitrost učinka. Senzorji javljajo moč Wi-Fi signala, IP naslov, število diod, čas delovanja, porabo toka in prosti pomnilnik. Stikala pokrivajo nočno lučko, sinhronizacijo, zamrznitev in obratno smer učinka. Na voljo je še gumb za ponovni zagon in obvestilo, ko izide nova različica firmwarea.

Nekaj omejitev vseeno je. Integracija ne podpira neodvisnega krmiljenja barvnih kanalov pri mešanih RGB in CCT trakovih. Segmenti se pojavijo pod zaporednimi številkami, ne pod imeni, ki si jih dal v vmesniku WLED. Nastaviti je mogoče le primarno barvo segmenta, za sekundarne pa je bolje uporabiti prednastavitve.

Pogoste napake pri postavitvi WLED

Trak je priklopljen z napačne strani. Naslovljivi trakovi imajo smer, ki je na traku označena z majhnimi puščicami. Podatkovno žico moraš priklopiti na tisti konec, kjer se puščice začnejo. To je najpogostejša napaka sploh in trak se ob njej sploh ne odzove.

\n

ESP se nenehno resetira. Skoraj vedno gre za napajanje. Če trak visi na 5 V pinu ploščice, napetost ob prižigu pade in ESP se ponovno zažene. Uporabi zunanji napajalnik in nastavi omejevalnik svetlosti.

Trak utripa. Dva krivca. Prvi je 3,3 V signal, ki je za 5 V trak na robu specifikacije, kar rešiš s pretvornikom nivoja. Drugi je nepovezana masa med napajalnikom, ploščico in trakom. Obstaja še tretji, ki ga malokdo preveri: cenen napajalnik s slabim filtriranjem. Naslovljivi trakovi potrebujejo mirno napetost, in če napajalnik brni ali pišči, je to pogosto znak, da je šum na izhodu prevelik.

Konec traku je zatemnjen ali oranžkast. Padec napetosti po dolžini. Reši ga vbrizgavanje napajanja na konec in po potrebi na sredino traku.

Barve so zamenjane. Namesto rdeče sveti zelena, ker se vrstni red kanalov ne ujema. Popravi Color Order v LED Preferences.

Prva dioda sveti belo ali se trak ne odziva. Bodisi tokovni sunek na podatkovni liniji bodisi napačna številka pina. Vstavi upor med 68 in 470 Ω in preveri, ali se GPIO v nastavitvah ujema s fizično povezavo.

Diode ob spremembi barve na kratko utripnejo in ugasnejo. Omejevalnik toka je še vedno na privzetih 850 mA. Vpiši pravo vrednost glede na napajalnik ali ga izklopi.

\n

Sveti le prvih 30 diod v oranžni. To ni okvara, to je tovarniška nastavitev. Vpiši pravo število diod v LED count.

Pogoste napake pri postavitvi WLED in njihove rešitve
Večina težav z WLED izvira iz napajanja in mase, ne iz same programske opreme.

Gotov krmilnik ali lastna postavitev

Lastna postavitev na razvojni ploščici je najcenejša pot in ti pusti popolno svobodo. Firmware namestiš v nekaj minutah, komponente dodajaš po svoje. Cena tega je, da moraš sam poskrbeti za pretvornik nivoja, varovalko, izračun porabe in nekaj spajkanja.

Gotovi krmilniki, kot so QuinLED Dig-Uno in Dig2go, Athom, Gledopto ali SMLIGHT, pridejo v ohišju s prednameščenim WLED. V njih so že vgrajene varovalke, zaščita pred napačno polariteto in pretvornik nivoja, pogosto pa še mikrofon za zvočno odzivnost in rele za popoln izklop traku. Za to plačaš več kot za golo ploščico.

Odločitev je precej preprosta. Če te elektronika veseli in ti spajkanje ni odveč, vzemi ESP32 in sestavi sam. Če gre za trajno namestitev v stanovanju, kjer hočeš mir in zanesljivost, se gotov krmilnik splača. Oboje najdeš pri krmilnikih za LED trakove.

Pogosta vprašanja o WLED

Ali je WLED brezplačen?

Da. WLED je odprtokodni projekt pod licenco MIT, brez naročnine, brez računa in brez oblaka. Vse teče lokalno na tvoji ploščici, zato deluje tudi, ko internet pade.

Ali WLED potrebuje internet za delovanje?

Ne. Potrebuje samo lokalno Wi-Fi omrežje, da do vmesnika pridš s telefona ali računalnika. Brez omrežja lahko ploščica teče v načinu dostopne točke, prednastavitve in časovniki pa delujejo naprej tudi brez povezave.

Koliko LED diod zmore en ESP32 z WLED?

Na enem pinu do okoli 1000 diod pri približno 70 sličicah na sekundo. Z več izhodi lahko na eno ploščico pripelješ nekaj tisoč diod, a takrat postane napajanje večji problem kot procesor.

Ali lahko WLED nameščam na navaden LED trak?

Za polno funkcionalnost potrebuješ naslovljiv trak, torej WS2812B, SK6812, WS2811 ali podoben čip. Navaden enobarvni ali RGB trak WLED sicer podpira, a le prek MOSFET vezja in brez animacij po posameznih diodah.

Ali WLED deluje z Alexo in Google Home?

Z Amazon Alexo deluje neposredno prek vgrajene emulacije, tako da luči prižigaš z glasom brez dodatnih mostčkov. Za Google Home je pot prek Home Assistant ali drugega posrednika.

Zaključek

Za delujočo postavitev WLED potrebuješ štiri stvari: ESP32 ploščico, naslovljiv LED trak, dovolj močan napajalnik in nekaj minut za nastavitve. Največ težav ne povzroči firmware, ampak napajanje in masa, zato se izplača izračunati tok, vgraditi varovalko in povezati vse mase, preden trak prvič prižgeš.

Če šele začenjaš, vzemi ESP32-WROOM-32, WS2812B trak s 60 diodami na meter in 5 V napajalnik z rezervo. Ko postavitev deluje, jo lahko razširiš na več izhodov, segmente in povezavo s Home Assistant. Več o samih trakovih najdeš v pregledu LED trakov in v vodiču o priklopu LED traku, izbiro krmilnikov pa pokriva članek o upravljanju LED trakov s krmilnikom. Izvorno kodo in izdaje firmwarea gosti projekt WLED na GitHubu.

Sestavljate WLED krmilnik?
V trgovini 3DSVET najdete ESP32 ploščice, WS2812B in SK6812 trakove, napajalnike in gotove krmilnike, vse z dostavo po EU.

Poglejte krmilnike za LED trakove →