Las pasadas navidades construí un reloj para ponerlo en el salón. La idea era tener un reloj que no fuese necesario ponerlo en hora. Os detallo someramente como lo hice.

Hardware
Para realizarlo use los siguientes componentes: un microcontrolador ESP8266, una pantalla OLED de menos de dos pulgadas, 3 tornillos M2,5 y una carcasa de plástico PLA que construí con una impresora 3D a partir de un diseño que encontré en la web de Thingiverse.
El microcontrolador ESP8266 se caracteriza por tener wifi, así que aproveche esta característica para obtener la hora de internet. De esta forma no necesitaba disponer de un reloj en tiempo real, ni diseñar un sistema más o menos complicado de puesta en hora. Como desventaja decir que al usar la wifi de mi casa el reloj no funcionará si me lo llevo a otro lugar (salvo que lo reprograme con el SSID y password de la nueva wifi, que no es nada complicado).
Para montar todo el hardware imprimí en 3D un monitor para la pantalla OLED y la placa ESP8266. En realidad esta carcasa estaba diseñada para realizar un monitor de control de un servidor de Octoprint, pero se ajustaba perfectamente a lo que yo necesitaba.
Software
Para que todos estos componentes funcionasen faltaba el software para lo cual fusione dos ejemplos que vienen con el entorno Arduino a los que les hice modificaciones para que se mostrase en la pantalla la información que yo quería.
Tras instalar la placa esp8266 en el entorno Arduino tome como ejemplo un script para obtener la hora por NTP que usaba la librería «ntpclient». Pero unos meses más tarde, con el cambio al horario de verano, dejé de tener la hora sincronizada. Por tanto, tuve que buscar otro ejemplo que tuviese en cuenta el «day saving time» el script elegido se llama NTP-TZ-DST y viene dentro del apartado de ejemplos para la placa ESP8266 en el entorno de desarrollo para Arduino.
El otro ejemplo que combiné con el anterior fue un reloj que mostraba la hora en digital y en analógico por turnos sobre un pantalla OLED de 1,3 pulgadas. Lo modifiqué para que cuando se mostrase la hora en digital mostrase también la fecha. Además, le añadí una tercera vista en la que se mostraba la hora en digital simulando un visor de 4 dígitos de 7 segmentos. El propósito era aprovechar mejor todo el área de la pantalla para poder ver de lejos la hora.
Para finalizar, os dejo un vídeo con el reloj en funcionamiento.