Wordclock mirror - ESPHome

Together with a friend we build two wordclocks with a laser engraver and a cheap IKEA mirror tile.
This is the result (german version - translated to: IT IS QUARTER TO FIVE):


(sorry for the strange angle, it is not that easy to make photos of mirrors)

We added a row of icons which can be updated via service call from home assistant.
This allows to use automations to display smarthome status information on the clock.

The file needed files (wordclock.yaml and wordclock.h) can be found in my github repository.

Hopes this will inspire someone to also build a wordclock and maybe contribute to our sourcecode


17 Likes

Looks great! Well done.

Looks like it should be pretty easy to map this to a different layout in English.

What are the costs?

The costs are pretty low:

  1. Mirror (IKEA 8€/pack of 4) 2€
  2. ESP8266 5€
  3. 125x LEDS WS2812B approx. 10€
  4. Some wires, solder and wood: approx. 10€
    So material should be below 30€

It ist more a challenge in building time and machine availability:

  • Laser engraving
  • Frame building
  • wiring and soldering

This should be pretty forward in wordclock.h

Numbers and texts is mapped in an array and can be adjusted there.

Looks fantastic! Well done!

Really nice project!
Where did you do the laser engraving and how much it costed (unless you have an engraving machine yourself)?

We had a laser engraving machine on hand.
So unfortunatelly I cannot provide you with any costs.

How about adding LDR and let it automatically adjust brightness ?

btw interesting stuff !

Thanks

Sure should be no problem, just add an LDR to the ESP

wordclock.yaml

sensor:
  - platform: adc
    pin: A0
    name: "Wordclock LDR"
    update_interval: 10s
    id: "ldr"
    filters:
      - multiply: 3.3

Adjust line line 99 to read from “ldr” instead from “fastledlight2”

1 Like

Agreed.

Already decoded the German and matched to my English version of the clock face based on the original QlockTwo.

Should be a fun Winter build!

2 Likes

Hi, I tried to install this but I’m getting the following error:

In file included from src/main.cpp:30:0:
src/wordclock.h: In member function ‘virtual void Wordclock::setup()’:
src/wordclock.h:5:18: error: ‘D5’ was not declared in this scope
#define DATA_PIN D5 and more errors after this, any idea whats going wrong?

Looks really elegant!
What laser (type / power) did you use?
Still looking for an excuse to buy one myself.
This might convince the DMU (Decision Making Unit aka wife)!
Are you in Berlin?

I can only imagine that you are not using an esp8266 or an board where D5 is not defined.
Could it be that you are using an ESP32?

You can switch also to the GPIO numbering in line 5 of wordclock.h

define DATA_PIN 14

Yeah, I’m using an esp32 board, intstalling wnt fine, only now is there’s just one led alive :smiley: when I expect more leds to be alive, so I need to figure out what is causing that, maybe I need to change the gpio (using 14 right now)

I don’t own a laser, but my friend has one.
The mirror was made with an 100W CO2 Laser.
Hops this helps :wink:

I’m from Stuttgart Area.

1 Like

Would you mind sharing your layout?
So in could add it to the GitHub repo.

You can change to data pin 5, at least this is working for me.
Once the esp boot it will light up every led in every color.
I build this to be abe to check if the LEDs are still ok.

No problem - I’ll share it here once I’ve completed some debugging.

1 Like

Hi, it’s an amazing project. I already made a wordclock, but wanted to integrate it to HA. I also have an LDR installed. Changed line 99 to:

if (ldr.get_state() > 0 ) { brightness = (int)(ldr.get_brightness()*255); }

With this I get two errors with compiling the new code. I did add LDR to the yaml file. the values I can read in HA.

What am I missing here? do I have to define LDR also in the wordclock.h?