I discovered the WLED Project two weeks ago and I have been on a mission to get WLED working with CheerLights.
I was really taken aback by how awesome WLED is for creating interactive LED light displays. WLED is an open-source project created by Aircookie and hosted on GitHub. It’s active with over 9,700 stars. They have thought of everything. I looked over the release notes and the project keeps growing, adding support for more devices, and solving the hard parts of building light displays. WLED lets you get to the fun!
I took out an ESP32 board and connected it to my PC, opened install.wled.me in Chrome, clicked Install, selected the right COM port, and waited for a minute. When WLED finished installing, I entered my Wi-Fi credentials and opened up its control interface. I hooked up a set of WS2812B LED strip lights on GPIO2 (IO16). On the control interface, I clicked around, changed the color wheel, and then found the effects tab. Oh, my. I spent an hour trying out the effects. I wasn’t writing any code. I wasn’t constantly recompiling my project. I was just having fun creating animations.
Now, to make WLED-connected lights work with CheerLights… What I want is for WLED to get the latest color from the CheerLights MQTT server and set the color of the light display accordingly. This is pretty easy with a small config change.
- Click Config, and then Sync Interfaces.
- Under the MQTT settings, enter “mqtt.cheerlights.com” for the Broker.
- Add “wled” as the Device Topic
- Leave the default value for the Client ID.
- Click Save.
Give your device a power cycle and the device will subscribe to the CheerLights MQTT broker. When the color changes, the WLED-connected lights will change to match in real time!
Thanks to Andy Stanford-Clark and Christopher Stapels for some weekend and evening hacking and testing.