ESP8266 LED Matrix Clock

17,722

114

43

Introduction: ESP8266 LED Matrix Clock

About: DIY enthusiast.

ESP8266 LED Matrix Clock

Simple LED matrix Clock based on the popular ESP8266 with Real Time Clock module and time synchronization over WiFi from an NTP server.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Parts and Tools

First let's see what we need.

Parts:

  • 6 x 8x8 MAX7219 LED Matrix Banggood
  • 1 x RTC DS3231
  • 1 x ESP12 Board Bangood
  • 1 x pasta jar
  • 1 x 5.5mm X 2.1mm DC Power Supply Metal Jack Panel Mount
  • 1 x USB to 5.5mm X 2.1mm barrel jack 5v dc power cable
  • 1 x Window tint film
  • 11 x female to female dupont wires Bangood

Tools:

  • soldering iron
  • spray bottle
  • hobby knife
  • double sided tape

All the parts can easily be sourced from ebay/aliexpress and/or local stores.

Step 2: Preparing the LED Matrix

I found it easier to buy 2 x 4pcs modules, cut one of them in half and solder it to the other one while maintaining the orientation printed on the PCB.

Step 3: Connect the LED Matrix Display and the RTC to the ESP8266

Solder the pin headers on the modules then use the dupont cables to connect them as follows.

MAX7219 to ESP8266

  • VCC - 3.3V
  • GND - GND
  • CS - D8
  • DIN - D7
  • CLK - D5

DS3231 to ESP8266

  • GND - GND
  • VCC - 3.3V
  • SDA - D1
  • SCL - D2

One note on the RTC module, apparently it also has the ability to charge the battery, however that's not a good idea when using a CR2032. One possible solution would be to cut the trace marked on the image in order to disable the charging part of the circuit. Further information on this can be found here.

Step 4: Flash the ESP8266 Module

Nest step would be to upload the code to the ESP8266.

While the original code can be found here (many thanks to the author !) you can find attached the English version of it.

The upload process is pretty straight forward, just don't forget to update the code with your WiFi credentials.

char ssid[] = "xxxxx";         				// your network SSID (name)
char pass[] = "xxxxx"; // your network password

Step 5: Apply the Solar Film on the Pasta Jar

I've decided to only cover one part of the jar with film to keep the rest of components visible.

After some trial and error I've noticed that the 'secret' is to have both the jar and the film as wet as possible with soapy water to be able to make adjustments as you apply it. Use the spray bottle to keep everything nice and wet and the hobby knife to cut the excess film.

Once it completely dries the film should be pretty well stretched on the jar.

Step 6: Prepare the DC Power Supply Metal Jack

Solder 2 dupont wires to the DC jack. They will be connected to the ESP8266 as follows.

  • + - VIN
  • - - GNG

Drill a whole in the middle of the jar lid and mount the DC jack.

Step 7: Putting Everything Together

To make things a bit more tidy I sticked the RTC and the ESP8266 to the back of the LED display using some double sided tape. Make sure that the modules are not touching any of the LED modules contacts, and if they do, use some electrical tape to cover the contacts in order to avoid any shorts.

Also, in order to make sure the display does not move once I screw back the lid of the jar, I added some tape on the bottom end of it so that is stays in place on the bottom of the jar.

All that remains is to plug the USB cable and that's it !

Step 8: Further Ideas

  • Add a backup battery charged thru a TP4056;
  • Add a temperature and humidity sensor;
  • Design a 3d printed case;
  • Add a light sensor to dim the display at night.

Hope you enjoyed this project and if you have any questions feel free to ask.

Thank you for reading!

Clocks Contest

Participated in the
Clocks Contest

5 People Made This Project!

Recommendations

  • Magnets Challenge

    Magnets Challenge
  • Raspberry Pi Contest 2020

    Raspberry Pi Contest 2020
  • Wearables Contest

    Wearables Contest

43 Discussions

0
PRS950.
PRS950.

Question 24 days ago

We got new tv service provider and their terminals don't have a clock display. This project is exactly what we need to have the right time again 😊. I wonder though if someone could explain the role of the RTC module in this project since it reads the time from the internet... Right?

0
RuudM2
RuudM2

Answer 1 day ago

Hello, my version works also at high accurately without the internet.
You can choose with a switch during upstart.
But the first time settings is always by the internet NTP server.

0
PRS950.
PRS950.

Reply 18 hours ago

ok, so i'ts not an absolute necessity then...
I did that project and it works super well. I did the enclosure with Legos because i have tons of it and my kids don't play with them anymore! Great project, thank you for sharing !!

