- Arduino pro-mini (5v 16mhz)
- Alitove 16.4ft WS2812B LED strip <- (amazon affiliate link to the LED strip I used)
- Alitove 5v 10a Power brick (amazon affiliate link again)
- TFT 1.8 display
- ds1307 RTC
- Generic Project Box (another affiliate link. Could accomplish the same with a 3d printed version)
- Button OK <-> D2 Arduino
- Button Left <-> D7 Arduino
- Button Right <-> D3 Arduino
- LED Data <-> D6 Arduino
- RTC SDA <-> A4 Arduino
- RTC SCL <-> A5 Arduino
- Screen D/C <-> D8 Arduino
- Screen RST <-> D9 Arduino
- Screen CS <-> D10 Arduino
- Screen MOSI <-> D11 Arduino
- Screen SCK <-> D13 Arduino
- Screen SD CS <-> D4 Arduino
- Screen SD MISO <-> D12 Arduino
One hour prior to the target the LED strip will illuminate (full intensity for sunset, minimal for sunrise). Over the next hour the brightness is inverted on a linear scale. The RTC has a battery backup and can maintain the date/time displayed. The target time for sunrise and sunset is stored in the Arduino's EEPROM.
Each of the three momentary button has 2x available actions: short and long press. Long pressing the middle (OK) button toggles setup mode. While in setup mode (indicated by the flashing LED strip) each value can be adjusted. The currently selected value is highlighted and can be adjusted by the left or right buttons. Short pressing left or right will adjust the selected value down or up respectively, whereas long pressing left or right will change which setting is currently selected. Short press OK to advance to the next setting as well.
- Finish cleaning code (move support functions into header file)
- Add Sugru over hot-snot holding screen in place (create a smooth bevel).
- Add Sugru over the momentary switches.
- Enhance sunrise and sunset routines to transition between two colors.
- Add buzzer for simple notifications.
- Add support for the SD Card reader on the screen; screensaver with timestamp