I've built several clocks (see other projects including a NeoPixel ring clock and a couple of RGB matrix based clocks that have animation and Westminster Chimes, cuckoo clock sounds and/or simple tolling bell. All these use an Arduino Mega an RTC and sensors and the Adafruit FX sound board.
At some point I wanted to connect them to the internet. Because the soundboard (at least as I connected it) requires a lot of GPIO pins, I could not directly use an ESP-8266 as both main and internet processor. So, I created a very simple command language and interfaced the two boards using I2C.
The main processor runs two MX7219 back to back 4 unit LED strips (total of 8) to show time, date, day, temp, humid, barometric pressure and trend/history and day of week.
Additional displays show whatever important dates you build in (e.g., birthdays, anniversaries) and built in holidays that are static, floating (e.g., DST start) or table driven (no algorithm -- like Easter).
The internet provides several feeds as well as initial time setting. Implemented are:
1. NY Times
2. NPR feed
3. Accuweather current weather for a given zip code
4. Tomorrow's forecast too
The second (top) time display was added after my wife complained that there were so many displays in the rotation that it took too long to wait for the simple time. The code is configurable for:
1. No secondary display
2. A simple 4 segment LED display using an I2C backpack
3. Four independent 8x8 matrix displays with unique I2C addresses
4. A third MX7219 (my personal favorite) above the two main MX7219s
The clock once set is maintained by the DS3231 RTC and several temp, humid, bar pressure sensors can be configured.
DST is automatically set and is software configurable (e.g., if you are in Arizona) at compile time
The chiming comes from files stored on the FX Soundboard and each sound is triggered by a GPIO. There are three sound suites - Westminster, Cuckoo and simple chime bell. I can provide the sound files if you are interested. The sounds are simplified by using short and long sounds in combination. For example, Westminster 2 pm is : Full Hour sound + one truncated chime and one long trailing chime.
There is an ANSO switch to shut off the chimes between certain hours (e.g., 11pm and 6am) and those stop/ start times are also configurable.
I've used several temp and barometric sensors -- they are also configurable.
The ESP8266 is configured (compiled) with your SSID and password and your zip code. It contains several 'editing' routines to make the HTML feeds usable by the main clock -- They are admittedly 'fragile' and may need updating at some time. They seem to work pretty well for now!
Finally, there is a 'demo' mode that shows off the two MX7219 displays and plays the theme from Game of Thrones at the same time. It also can be deleted if you are so inclined....