0
RuudM2
RuudM2

Reply 16 hours ago

Nice to hear, do you have a picture of it?
dit you use my software or the original?

0
MyTechRock
MyTechRock

1 year ago

Wow Really Very Nice Project Do You Added DHt11

0
dancopy
dancopy

Reply 2 days ago

Hello EdN35! Please, in the sketch, where can I disable Daylight Saving Time? Because I don't need this in my country. Thanks

0
edo357mag
edo357mag

14 days ago

Good evening I have a problem with the project, the seconds appear on the 1 matrix as seen in the photo, I used an 8x32 2 single matrix module how can I do?
Thank you

IMG-2152.jpg
0
ZaNgAbY
ZaNgAbY

Reply 13 days ago

Hello,
In the code you need to update #defineanzMAX with the number of modules that you have.

1
RuudM2
RuudM2

4 months ago

Yes, i have made it.
It works fine with the original software but i have added the temperature measurement with the DS3231 clock, with some T corrections it works fine. And also brightness-control with an LDR.
Because i don't have everywhere WiFi i have made a switch time from RTC or time from a internet NTP server.
And also made some additive display-text during the startup.
I have made it in a custom case made from epoxy print-board.
The RTC is "far" from the ESP8266 because of the temperature measurement.
It works NICE.
I have made the day and months in my own language, Dutch. But you can change this easy.
SEE the other makers, for all the pictures.
The source is with it. Success.........
Greeting from the Netherlands, Ruud.

IMG_8388.JPG
0
ZaNgAbY
ZaNgAbY

Reply 3 months ago

Glad to see that you found this project inspiring! Would you consider providing more details on the updates that you did? Wiring schematic and updated code?

0
RuudM2
RuudM2

Reply 3 months ago

See all the details in the “ I made it “ box.
schematic and source.
greetings, Ruud.

0
ZaNgAbY
ZaNgAbY

Reply 3 months ago

Many thanks !

0
pks4510
pks4510

Reply 4 months ago

Sir, how to change time zone to India ? Also wi fi connection can not be established? Your suggestions please

0
RuudM2
RuudM2

Reply 3 months ago

I shall look at it in the source. But you can look at your self, the source is free.
but the NTP server delivers no info for summer or wintertime, it is done in these software, I don’t know how it works by you in India.

0
RuudM2
RuudM2

Tip 3 months ago

On my request and design, there are also mini displays deliverable.
now also free to order! They are pin compatible!
deliverable in two versions, with 2 and 3 displays.
they are working nice and compatible with the greater versions.
let me see the results......
see:
http://s.aliexpress.com/nQbIRNbM

see on the picture the difference in size.

6B306ACA-2CF6-4A6C-884E-B1ECC5492B93.jpegAF78DD78-77B8-405B-AE93-DFA1530AA201.jpeg20B406D4-62A4-4E51-BC4F-21B71AB56B37.jpeg4EE6B1C6-92D1-4591-9113-9AB28E16B3C9.jpeg2C71ECE1-1A35-4D14-A44F-712215338D9C.jpeg4691E1D5-B544-4D92-9ECF-0094CC85B027.jpeg
0
MeirMark_1
MeirMark_1

1 year ago

Hi.

I like your project very much and start to build one for me.

I see that you connected the MAX7219 to 3.3v but in the datasheet it can work on 4 to 5.5v

so it's out of spec.

Is it correct ?

0
ZaNgAbY
ZaNgAbY

Reply 1 year ago

Hi,

Since you are only writing TO the MAX7129 and not reading from it, what matters is that it sees your inputs correctly. On the datasheet the minimum input voltage for a high is spec'd at 3.5V. In reality it is probably less than that, and typically in the 1.5V range, but this is not guaranteed. However, for non-critical applications, it should work.

You can test what the actual threshold is. Put a potentiometer from +5V to GND with the wiper on the DIN input instead of a connection from the ESP8266 and write to the display. Vary the potentiometer setting to find the voltage that the MAX7129 clocks in as 1s instead of 0s. As long as the threshold is sufficiently below 3.3V (~2.3V or less is good, ~3.0V or higher is marginal), it should work fine.

0
MeirMark_1
MeirMark_1

Reply 1 year ago

I understand but you connect the vcc of the MAX to 3.3v and the minimum is 4v

0
RuudM2
RuudM2

Reply 3 months ago

I have a lot of displays max7219 working on 3.3 volt. They do it fine.

1
pks4510
pks4510

4 months ago

Sir,
How to set Indian Standard Time ? Thanks