ESP8266 Weather Station: World Clock Demo

Just in time for the beginning of the new year I added a demo for the WeatherStation which displays various world times together with a pretty icon. Just update the WeatherStation library in your Arduino IDE to the latest version or download it manually from here:
Then you can open the demo from File > Examples > ESP8266 Weather Station > WorldClockDemo

The used icons are designed by Adam Whitcroft:

Happy New Year!

Posted by Daniel Eichhorn

Daniel Eichhorn is a software engineer and an enthusiastic maker. He loves working on projects related to the Internet of Things, electronics, and embedded software. He owns two 3D printers: a Creality Ender 3 V2 and an Elegoo Mars 3. In 2018, he co-founded ThingPulse along with Marcel Stör. Together, they develop IoT hardware and distribute it to various locations around the world.


    • Hi Matt. Yes, you can! I have hooked up three displays once and it works. But – and there is always a but – the performance suffers. You might experience slaggy animations. In that case I would suggest to get rid of the carousel animation and just display static images

  1. Hello Dani,

    did you use three displays with diffrent i2c adresses on 2 gpio pins or did you use 6 pins for own i2c comminication for every single display?


    • The displays that I'm using have the I2C address "hard coded". I guess if you would switch the bridge transistor on the back of the display you could run them from the same two pins. I just ran them of three different I2C bus pairs…

  2. Hi!
    When compile the examples, the compiler stop with this:
    exit status 1
    'drawFrame1' was not declared in this scope
    I am using Arduino version 1.6.7. Any idea?.

    • Hello,
      Arduino 1.6.7 works pretty good, if you place prototypes of your functions in *.ino in front.
      It's the simple solution for error "…was not declared in this scope"
      That's all.

  3. Great little project, which I’ve successfully run on my NodeMCU. Thanks for posting it!

    But I’m struggling to understand the timezone stuff, given that it’s all ‘hidden’ deep in some library somewhere. Perhaps you can give me a few tips…

    If I change:
    String timeZoneIds[] = {“America/New_York”, “Europe/London”, “Europe/Paris”, “Australia/Sydney”};
    String timeZoneIds[] = {“America/San_Francisco”, “Europe/London”, “Europe/Budapest”, “Australia/Sydney”};
    all four screens display –:– in place of the time. So are only the original four timezones supported by the library, not the full 600+ zones?

    And I can’t find where to change the duration each page (city) is displayed. How can I do that?

    I’m an absolute beginner at this Arduino/NodeMCU business, so please keep your answers simple. 🙂


  4. I had this demo world clock running successfully on my Lolin NodeMCU v3 for several days. Then today, after loading different sketches onto the NodeMCU, and then returning to the clock, it now displays ‘–:–‘ instead of the time in every zone.

    It’s possible I’ve made some minor change to one of the library components (while experimenting with other sketches), but I don’t know where to start looking, since the clock’s operation is so obscure (all the real work is done by ‘invisible’ modules, buried in libraries somewhere).

    It would be nice to have a detailed explanation of the sketch, and what modules do what functions.

    Any suggestions about where to start looking for the cause of my problem?


Leave a Reply