ESP32 Based Clock





Introduction: ESP32 Based Clock

Tutorial how to build a clock based on an esp32 with a built-in oled display, with a touch button, without any other parts, no wiring/soldering required.

Step 1: Parts & Libraries


  • An ESP32 module with a built in OLED display (Amazon)
  • A micro USB cable


      Step 2: Code

      First of all make sure you have the esp32 package added to your board manager (follow instructions here if you don't).

      The code is on github, link here.

      Download it or paste it in an arduino sketch. Make sure to change the ssid, password and timezone.

      Select wemos lolin32 as your board and upload your code (might need to hold boot and press en buttons before uploading).

      Step 3: Done

      Now the clock should be done. To toggle date view, just touch the T1 or 0 pin on the esp.


      If you want to make it cooler, you can solder a wire on pin GPIO0, then attach a metal small plate/coin on the other end. Insulate the metal cover of the esp and fix the plate/coin there (with some hot glue).


      The only problem is that if the esp starts without a serial communication on, it won't work.

      If you know how to fix that, please leave a response in the comments, thanks!!

      If you have any other issues don't hesitate to leave them in the comments.

      Step 4: References



        • Paper Contest 2018

          Paper Contest 2018
        • Pocket-Sized Contest

          Pocket-Sized Contest
        • Science of Cooking

          Science of Cooking

        We have a be nice policy.
        Please be positive and constructive.




        Hey DanielM953,

        really cool clock you made!! :)

        I've tried to set it up, like you write above, but I get this error:


        In file included from C:\Users\P50092\Documents\Arduino\esp\esp.ino:3:0:

        C:\Users\P50092\Documents\Arduino\libraries\NTPtimeESP/NTPtimeESP.h:16:25: fatal error: ESP8266WiFi.h: No such file or directory


        What ESP8266-lib are you using?

        I think, the NTPtimeESP-lib is pointing at ESP8266WiFi.h, that he can't find, even if I've installed this lib:

        Do you have an idea, what to do, to get the code to work?

        Thanks in Advance :)


        Yeah, sorry for that and the delay.

        The esp32 doesn't have the ESP8266WiFi.h library, it is replaced with WiFi.h.

        Download this ntp library, it should work.

        Thanks a lot !! Now it works like a charm :)

        Also I changed the code, sorry for the past error.