ESP32 Smart Light
ESP-IDF IoT LED Controller with BLE provisioning, HTTP control, NVS storage, and OTA updates
๐ก Project Overview
The ESP32 Smart Light is a custom firmware project built with the ESP-IDF framework in C.
Itโs designed to control an LED over WiFi, with Bluetooth Low Energy (BLE) provisioning,
HTTP-based control, non-volatile storage (NVS) for persistent settings, and
over-the-air (OTA) firmware updates for easy maintenance.
The project demonstrates my ability to connect hardware and software,
from low-level embedded development to network protocols and update mechanisms.
โ๏ธ Key Features
- BLE WiFi Provisioning โ Configure WiFi credentials via Bluetooth from a mobile device.
- HTTP API Control โ Control LED state using REST-style requests.
- NVS Storage โ Save and retrieve configuration data persistently.
- OTA Updates โ Deploy firmware updates remotely without a wired connection.
- Built with ESP-IDF in C โ Full control over hardware features.
๐ Repository
- ๐ฑ Mobile App
- ๐ก ESP32 Hardware
๐ ๏ธ Hardware Setup
Below is the ESP32-C6 Mini hardware used in the project, shown both in real life and as a wiring diagram for clarity.

Real hardware on a breadboard

Wiring: GPIO 23 โ LED โ 220 ฮฉ resistor โ GND
๐ถ BLE Device Setup
The mobile app enables BLE-based provisioning for your ESP32 Smart Light.
You can scan for nearby ESP32 devices, connect, and send WiFi credentials from your phone.
This process allows the device to join your local network without hardcoding credentials.



๐ Home & Control Screens
Below you can see the main device list and the control interface for an individual ESP32 Smart Light.
The home screen shows all discovered devices on your network, while the control screen allows you to toggle the light and view device details.



๐ OTA Update Screen
The ESP32 Smart Light supports over-the-air (OTA) firmware updates directly from the mobile app.
The screenshot below shows the OTA update process in progress, allowing you to seamlessly upgrade your device without physical access.


๐ Summary
In short, this was my โforever projectโ where there is only more to develop and the expansion of the project is only limited by my own time and interest.
Next, I might add an RGB LED and frontend controller for it. Or whatever comes to mind. Motors? Scanners? Who knows! ๐
If youโre interested in the source code, check here: Repository