|The time is 12:10 and 31 seconds|
The device was programmed Arduino environment using several existing libraries. (source code here)
The ESP8266WiFi library allows the device to connect to an existing wifi network.
I used the core time library for the ESP8266 because it provides a method for connecting to the Network Time Protocol. This allows the device to retrieve the correct time from the internet but more specifically if allows you to compensate for British summer time, this means it should move back and forward as required over the summer.
The U8glib library is a graphics library for monochrome displays, it provides all the useful functions for writing fonts and graphic items to the display.
Finally I use the FastLED library because it has an incredibly easy to use macro function that is called at specific time intervals. No messing around with blocking delays or the millis() function.
Once initialised the main loop of the program simply checks on the time and updates the display at one second intervals. The majority of the code for this program is about setting up the Wifi and NTP server and confirming that they are connected before progressing to the main loop.