Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.
The most practical way to build smart room lighting with an ESP32 is to pair it with WLED, an addressable LED strip, and a correctly sized low-voltage power supply. You get local phone and browser control, effects, brightness and colour scenes, OTA updates, and optional Home Assistant automation.
This project is best suited to concealed accent lighting around coves, cabinets, shelves, or ceiling perimeters. An RGB strip is not automatically a good replacement for a main room light: for useful everyday white illumination, choose RGBW or tunable-white lighting and install it in an aluminium channel with a diffuser.
What makes ESP32 room lighting smart?
The ESP32 provides Wi-Fi connectivity and runs the lighting firmware. WLED supplies the user interface and lighting features, including colour selection, brightness control, effects, segments, presets, schedules, and OTA firmware updates. It can also accept inputs from switches, motion sensors, light sensors, or other automation hardware.
You can control the system directly from WLED’s local web interface, so Home Assistant is optional rather than mandatory. Home Assistant becomes useful when the lighting must respond to occupancy, sunset, door sensors, scenes, or other devices throughout a building.
#1 Best Overall
- 2.4GHz Dual Mode WiFi + Bluetooth Development Board
- Support LWIP protocol, Freertos
- SupportThree Modes: AP, STA, and AP+STA
- Ultra-Low power consumption, Compatible with Arduino IDE
- ESP32 is a safe, reliable, and scalable to a variety of applications
WLED is designed primarily for addressable LED strips. It does not directly drive an ordinary non-addressable RGB strip from one ESP32 data pin. WLED’s purpose and addressable-strip limitation are described by Espressif’s WLED overview.
Recommended system architecture
Phone, browser, or Home Assistant
│ Wi-Fi
▼
ESP32 running WLED
│ data signal
▼
Addressable LED strip: WS2812B, SK6812, WS2811, etc.
▲
│ low-voltage DC power
Correctly sized power supply
The power supply should feed the LED strip directly. The ESP32 receives suitable regulated power separately or through an appropriate controller circuit. The ESP32 ground, LED-strip ground, and power-supply negative must be connected together.
Do not treat the ESP32 development board as the power source for a room-length strip. A USB cable or board power pin is intended for the controller, not for the strip’s full LED current. The ESP32-DevKitC documentation also warns against supplying the board through more than one documented power path at the same time.
Choose the right kind of LED strip
| Requirement | Suitable approach |
|---|---|
| Colourful accent effects | Addressable RGB strip with WLED |
| Better everyday white light | Addressable RGBW or dedicated white lighting |
| Long room perimeter | 12 V or 24 V strip with planned power injection |
| Simple installation | Prebuilt WLED controller or commercial smart strip |
| Custom sensors and behaviour | ESP32 with custom firmware |
| Whole-home automation | WLED integrated with Home Assistant |
Addressable strips
Common addressable families include WS2812B, WS2811, SK6812, WS2816, APA102, and WS2801. Depending on the strip, each pixel or a small group of LEDs can display a different colour. That enables gradients, moving effects, independent sections, and animations. Espressif documents support for common devices including WS2812, SK6812, WS2811, and WS2816 in its led_strip documentation.
Non-addressable RGB strips
An analogue RGB strip has shared colour channels rather than individually controlled pixels. It normally requires one MOSFET per channel and PWM control. RGBW, CCT, and RGB+CCT strips require their own suitable multi-channel driver arrangement. They cannot simply be connected to one ESP32 data GPIO and configured as a normal WLED pixel strip.
RGB versus RGBW
RGB strips are usually suitable for colourful accent lighting, but their combined red, green, and blue emitters often produce an unattractive or inefficient white. RGBW adds a dedicated white channel and is generally the better choice when the room needs both effects and usable illumination. RGB+CCT can add adjustable warm and cool white, although compatibility and control models are more complicated; Home Assistant notes that some mixed configurations expose only one colour model at a time.
Parts and tools
Minimum parts
- ESP32 development board with USB connectivity.
- Addressable LED strip matched to the intended voltage.
- Regulated DC power supply with sufficient continuous-current capacity.
- USB cable for installation and initial setup.
- Power, ground, and data wiring.
- Inline fuse or fused low-voltage distribution point.
- Connectors or soldering equipment.
Strongly recommended for a permanent installation
- 330–500 Ω series resistor on the data line.
- Approximately 500–1000 µF electrolytic capacitor across the strip’s power input, rated above the strip voltage.
- 3.3 V-to-5 V logic-level shifter, particularly for long data wires or marginal 5 V strips.
- Additional power-injection wiring.
- Rated terminal blocks or lever connectors.
- Strain relief and a nonconductive enclosure.
- Aluminium LED channel with a diffuser.
The resistor and capacitor are common protection and signal-conditioning measures, not universal guarantees. The strip, wiring length, controller, and power arrangement determine what is actually required.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Rank #2
- Dual-Core Performance Up to 240 MHz: Run sensor processing, wireless communication, automation logic and connected-device tasks on a 32-bit dual-core ESP32 platform designed for responsive embedded and IoT projects
- Built-in Wi-Fi and Bluetooth 4.2: Connect to 2.4 GHz Wi-Fi networks or use Bluetooth Classic and BLE for wireless sensors, smart devices, remote controls, home automation and other connected projects
- Flexible Power-Saving Modes: ESP32 power-management features support dynamic clock scaling and low-power operating modes, helping developers reduce energy use in compatible sensing, monitoring and connected-device applications, suitable for battery-powered Internet of Things (IoT) devices.
- USB-C Programming with CP2102: Connect through USB-C for power, sketch uploads and serial monitoring, while GPIO, UART, SPI and I2C interfaces support sensors, displays, motor drivers and other modules (USB-C cable not included)
- Over-the-Air Update Support: Configure OTA functionality through a compatible ESP-32 software framework to update deployed firmware over Wi-Fi without reconnecting the board by USB for every revision
Design the power system before wiring
Match the voltage
Common strip voltages are 5 V, 12 V, and 24 V. A 5 V strip may be convenient for short runs but can require substantial current and suffer voltage drop quickly. Higher-voltage strips generally reduce current for the same power and can be more practical for longer runs, although pixels may be grouped and the strip must be compatible with the chosen controller arrangement.
Never connect a 5 V strip to a 12 V or 24 V supply. The strip, supply, controller output, and any converter must agree.
Calculate current
Use the manufacturer’s actual watt-per-metre or watt-per-pixel specification:
Required watts = strip length × rated watts per metre
Required current = required watts ÷ supply voltage
Include headroom rather than running a supply continuously at its maximum rating. Size for the strip’s specified worst case, including full-white operation, startup behaviour, cable losses, ambient temperature, and any planned expansion. Do not publish a universal “amps per LED” number: density, voltage, RGB/RGBW configuration, and manufacturer design differ substantially.
Free tools Windows power users keep installed
One-click scans. No signup required.
WLED’s maximum-current setting and automatic brightness limiter are useful additional safeguards, but they do not replace correctly sized wiring, a fuse, or an adequate supply. Home Assistant can expose current-limit and estimated-current information when the limiter is configured. See the official WLED integration documentation.
Plan for voltage drop
A strip may work perfectly on a desk and show dim or discoloured pixels around a room. That is usually voltage drop caused by long copper paths and the strip’s own conductive tracks. Use a separate power pair to inject power at suitable points instead of forcing all current through the strip from one end. A 12 V or 24 V design may reduce current, but it still requires calculation and testing.
Wire the ESP32 and strip
Power supply V+ ─────────────── LED strip V+
Power supply GND ───────┬─────── LED strip GND
└─────── ESP32 GND
ESP32 GPIO ── resistor / level shifter ── LED strip DATA IN
- Connect data to the strip’s Data In, not Data Out. Follow the arrows printed on the strip.
- Connect ESP32, strip, and power-supply grounds together.
- Feed the strip directly from the supply rather than through a small development-board trace, USB cable, or 3.3 V pin.
- Use a separate power pair for injection points.
- Fuse the low-voltage output appropriately for the wiring and expected load.
- Keep exposed mains wiring out of the DIY enclosure unless the work is being carried out by someone qualified and in accordance with local requirements.
- Do not connect two independent power supplies to the same strip unless the system has been specifically designed for that arrangement.
WLED’s wiring guidance recommends powering the strip and controller in parallel for typical installations and warns against mixing multiple power supplies on one strip.
Rank #3
- Powerful ESP-32 Board: Unlock the world of Internet of Things (IoT) and advanced electronics with the heart of this kit: the ESP-32 board. It features a powerful dual-core processor, integrated Wi-Fi and Bluetooth 4.2, making it perfect for building connected, smart devices that communicate with your phone or the cloud. It's fully compatible with the Arduino IDE for easy programming.
- Super Starter Kit: This kit contains over 35 different modules and electronic components, including sensors, displays, motors, and input devices. From LEDs and buttons to an OLED screen, servo motor, and keypad, you have everything needed to explore a vast range of projects in one box.
- Step by Step Online Tutorial: Jump right in with our detailed, beginner-friendly tutorial. Access 30+ projects with complete code, clear circuit diagrams, and step-by-step instructions. Learn the fundamentals of electronics, coding, and how to utilize the ESP-32's unique capabilities without any prior experience.
- Hands-on Learning for All Skill Levels: Perfect for students, makers, engineers, and hobbyists. Start with basic circuits and coding, then progress to intermediate and advanced IoT applications. Build practical projects like weather stations, smart home controllers, remote-controlled devices, and interactive gadgets. The skills you learn are the foundation for real-world innovation.
- Quality & Great Support: Elegoo is committed to quality. We provide a clear, detailed tutorial guide, refined code, and a well-organized component kit. All modules are carefully selected for reliability and ease of use. Our dedicated technical support team and active online community are ready to help you succeed in your learning journey.
The ESP32’s 3.3 V data signal may be marginal for some 5 V pixels, especially over long or noisy cable runs. A suitable level shifter is prudent when reliability matters. Keep the data wire short, route it away from noisy wiring, and provide a solid common ground.
Install WLED
- Connect the ESP32 to a computer by USB.
- Open the official WLED web installer in a compatible browser.
- Select the detected ESP32 board and install the firmware.
- Connect the device to Wi-Fi when prompted.
- Open the assigned WLED hostname or IP address.
- Record the address or reserve it in the router for dependable automation.
The WLED getting-started guide recommends ESP32 for new installations. If the board is not detected, try a known-good data USB cable, install the required browser permission, and use the board’s Boot and Reset/EN controls as described by its documentation. Avoid treating one serial command as universal: flashing details vary by board and firmware release.
Configure the strip in WLED
In WLED, set:
- LED chipset or protocol.
- Data GPIO.
- LED count.
- Colour order.
- RGB, RGBW, or other channel configuration.
- Strip voltage and current limit.
- Brightness limiter.
- Segments, presets, and startup behaviour.
- Wi-Fi settings.
A configuration might look like this:
Board: generic ESP32
LED type: WS2812B
Data GPIO: GPIO16
LED count: 60
Colour order: GRB
This is an example, not a universal pin assignment. GPIO availability and restrictions vary between boards. Some pins are reserved for flash, PSRAM, serial, bootstrapping, or onboard peripherals. Check the documentation for the exact controller before wiring.
If colours are wrong, test another colour-order setting. A red command appearing green, or blue appearing red, commonly indicates channel order rather than a failed strip. If only part of the strip works, check LED count, data direction, power injection, and ground continuity.
Test progressively
- Power and configure the controller without connecting the full strip.
- Test a short strip section.
- Start at low brightness.
- Test red, green, blue, and white separately.
- Run one simple effect.
- Check connectors, supply behaviour, and cable temperature.
- Connect the complete run only after the short test is stable.
Do not compensate for dim LEDs by increasing supply voltage. That can destroy a strip designed for a lower voltage.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitchesAdd Home Assistant when you need broader automation
WLED provides its own local controls, so Home Assistant is optional. For supported installations, Home Assistant’s official WLED integration requires WLED 0.14.0 or newer and generally discovers the device automatically.
For manual setup, go to Settings > Devices & services > Add Integration, search for WLED, and enter the WLED hostname or IP address if necessary. The integration can expose the main strip and WLED segments as light entities, along with features such as presets, palettes, intensity, speed, LED count, estimated current, signal strength, and firmware information.
Rank #4
- 2.4GHz Dual Mode WiFi + Bluetooth Development Board
- Support LWIP protocol, Freertos;ESP32 is a safe, reliable, and scalable to a variety of applications
- SupportThree Modes: AP, STA, and AP+STA
- Ultra-Low power consumption, Compatible with Arduino IDE
- 1PCS 30Pin ESP32 Development Board 2.4GHz WiFi Dual Cores Microcontroller Integrated with Antenna RF Low Noise Amplifiers Filters
A basic sunset automation can be written as:
alias: Turn on room accent lighting at sunset
triggers:
- trigger: sun
event: sunset
actions:
- action: light.turn_on
target:
entity_id: light.wled_room
data:
brightness_pct: 35
rgb_color: [255, 120, 40]
mode: single
Replace light.wled_room with the actual entity ID in your installation. For complex scenes, WLED presets are often more dependable than assuming every effect name or secondary colour control is available through Home Assistant.
Home Assistant does not expose every WLED capability. The documented limitations include incomplete handling of some RGB+CCT configurations, no direct usermod control, and limitations with certain secondary colours, sound-reactive features, 2D effects, and multi-segment control. If a room has sections, configure WLED segments; two or more segments can be exposed as separate light entities.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
WLED, custom firmware, or commercial smart lighting?
Choose WLED when
- You want a quick browser-based setup.
- You need effects, presets, segments, and OTA updates.
- You want local control without a mandatory cloud account.
- You may later connect Home Assistant.
Choose custom ESP32 firmware when
- You need proprietary sensors or hardware.
- You require specialised timing or offline behaviour.
- You are building a product or highly specific user interface.
- You need a nonstandard protocol or power-management design.
For custom ESP-IDF projects, Espressif’s led_strip component supports common addressable protocols through RMT or SPI backends.
Commercial smart lights offer better out-of-box enclosures, connectors, support, and often better white-light quality. The trade-off can be cloud dependence, proprietary connectors, limited local control, or less freedom over strip length and mounting.
Install it like a building component
A reliable room installation needs more than a working bench prototype:
- Mount the strip in an aluminium channel with a diffuser to improve heat management and reduce visible hotspots.
- Place the strip where the light is reflected rather than directly visible.
- Provide access for replacement and inspection.
- Use insulated terminals, strain relief, and a suitable enclosure.
- Keep the power supply ventilated and accessible.
- Separate low-voltage wiring from mains wiring and follow applicable electrical rules.
- Choose cable sizes, connectors, and fuses for the calculated current.
- Do not leave exposed terminals where occupants can touch them.
The ESP32 and LED strip portion is a low-voltage project. Installing or modifying mains-powered supplies and fixtures is a separate electrical task requiring appropriate competence and local-code compliance.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallTroubleshooting by symptom
The strip does not light
- Measure the supply output voltage.
- Confirm polarity and strip voltage.
- Check that the controller is connected to Data In.
- Verify the shared ground.
- Check WLED’s LED count, chipset, and GPIO.
- Inspect fuse, connectors, and continuity.
- Check whether the supply is shutting down under load.
- Test a short known-good strip section.
The first LEDs work but the far end is dim or discoloured
Suspect voltage drop, undersized wiring, loose connectors, insufficient injection, or an undersized supply. Add power injection at planned points, shorten high-current paths, improve the wiring, or select a higher-voltage design intended for the run.
Best Value
- 2.4GHz Dual Mode WiFi + Bluetooth Development Board
- Ultra-Low power consumption, works perfectly with the Arduino IDE
- Support LWIP protocol, Freertos
- SupportThree Modes: AP, STA, and AP+STA
- ESP32 is a safe, reliable, and scalable to a variety of applications
The strip flickers or shows random colours
Check common ground, data-wire length, connector quality, supply stability, and 3.3 V signal margin. Try a shorter data lead, a level shifter, a 330–500 Ω series resistor, improved ground wiring, local decoupling, or another GPIO. Test with a short strip section to separate a signal problem from a power problem.
The ESP32 disconnects or resets
Possible causes include an unreliable USB cable, brownouts, weak Wi-Fi, changing DHCP addresses, overheating, or an incorrect board choice during flashing. A DHCP reservation can help keep Home Assistant pointed at the correct device. Home Assistant also documents IP/MAC mismatch problems that can occur after an address is reassigned.
Standard ESP32 boards commonly use 2.4 GHz Wi-Fi rather than 5 GHz. Verify the exact ESP32 variant and ensure the network provides a compatible 2.4 GHz connection; see this Adafruit WLED guide for the relevant project consideration.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →It flashes briefly at startup
The strip and ESP32 may initialise at different times, or the strip may receive power before WLED configures data. An appropriate WLED boot preset, a controller with power-management features, or hardware measures recommended for the specific controller may help. There is no universal fix for every strip and power arrangement.
Home Assistant sees one light instead of sections
Create multiple WLED segments. Home Assistant can expose configured segments as separate light entities when the device has two or more segments.
When a prebuilt controller is the better choice
A generic ESP32-DevKitC is a good learning platform and can be housed in a custom enclosure. For a permanent room installation, a prebuilt WLED-compatible controller may be the safer and faster option if it includes screw terminals, fuse protection, level shifting, multiple outputs, and an enclosure.
Products from the WLED-compatible ecosystem include controllers sold by vendors such as Athom, QuinLED, and GLEDOPTO, but models are not interchangeable. Confirm the exact voltage range, pin assignments, output current, connector polarity, firmware support, and included protections before buying. The WLED compatible-hardware list is a useful starting point.
Final build recommendation
For most makers, the strongest design is an ESP32 running WLED, an addressable RGBW strip, a correctly sized low-voltage supply, fused power distribution, planned injection points, and an aluminium diffuser channel. Add Home Assistant only when the lighting needs to participate in wider household or building automation.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.


Leave a Reply