This is my DIY version of a word clock, which shows the time as it is spoken. It consists of 143 LEDs (13 x 11) behind a predefined letter layout.
Unlike many other word clock implementations it can express every minute of the day (not just every fifth).
I used the following components:
- 143 WS2812B LEDs on a strip with 60 LEDs/meter, so you need 3 meters
- 5 V Power supply with about 8 A output current (I used a MeanWell LPV-60-5)
- each of the 143 LEDs can draw about 50-60 mA (but normally the total consumption is below 500mA)
- DOIT ESP32 DEVKIT V1 microcontroller board
- 3.3V to 5V logic level converter
- Picture frame that can hold 30 x 30 x 1.5 cm
- 3D printed socket for the LEDs, see below
- frosted acrylic glass (3 mm) to diffuse the light (alternatively semi-transparent paper will also work)
- The letter matrix made of black cardboard cut out by laser, see below
You will find the OpenSCAD model (and also a generated .stl file) to hold the LED strips in place in the 3d-print folder: wordclock_led_boxes.scad
For the letter layout there is a .svg file. This has to be cut out of a 30 cm x 30 cm piece of cardboard.
For an even illumination of each letter I used a 3 mm frosted acrylic glass, which I cut into small pieces 15.7 mm x 18.5 mm each, to fit into the 3D printed LED socket.
- Install and run Arduino IDE (version >= 1.8.8)
- Add "Additional Boards Manager URL" (in menu: "File -> Preferences"):
https://dl.espressif.com/dl/package_esp32_index.json
- Install via "Boards Manager" (in menu: "Tools -> Boards"):
esp32
byEspressif Systems
(version >= 1.0.0)Arduino AVR Boards
byArduino
(version >= 1.6.23)
- Select Board:
DOIT ESP32 DEVKIT V1
The following software libraries are used and can be installed via the Arduino IDE "Library Manager":
NeoPixelBus
byMakuna
(version >= 2.4.1)MQTT
byJoel Gaehwiler
(version >= 2.4.1)