/MorphingClockRemix

a remix on the work of HarryFun's MorphingClock

Primary LanguageC++

MorphingClockRemix

Remix from HarryFun's great Morphing Digital Clock idea https://www.instructables.com/id/Morphing-Digital-Clock/ Follow the great tutorial there and eventually use this code as alternative. alt text

  • main code is based on the NTPClient lib example for ESP, the lib itself is used as is for NTP sync https://github.com/2dom/NtpClient which in turn relies on https://github.com/PaulStoffregen/Time.git version 1.5
  • use fast NTP sync on start then adapt to one sync per day (or so)
  • 12/24h time format
  • date format and display below the clock
  • Morphing clock code/logic is kept almost as is from https://github.com/hwiguna/HariFun_166_Morphing_Clock
  • WiFiManager code/logic is also from https://github.com/hwiguna/HariFun_166_Morphing_Clock - the password for connecting to ESP AP is: MorphClk
  • it uses TinyFont and TinyIcons as my own implementation
  • it uses openweathermap.org so you'll need a free account for the weather data (sync every 5min or so) !! you'll need to update the apiKey and location variables (around line 300)
  • metric or imperial units support for weather data display above the clock
  • it uses animated icons for weather: sunny, cloudy, rainy, thunders, snow, etc.. (not all tested yet)
  • it has night mode from 8pm to 8am when it only shows a moon and 2 twinkling stars and a dimmed display
  • temperature and humidity change color based on (what most might consider) comfortable values

[Note]: In case you have issues running the WiFi configuration applet, disable ICONS usage.

  • #define USE_ICONS
  • #define USE_FIREWORKS
  • #define USE_WEATHER_ANI You can re-enable it after configuration is done.

Alternatively, you can use the 'no-wm' branch for a static configuration approach.
For the 'no-wm' branch, there's a small WEB server for various settings (wip) at http://[esp-ip]/ like below:

" use the following configuration links daylight on daylight off timezone 0 timezone 1 timezone 2 use /timezone/x for specific timezone 'x' "

tested ONLY using the NodeMCU variant listed as NodeMCU 1.0 (ESP-12E Module) in Arduino Studio

provided 'AS IS', use at your own risk

consider a small donation if you feel this helped you: https://www.paypal.me/lmirel