November 19, 2019
Description
This remix of M_I_A's Flower Alarm Clock (https://www.thingiverse.com/thing:3609703) includes new electronics and software. The clock uses a WeMos D1 R1 and obtains the time via a NTP Server (Network Time Protocol). It supports the following features:
Built in WiFi Hotspot to allow user to enter their WiFi credentials via their phone
Over-The-Air software updating
User selectable 12/24 hr time format
User selectable display brightness (16 settings)
User can set alarm time, sound and whether the alarm is enabled
Displays day of week, date and month
Single 4 Digit display with flashing colon separator
Sourcing the Kingbright DC08-11EWA 0.8" 7 segment single digit displays used in M_I_A's clock proved difficult and way too expensive. I found a 4 Digit 0.8" display that fits perfectly. It simplifies the wiring and includes the colon LEDs. I got mine from eBay.
https://www.ebay.com/itm/5pcs-0-8-4-digit-segment-led-displays-7-seg-with-clock-CC-CA-type-W-B-Y-G-R/143083815043?hash=item215075c083:m:mFxfQ8gLLKd56fv_4EyeObw
I created a new back to hold a DC panel socket. This allows me to use of a standard 12V power brick. The rest of the files should be obtained from https://www.thingiverse.com/thing:3609703
Eagle files have been included. I made my board using the toner method. Except for the switches and LED display, all components are mounted on the back of the board.
The Arduino sketch has been included. I used the buttons in the following ways:
SET - This now switches between various menu options - Alarm on/off, Alarm hours, Alarm minutes, Alarm tune, 12/24hr format, Display Brightness
H - This becomes the UP button and alters the value or state of the above menu options
M - This becomes the DOWN button and alters the value or state of the above menu options
ALARM - This now changes the display to show the time, day of week, day/month and alarm time.
All settings are held in EEPROM.
line 166 of FlowerAlarmClockV3 contains a table that holds the time change rules for your time zone. For mine:
//Australia Eastern Time Zone (Sydney, Melbourne)
TimeChangeRule aEDT = {"AEDT", First, Sun, Oct, 2, 660}; //UTC + 11 hours
TimeChangeRule aEST = {"AEST", First, Sun, Apr, 3, 600}; //UTC + 10 hours
Timezone ausET(aEDT, aEST);
The table shows that daylight saving starts on the first Sunday in October and 2:00am (3.00am after change) and that it ends on the first Sunday in April at 3:00am. I have included other examples for US Eastern Time Zone (New York, Detroit) and Central European Time (Frankfurt, Paris).
License:
Creative Commons - Attribution