Binary_clock
A binary clock made with ESP8266 and WS2812
About the project:
This is a simple project to create a binary clock using a ESP8266 and some WS2812 single addressable leds. Use the wi-fi connection to syncronize the time via NTP, change timezone, led color and brightness via Serial commands or physical buttons. In this case, i've used two "touch" button behind the front mask (STL for box and mask attached) for a better, minimal design.
Hardware
- 1 WEMOS D1 ESP8266 (or similar)
- 20 WS2812 RGB single addressable led
- 2 (or 3) buttons for color change,brightness and timezone
- USB cable, soldering, various cables
Installation
- Download the firmware form the release link and install with your favourite tool
- Use the Web Installer here
- Download source, open it in platform.io, build and upload.
Post installation instruction
After the installation, is suggested to connect the web installer, press the To connect to wi-fi, use the "logs and console" section to access serial interface and press a "reset device" to see the clean serial interface with commands.
To connect to wifi use these commands:
and
Important
please note: type ssid: and pass: with colon and no space before the value like in the example before
Commands
If you have connected the physical buttons, you can change color, brightness and time zone in a click (cycling). Or you can connect via serial console (also via web installer) and type:
to change the colors
to change the brightness
to change the timezone (+1)
to change the timezone (-1)
After the first connection, is suggested to adjust the timezone, all parameters will be stored in eprom.
Cabling
The strip is attached to D4 like the schema below
LED Schema
The 20 LEDs are used to display the time in this format: HH,MM,SS (note: time is in format 24h) first two columns are for hours, second two for minutes, and the last two with seconds
Pay attention at the LED sequence: in a ideal 20 LED strip, the time will be represented as below
So the "weight" of the bit will be displayed from below (1) to top (8) in sequence 1,2,4,8. first colum need ony 2 led, so also decimal for minutes and seconds need only 3.
You can build your case or use the provided STL to have a prototype like below:
and a "live" example here


