PAGE IS UNDER CONSTRUCTION

Using 282 LEDs to build 4 digits of 7-segments and an ESP8266 to create a MaxiClock 7-Segment digits is a great project.

The time is set using internet NTP servers. ESP8266, complete with WiFi,  is a great MCU for this purpose. Together with the WifiManager library, its not necesarry to set networkname and password in the software, it can be set using a phone and WifiManagers webserver option. Using a SSD1306 OLED Display to display the status and other data, combined with a DS3231 clock module, its a great solution.

Every 15 minuts, the bell ring, using a DFPlayer Mini with 2 different selectable sets of MP3-files for the sound.

The 7-segment display is build up using 7, 100 mm long 3D-printed holders for the LED-strip. Each segment have 10 LED's. With 4 digits, each with 70 LED's, the total number of LED's are 280. In addition, 2 more LED's are included for second marker between the hour and minute digits.

3 different images mounted on a 1 meter long wood base, showing the different modes, top image, standard clock mode, number 2 show temperature and image 3 shows one of the demopatterns available.

 

Clock Mode or Demo Mode?

One short push on the button, toggle between Clock Mode or Demo Mode. In Clock Mode, the time, temperature and the date are viewed one by one on the 4-digit display. 

The dots in the middle of the clock, blinks with a 1 second interval. 

In demomode, the LED-strip display cycles through 6 different patterns. The original sketch for the LED-strip demo, can be found in the Arduino example folder, Examples>FastLed>DemoReel100.

 

Set Volume or Audio type

Pushing the button, and holding it for more than 5 seconds, you enter the Volume Setting mode, where you can toggle the Volume between 0, 10, 20 or 30. 0 is silence. Pushing 1 or 2 more times, select Audio Mode, sound as a Bell, or sound as a bird, a koko. :-) Releasing the button vil save the selected value.

 

Set SSID and Password

To connect the MaxiClock to your network, pushing and holding the button for more than 10 seconds, will enter the "Connect to Network" mode. Using a phone and searhing for the MaxiClocks network, "AutoConnectClock" with password: "password", you can open a webpage, where you can scan for all networks, and select a SSID and enter the password for the selected network. This values will be saved in the MCU and the current time and date is automatically set using the NTP-server defined in the code.

 

The wifi setting on the phone for the 7-segment maxi clock.

 

The 7-segment MaxiClock digits

The 7-segment digits, are created using a LED-strip with 100 LED's pr. meter, with a total of 280 LEDs. The holder for the LED-strips are constructed using Fusion 360 and 3D-printed.

2 of the digits with 10 LEDs in each segment. 70 Leds on each digit, 4 digits are 280 LEDs in one strip.The first LED in the strip is located at the "START"-arrow. Then each segment is connected in serial with previous segment, as the numbers indicate. Nn "NEXT", the wires are connected to the next digit and first segment in the next digit.
On the right side, the second flasher, with 2 LEDs. They are connected as the 2 last LED's in the strip.

 

Drawing of the7-segment digit.

 

Hardware used; ESP8266, where to buy

The ESP8266 I use has an integrated 0.96" 128x64 OLED Module, but you can also use a standard OLED Module, using the Adafruit SSD1306 library.

I had 2 different types of ESP8266, where the Clock and data pin for the display was swapped causing some confusion until it was figured out.

 

To save the time, and use it if the network is not found and there are not possible to get the time, I use a DS3231 clock module. Temperature can also be read via ths module.

The MaxiClock can be used without the DS3231  clock module, if its not found, the temperature display is disabled.

The hardware used for this build. 2 versions of the ESP8266 with integrated OLED-display, the external OLED-display, the DFPlayer Mini and the DS3231 Clock module.

 

Where to buy?

The items can be bought from several sites, I use aliexpress and find much of my stuff there. Here some of the items I have used:

 

The MaxiClock enclosure

 

The MaxiClock enclosure, with the display,LDR-sensor and Selector Button on front of the box.

 

The box is printed using my Anycubic Photon Mono printer.

 

The MaxiClock prototype and first build

The protype was build using a breadboard. The first build, to be used in production, was build using a small experiment board.

A PCB is under development and will soon be available.

The front of the protype board, with the ESP8266 with OLED-display, and the DFPlayer Mini on the front.

 

The back of the prototype card, with the RTC DS3231 clock module.

 

A PCB is under development to replace the prototype setup.

