This is a project to replace my current (broken) sleeping trainer.
- Drive an RGB led based on a schedule
- Get the time from a Wifi connection
- Fluent color easing
- LDR support to adjust the brightness to ambient lighting
- Put debug statements behind a flag
- Remote syslog support?
- Publish MQTT events
- Have the schedule be persistent
- Use LittleFS instead of SPIFFS
- Web interface to edit the schedule
- MQTT interface to edit the schedule
- Adjustable timezone (currently hardcoded in src/Time.cpp)
- Daylight saving time easing
The project is built for an esp8266-based board. Any esp8266-based board should do, as long as it has access to an RGB led. For different boards, you'll probably want to change src/Led.h (pinouts) and src/Led.cpp (displayLed function).
This is built in PlatformIO on VS Code. I have little experience with this, but to my understanding you should just be able to build it.
The frontend part is build with vite, with node v18.17.0. Check the README.md from /vue. After building, be sure to use the "Upload Filesystem Image" from PlatformIO.