Smart Wi-Fi lamp controller based on ESP32 with a built-in web interface. Control lighting from any device on your local network — no cloud, no app required.
| Layer | Technology |
|---|---|
| Firmware | C++ / Arduino (PlatformIO) |
| MCU | ESP32C6 |
| Web UI | HTML + Tailwind CSS + JavaScript |
| Build tool | Node.js / npm |
| IDE | VS Code + PlatformIO extension |
| 3D Models | /3d folder (enclosure parts) |
SmartLamp/
├── src/ # C++ firmware source code
├── src_web/ # Web UI source (Tailwind, JS)
├── data/web/ # Compiled web assets (uploaded to ESP32 flash)
├── 3d/ # 3D printable enclosure models
├── platformio.ini # PlatformIO project config
├── partitions.csv # Flash partition table
├── tailwind.config.js
└── package.json
- VS Code + PlatformIO extension
- Node.js (for building the web UI)
git clone https://github.com/SHMAKET/SmartLamp.git
cd SmartLampnpm install
npm run buildThis compiles the frontend from src_web/ into data/web/, which gets uploaded to the ESP32's filesystem.
Open the firmware source in src/ and update your Wi-Fi SSID and password before flashing.
In PlatformIO (VS Code sidebar or CLI):
# Build and upload firmware
pio run --target upload
# Upload web files to SPIFFS/LittleFS
pio run --target uploadfsAfter booting, the ESP32 will connect to your Wi-Fi and print its IP to the serial monitor. Open that IP in any browser on the same network.
Enclosure files are located in the /3d folder. Print with PLA or PETG. Check fit before final assembly.
This project is licensed under the GNU General Public License v3.0.