The prototype setup for the MaxiClock.

 

MaxiClock Breadboard

The clock was setup using a breadboard.

The breadboard for the 7-segment MaxiClock.

 

From left side you can find the powerconnector for the 5 volt power supply. Then the capacitor for the power. The LDR and resistor are next. Then the RTC Clock module, to save the time and to give the temperature. Then th DFPlayer Mini. The pushbutton to configure the clock is next. The display follow, either mounted as shown, or the display is an integrated part of the MCU. And finally, on the right side, the MCU or ESP8266 is placed on the breadboard.

 

MaxiClock Schematic

 

 

The schematic for the 7-segment MaxiClock.

 

Where to find the 3D- models and the software

The models can be found on my cults3d site, https://cults3d.com/en/users/smholt

The software and the audio file can be found on my github site: https://github.com/smholt/MaxiClock

 

The software

The software, version 0.9, file MaxiClock_by_platelayer.ino.

The complete software, including the MP3-files, can be found on my github: https://github.com/MaxiClock

The first lines shown below:


/*  MaxiClock_by_platelayer.ino, by Svein-Martin Holt, www.platelayer.com february 2024

 * 3D printed 7 segment, maxi size 4-digit clock with an ESP8266, using wifi to sync the time.
 * To configure wifi, a phone can be used to access the ESP8266 to configure and connect to the network. The networkname and password is set using the phone.
 * Every hour, the bell sound, using a DFPlayer mini, with predefined audiofiles with bell ringing from one time, up to 18 times. 
 * All audio files are stored on a SD-card, in a mp3 directory. All mp3 files have 4 digit numbers, like 0001.mp3.
 
 More info can be found on my homepage: http://www.platelayer.com/maxi-7-segment-clock.aspx

 The software can be found here: https://github.com/smholt/MaxiClock

 The 3D-model of the digits, can be found on my cults3d-page: https://cults3d.com/en/users/smholt

 ------------------------------------------------------------------------------------------------------
 
 The original idea for part of this build, and the inspiration to build my own clock, is found here: https://www.youtube.com/watch?v=8E0SeycTzHw

 The ESP8266 I use has an integrated 0.96" 128x64 OLED Module, but you can also use a standard OLED Module, using the Adafruit SSD1306 library.
 I had 2 different types of ESP8266, where the Clock and data pin for the display was swapped causing some confusion until it was figured out, see comments below.

 To save the time, and use it if the network is not found and there are not possible to get the time, I use a DS3231 clock module. Temperature can also be read via ths module.

==========
There are one buttons, where a short push, change between clock mode and LED-strip demo mode.
A 5 second or longer push, let you change the volume for the bell, 0(No bell) to 30 in interval of 10.
Wait 5 seconds after last change, the new value is stored in EEPROM. On startup, the saved Volumevalue is restored from EEPROM.
A 10 second or longer push, reset the wifisetup and you must set the network and password, using a phone.
A webbpage can be opened, selecting the network you will see on the list, "AutoConnectClock".
The password for the connections is: "password".

The 4-digit seven segment sign has a total of 282 LED's in the strip. Each segment has 10 LED's, 
with the 2 last LED's used for the one "colon" and second blinker.
I have used the FastLED library for the LED-strip.

Sound is created using a DFPlayer mini, using the DFPlayerMini_Fast library: //https://github.com/PowerBroker2/DFPlayerMini_Fast
I had some problems with the standard DFPlayer library, but this Fast_Mini version, works great.


LDR Brightness control:
A LDR is connected to A0 to measure the light in the room, and set the brightness to 
a HIGH value when there are much light, and a lower value when the room is darker.
A 10 Kohm resistor is connected from A0 to GND.
The LDR is connected from A0 to VCC, + 3.3 or 5 volt.
On A0, the analogRead command read the value, between 0 and 1023.
The map command convert the value between 0-255.
If no LDR is connected, connect A0 to VCC, +3.3V/+5V to set maximum brightness

         |-----> VCC, 3.3 or 5 Volt
         |
        LDR
         |
         O-----> A0, pin 2
         |
    Resistor 10 Kohm
         |
         |-----> GND


==========

*/
#define PROG_NAME "MaxiClock"
#define BY_NAME "by platelayer"
#define PROG_VERSION "0.9, 2024.02.21"  // Set the program version number and date


...........................................  Continue on github