Skip to content

Arduino based mini LED matrix clock

Notifications You must be signed in to change notification settings

Ratti3/miniclock

 
 

Repository files navigation

miniclock

Video Here > https://youtu.be/MRocFW43dEg and Here > https://youtu.be/krdAU_GUc3k

Arduino Create > https://create.arduino.cc/projecthub/Ratti3/led-matrix-ntp-clock-with-ds3231-bme280-bh1750-esp01-fdde2b

Arduino based mini LED matrix clock, with BME280 Sensor and BH1750 Light Sensor. Optional code for ESP01 to set time via NTP. All versions save settings to EEPROM.

The different versions: LEDClock32x8.ino v1.1 (22 Jul 2019), This is the basic version with no ESP01 LEDClock32x8_ESP01-NTP.ino v1.2 (22 Jul 2019), same as above with ESP01 LEDClock32x8_ESP01-NTP_LED-Switches.ino v1.2 (18 Aug 2019), same as previous, but pin 8 is used to power some LEDs

ESP-01_NTP.ino (22 Jul 2019), the ESP01 code

read this (22 Jul 2019)

This now saves settings to EEPROM, my code has been optimised to only update if necessary. USE AT YOUR OWN RISK. EEPROM can handle 100,000 writes before failure. During my testing, there were no writes in a 24hour period. The codes includes Serial.print, which shows when the EEPROM.update method is called, this only writes if the old value is different.

read this too (22 Jul 2019)

I feel this is now complete (both versions), I have made it stable as possible and seems to work for me. I don't plan on adding any more features.

case has now been made (23 Aug 2019)

https://youtu.be/MRocFW43dEg

See KnownIssues.md for issues.

DS3231, BH1750 and BME280:
  SCL PINS = A5
  SDA PINS = A4
  VCC = 3.3v

LED Matrix:
  CLK = D11
  CS  = D10
  DIN = D12
  VCC = 5v

Switches:
  D2 - Menu
  D3 - Date / +
  D4 - Temp / -
  (Note: Switch on D5 has been removed, display options has now moved to the setup menu)
  
ESP01 (optional):
3.3 Power Regulator Required, and level shifter for the TX/RX pins
  D7 - ESP01 TX
  D6 - ESP01 RX

17 May 2020 - Changes:

   # Fixed issue when it was not activating the display when hour_on was met

09 Sep 2019 - Changes:

   # Display lights up when hour_on variable is met

03 Sep 2019 - Changes:

   # Fixed issue of menus not working properly, specifically the >DISPLAY menu. The 3D arrays were out of bounds.

26 Aug 2019 - Changes:

   # Fixed display not turning off after going to sleep
   # Removed always off mode

19 Aug 2019 - Changes:

   # Added a version that powers LEDs via PIN 8 in, see https://create.arduino.cc/projecthub/Ratti3/led-matrix-word-clock-with-bme280-bh1750-and-esp01-fdde2b for the completed case.

07 Aug 2019 - Changes:

   # Changed from 4 buttons to 3 buttons, display_options menu moved to setup_menu

22 Jul 2019 - Changes:

   # Final version for both versions, cleaned up code
   # LEDClock32x8.ino has same menus at NTP version (minus the NTP function), added EEPROM save code.

16 Jul 2019 - Changes:

   # Moved more stuff out of Progmem due to stability issues in the menu
   # ESP01 now gets SSID name and password via Arduino code for convinience
   # Better error handling on ESP01
   # Manual ntp() call removed from main menu, for some reason the main menu caused weird issues/crashes

15 Jul 2019 - Changes:

   # Fixed issue, PROGMEM running slow due to too much data, moved some out of PROGMEM.
   # Fixed ESP01 timeout handling issue, moved more data out of PROGMEM
   # Increased Serial Software read buffer

14 Jul 2019 - Changes:

   # Added option to quit NTP routine when no data received
   # NTP and ESP01 error handling
   # NTP/DST run at 2am every day, can be disabled via menu
   # ESP Code: Tidied up code, made more efficient and better error handling

13 Jul 2019 - Changes:

   # Substantial amount of changes to LEDClock32x8_ESP01-NTP.ino:
   # Fixed various issues with the original code
   # Menus updated and added. DST and NTP finalised but not tested. UTC offset option in menu
   # Settings are now saved in EEPROM

11 Jul 2019 - Changes:

   # Files for ESP01: ESP-01_NTP.ino and Arduino file: LEDClock32x8_ESP01-NTP.ino
   # This adds support for an ESP01, time is obtained via NTP, work in progress

04 Jul 2019 - Changes:

   # ButtonD was missing in small_clock

02 Jul 2019 - Changes:

   # Fixed a few word clock issues
   # Lux (ButtonD) button also shows current lux value from sensor

28 Jun 2019 - Changes:

   # Added preview when changing font
   # Change word mode to have quarter past/to and mins to etc
   # Hours and Minutes moved to progmen
   # Fixed auto brightness resetting to gobal setting during fade_down
   # Word mode has more words and fixed some errors with reversed word times
   # Random mode is now every hour
   # Made word clock progmem efficient

27 Jun 2019 - Changes:

   # Added 4th button for setting display on/off options
   # Added font_style 7
   # Light sensor automatically adjusts intensity
   # Automatic LED Intensity adjustment, can be turned off via setup menu
   # Added Light Sensor menu (button 4) with option to keep display on until a specific time
   # Moved month and day names to progmem to save RAM

26 Jun 2019 - Changes:

   # BH1750 working, turns off LED Matrix when completely dark.
   # Corrected some fonts and rearranged.
   # Added degrees symbol, called via '~'.
   # Fixed various font alignment and reassignment.
   # Menu now uses small font, with > at start.
   # Font can be changed via setup menu.
   # Fixed Set Font menu anomalies.
   # Temp/Humi/Pres is now available from all modes via ButtonC.
   # Added 6 fonts in total, one of them (no 6) is a cheap one; font 2 is cropped on right side to create the illusion of a new font.
   # Added random font mode in setup menu
   # Fixed missing randomSeed in code

About

Arduino based mini LED matrix clock

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 98.1%
  • C 1.9%