Byg en WLED controller med NodeMCU
Kom godt i gang med styring af dine digitale Pixels med WLED og NodeMCU!
Indhold
- Introduktion
- Elektriske forbindelser på Pixels
- Opbygning af Logisk Level Konverter
- Kredsløb
- Software
Introduktion
WLED er en færdig firmware du kan ligge på en ESP8266 eller ESP32 udviklingskort, og på en nem måde styre Pixel lyskæder/bånd.
Udover nem styring via webbrowser og iOS/Android app, kan WLED også nemt kobles til hjemme automations software som eksempelvis domoticz og Home-Assistant, eller kobles op til en E1.31/DMX styring som eksempelvis xLights.
I denne guide viser jeg hvordan du kan koble LED Pixel bånd og kæder til en NodeMCU, uanset hvilken IC det er baseret på.
Du skal bruge følgende:
Hvis du ikke har det i forvejen, skal du også bruge en loddekolbe, loddetin, skævbider, han/hun dupont ledninger og almindelig jumper-ledning.
Sidst men ikke mindst, et pixel bånd eller lyskæde, samt eventuelt JST-SM kabel.
Elektriske forbindelser på Pixels
Uanset hvilken Pixel IC du skal kommunikere med, er der grundlæggende én forskel. Nogle har kun én data indgang, andre kræver også et clock signal.
Når du skal forbinde dine pixels er det vigtigt du har strøm nok. Det er muligt at drive nogle pixels via dit udviklingskort hvis det er 5V-versioner, men da de enkelte pixels kan tage en del strøm, skal du være OBS på ikke at gå over hvad udviklingskortet kan klare (kobberbanerne og spændingskredsløbet har en begrænsning).
Hvis dine Pixels ikke er 5V, eller hvis du har mange, skal du have fundet en ekstern strømforsyning der passer til opgaven. Gå efter en konstant-spændings version!
Du kan læse mere om dimensionering af strømforsyning for LED-bånd her (den er skrevet til SK9822 bånd, men strømforsyningsdelen gælder alle bånd/kæder).
Når du skal forbinde dine pixels er det vigtigt at kigge på skriften på båndet eller printet på den første pixel hvis det er en lyskæde. Stol ikke på ledningsfarverne! Det du kigger efter er +5V, GND, Data og eventuelt clock, samt en pil eller tekst der indikerer hvilken retning data skal sendes i. Sender du data ind i den forkerte ende, virker dine pixels ikke.
Nu hvor du har styr på hvordan pixels skal forbindes, er vi klar til at gå videre.
Opbygning af Logisk Level Konverter
NodeMCU er baseret på en ESP8266, og logikken er derfor 3,3V. De fleste pixel IC'er kommunikerer dog ved 5V, så vi skal have boostet signalet så vores pixels forstår det.
Du kan købe færdige logisk level konvertere som denne eller denne, eller du kan bygge den selv. Det sidste er selvfølgelig det sjoveste :-)
En god kreds til formålet er 74HCT125 eller 74HCT245, som er i stand til at håndtere hastigheden som de nyere SK9822 bånd kommunikerer ved. Kredsen er derfor en god all-round kreds.
De 2 kredse skal forbindes lidt forskelligt, så vær OBS på det!
For 74HCT245 skal du forbinde:
Pin 1 -> 5V
Pin 2 -> NodeMCU D4 (GPIO2)
Pin 10 -> GND
Pin 20 -> 5V
Pin 19 -> GND
Pin 18 -> Pixel bånd Data
Kredsløb
Nu er det tid til at samle det hele på et protoboard. Hvis du ikke kender protoboards, fungerer de på samme måde som et breadboard/fumlebræt. Hver række af 5 loddeøer er forbundet.
Nedenfor kan de se hvordan jeg har forbundet kompnenterne. 74HCT245 logik-kredsen har vi berørt forbindelserne af ovenfor. Kondensatoren ude til venstre skal blot sidde mellem +5V og GND, og fungerer som en sikkerhed, hvis der skulle opstå peaks på spændingen.
Jeg har loddet 8 ledninger fast på printet. 4 ledninger går til NodeMCU'en:
5V -> VIN på NodeMCU
GND -> GND på NodeMCU
Pin 2 -> D4 (GPIO2) på NodeMCU
Den sidste ledning går fra NodeMCU GPIO0 til en tom række på protoboardet. Den skal direkte videre til vores pixels clock indgang, hvis de har sådan en.
De sidste 4 ledninger er vores JST-SM kabel, så vi nemt kan forbinde vores pixels. Har du et bånd/kæde uden clock-signal, skal du bruge et 3-pin JST-SM kabel!
På dine pixels er der separate forsyningsledninger - det er her du sætter din strømforsyning til.
Monter eventuelt printene i en montageboks:
Software
Så er vi kommet til sidste step - installering af WLED.
Vi ligger koden over med et stykke software der hedder ESPHome-Flasher, som du finder ovre på Github.
WLED finder du også på Github. Den fil du leder efter er WLED_***_ESP8266.bin for WS2812B bånd, WLED_***_ESP8266_WS2801.bin for WS2801 pixel-kæder, og WLED_***_ESP8266_APA102.bin for APA102 og SK9822 bånd.
Når softwaren er lagt over, begynder dine pixels at lyse. Find WiFi netværket "WLED-AP" og tilslut. Koden er wled1234. Nu åbner en side op. Gå ind under "WiFi Settings" og skriv dit netværksnavn og password. Efter lidt tid skulle WLED gerne være forbundet til dit netværk.
Nu er du klar! Hop ind på modulets IP-adresse eller find app'en WLED på din telefon, og begynd at lave flotte lyseffekter.