A complete IoT WiFi management and addressable RGB LED control solution for ESP32-S3 microcontroller. Control your ESP32-S3-DevKitC-1 board's WiFi connection and onboard WS2812/NeoPixel RGB LED through an elegant web interface or serial commands. Perfect for home automation, IoT projects, LED art installations, and embedded systems development.
π― TL;DR: Scan WiFi networks β Connect via web UI β Control RGB LED colors β Build IoT applications faster!
ESP32-WIFI-Manager-Demo.mp4
What you'll see: Web interface with WiFi status monitoring and LED control panel, plus the RGB LED rainbow effect on the ESP32-S3 board.
- ESP32-S3-DevKitC-1 - Dual-core Xtensa LX7 microcontroller with WiFi & Bluetooth or similar kits with ESP32-S3
- WS2812/NeoPixel RGB LED - Addressable RGB LED (onboard GPIO 48 or 38)
- Arduino Framework - Easy-to-use embedded development platform
- PlatformIO - Professional IDE for embedded development with unified build system
- C++11/14 - Modern C++ for embedded systems
- WiFi.h (ESP32) - Native WiFi connectivity and network management
- ESPAsyncWebServer - Asynchronous HTTP web server for ESP32
- AsyncTCP - Asynchronous TCP library for ESP32
- Adafruit NeoPixel - Addressable LED control library
- ArduinoJson - Efficient JSON parsing and serialization
- ESP32Ping - Network connectivity testing and diagnostics
- JavaScript (ES6+) - Interactive web controls and API communication
- REST API - JSON-based endpoints for LED and WiFi control
- Unity Test Framework - Unit testing for embedded systems
- Native Testing - Desktop-based tests without hardware
- Embedded Testing - On-device hardware validation
- Mock Libraries - Arduino and NeoPixel mocks for CI/CD
- π‘ Scan and display available WiFi networks
- π Connect to WPA/WPA2/WPA3 protected networks
- π Support for open networks
- πΎ Automatic reconnection with saved credentials
- π Real-time connection status monitoring
- π Network diagnostics (ping test, signal strength)
- π¨ Full RGB color control (0-255 for each channel)
- π‘ Brightness control (0-255)
- π Rainbow effect animation
- π― 8 preset colors (Red, Green, Blue, Yellow, Cyan, Magenta, White, Off)
- π± Responsive web interface
- π WiFi Status Dashboard
- Connection status
- SSID and IP address
- Signal strength with visual indicator
- Gateway and DNS information
- π¨ LED Control Panel
- RGB sliders with live preview
- Brightness control
- Preset color buttons
- Rainbow effect toggle
- π± Mobile-friendly responsive design
- π» Command-line control via USB serial
- π οΈ Full WiFi management from serial terminal
- π‘ Network scanning and connection
- π Status checking and diagnostics
- Smart lighting control - RGB ambient lighting with web-based color control
- IoT sensor nodes - WiFi-connected environmental monitoring devices
- Status indicators - Visual feedback for home automation systems (door locks, security, appliances)
- Network configuration - Easy WiFi setup for headless IoT devices
- Arduino learning platform - Teach WiFi connectivity and web APIs
- ESP32 prototyping - Quick-start template for ESP32-S3 projects
- Embedded web servers - Learn asynchronous web programming on microcontrollers
- LED art installations - Create interactive RGB displays with remote control
- Product prototyping - Rapid WiFi-enabled product development
- IoT proof-of-concept - Demonstrate connected device capabilities to clients
- Embedded systems testing - Hardware validation with comprehensive test suite
- Firmware templates - Production-ready code structure for ESP32-S3 projects
- LED art projects - Addressable RGB LED control for creative installations
- Mood lighting - Dynamic color-changing ambient lighting
- Event decorations - WiFi-controlled lighting for parties and events
- Visual effects - Rainbow animations and custom color patterns
- ESP32-S3-DevKitC-1 development board (v1.0 or v1.1) - Espressif's dual-core WiFi microcontroller
- USB-C cable for programming and power supply
- WiFi network (2.4GHz, WPA/WPA2/WPA3 or open)
- v1.0 boards: GPIO 48 (default)
- v1.1 boards: GPIO 38
If you have a v1.1 board, edit include/LEDController.h line 15:
#define RGB_LED_PIN 38 // Change from 48 to 38 for v1.1- PlatformIO (recommended) - Professional embedded development platform
- Arduino IDE (alternative) - Beginner-friendly option with ESP32 board support
- USB drivers for ESP32-S3 (CP210x or CH340, usually installed automatically)
- ESP32 Arduino Core
- Adafruit NeoPixel
- ESPAsyncWebServer
- AsyncTCP
- ArduinoJson
- ESP32Ping
Get started with your ESP32-S3 WiFi Manager in minutes! Choose your preferred development environment:
-
Clone or download this repository
git clone <repository-url> cd ESP32-WiFi-Manager
-
Open in PlatformIO
- Open the project folder in VS Code with PlatformIO extension
- Or use PlatformIO CLI
-
Build the project
pio run
-
Upload to ESP32-S3
pio run --target upload
-
Open serial monitor
pio device monitor
- Install ESP32 board support in Arduino IDE (ESP32-S3 support required)
- Install required libraries via Library Manager:
- Adafruit NeoPixel
- ESPAsyncWebServer (from GitHub)
- AsyncTCP (from GitHub)
- ArduinoJson
- Open
src/main.cppand rename to.ino - Select board: ESP32S3 Dev Module
- Upload to board
-
Connect your ESP32-S3 to your computer via USB-C
-
Upload the firmware using PlatformIO or Arduino IDE
-
Open the serial monitor at 115200 baud
-
Connect to WiFi:
- The device will automatically prompt you to connect
- Type
scanto see available networks - Type
connectand follow the prompts - Select network number and enter password
-
Access the web interface:
- After successful connection, note the IP address displayed
- Open a web browser and navigate to
http://<ESP32-IP-ADDRESS>
Once connected via serial (115200 baud), you can use these commands:
| Command | Description |
|---|---|
help |
Show all available commands |
status |
Display current WiFi connection status |
scan |
Scan for available WiFi networks |
connect |
Connect to a WiFi network (interactive) |
disconnect |
Disconnect from current WiFi |
forget |
Clear saved WiFi credentials |
ping |
Ping google.com to test internet connectivity |
-
Navigate to WiFi Status Tab:
- View connection details
- Check signal strength
- See network configuration
- Refresh status as needed
-
Navigate to LED Control Tab:
- Color Selection: Use RGB sliders to pick any color
- Brightness: Adjust LED brightness
- Preset Colors: Click preset buttons for quick colors
- Rainbow Effect: Click "Rainbow Effect" for animation
- Turn Off: Click "Off" to turn LED off
Clean, modular codebase designed for easy customization and extension:
ESP32-WiFi-Manager/
βββ include/
β βββ CommandHandler.h # Serial command processing
β βββ Config.h # Configuration settings
β βββ LEDController.h # RGB LED control
β βββ NetworkTester.h # Network diagnostics
β βββ SerialInterface.h # Serial communication
β βββ WebServer.h # Web server & API
β βββ WiFiManager.h # WiFi management
βββ src/
β βββ CommandHandler.cpp
β βββ LEDController.cpp
β βββ main.cpp # Main program entry
β βββ NetworkTester.cpp
β βββ SerialInterface.cpp
β βββ WebServer.cpp
β βββ WiFiManager.cpp
βββ platformio.ini # PlatformIO configuration
βββ README.md # This file
Build your own custom apps! The embedded web server exposes RESTful JSON API endpoints for remote control:
GET /- Main web interface (HTML)
POST /led/color- Set LED color{"r": 255, "g": 0, "b": 0}POST /led/brightness- Set brightness{"brightness": 128}POST /led/off- Turn LED offPOST /led/rainbow- Start rainbow effect
WiFi credentials are stored in memory and persist through:
- Automatic reconnection after power loss
- Network disconnections
- Use
forgetcommand to clear credentials
Default brightness: 50 (adjustable 0-255)
Default pin: GPIO 48 (change in LEDController.h for v1.1 boards)
Default port: 80 (HTTP) Automatically starts when WiFi connects
Having problems? Here are solutions to common ESP32-S3 WiFi and LED issues:
- Check GPIO pin: Verify correct pin for your board version (48 or 38)
- Brightness too low: Increase brightness slider
- Web server connection: Ensure you're on the same WiFi network
- Wrong password: Use
forgetcommand and reconnect - Weak signal: Move closer to router
- Network compatibility: Ensure WPA2/WPA3 support
- Reset credentials: Use
forgetcommand
- Check baud rate: Must be 115200
- USB driver: Install CH340 or CP210x drivers if needed
- Port selection: Select correct COM port
- Check IP address: Use
statuscommand to verify IP - Same network: Ensure computer is on same WiFi network
- Firewall: Check if firewall is blocking port 80
- Refresh browser: Try clearing cache or different browser
- PlatformIO: Run
pio lib installto install dependencies - Board not found: Update platform:
pio platform update espressif32 - Library conflicts: Remove
.piofolder and rebuild
Contributions are welcome! We appreciate your help in making this project better.
To contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please read CONTRIBUTING.md for detailed guidelines including:
- Code style requirements
- Testing procedures
- Development setup
- Pull request process
This project is licensed under the MIT License - see the LICENSE file for details.
This project uses several open-source libraries. See NOTICE file for complete attribution and license information for:
- Adafruit NeoPixel (LGPL-3.0)
- ESPAsyncWebServer (LGPL-3.0)
- AsyncTCP (LGPL-3.0)
- ArduinoJson (MIT)
- ESP32Ping (MIT)
- Adafruit for the excellent NeoPixel library
- me-no-dev for ESPAsyncWebServer and AsyncTCP
- Benoit Blanchon for ArduinoJson
- Espressif Systems for ESP32 Arduino Core
- The open-source community for continuous inspiration and support
EmilyKeer - GitHub Profile
Created for ESP32-S3-DevKitC-1 development board
GitHub: https://github.com/EmilyKeer/ESP32-WiFi-Manager
Need help with your ESP32-S3 project? Here's how to get assistance:
- Check the Troubleshooting section
- Review serial monitor output at 115200 baud
- Verify hardware connections and board version
- Search existing issues
- Open a new issue with detailed description
- Initial release
- WiFi management with serial interface
- RGB LED control via web interface
- Automatic reconnection
- Network diagnostics (ping)
- Beautiful responsive web UI
- Support for ESP32-S3-DevKitC-1 v1.0 and v1.1
GitHub Topics: esp32 Β· esp32-s3 Β· wifi-manager Β· neopixel Β· ws2812 Β· rgb-led Β· platformio Β· arduino Β· iot Β· home-automation Β· web-server Β· async-webserver Β· led-control Β· embedded-systems Β· microcontroller Β· esp32-devkit Β· addressable-led Β· wifi-configuration Β· iot-platform Β· maker-projects
Related Search Terms: ESP32-S3 WiFi setup, ESP32 web interface, NeoPixel ESP32, WS2812 Arduino, ESP32 LED control, IoT WiFi manager, ESP32 async web server, addressable LED control, ESP32-S3-DevKitC-1 projects, PlatformIO ESP32, Arduino ESP32 examples, ESP32 home automation, RGB LED web control, WiFi provisioning ESP32, ESP32 IoT projects
Enjoy your ESP32-S3 WiFi Manager with RGB LED Control! π¨π‘
Copyright (c) 2025 EmilyKeer - Licensed under MIT License