IP Time Clock Part 2
So Lazy Old Geek (LOG) made an electronic clock:
https://www.instructables.com/id/IP-Time-Clock-part-1/
The advantages are that it’s pretty cheap, it gets the time off of the Internet, it adjusts for Daylight Savings Time and doesn’t require a battery to remember correct time.
I wanted to make a few improvements:
Wanted bigger numbers, it was hard for me to read the time.
I wanted to know the day of the Week, since I’m OLD it’s harder to remember.
And I wanted seconds displayed.
Design
The Clock design is basically the same as the first one. I decided to divide it into two different PCBs, the base and 6 Digit display.
The MAX7219 can drive up to 8 seven segments so I used six for the clock and one for the day of the week. Instead of a seven segment, I used individual LEDs for the day of the week. See schematics.
For the Day of the Week, I bought a pill minder that has seven containers. See picture.
I cut off the covers, painted the interiors and installed an LED in each pocket.
Problem: Make day visible.
Solution: Well, I tried a lot of different ideas. I printed out a strip with three letter abbreviations on a transparency, tried reverse (clear letters on dark background). Didn’t work very well. Finally, I tried single letters on white paper. Works pretty good.
Eagle Cadsoft files are zipped.
Downloads
Problems
Well, I used this in bedroom for a while. In the middle of the night, the thing I didn’t like about it was the seconds changing every second.
However, I wanted the seconds sometimes. This is rather dumb, but when I get up, I like to gargle and to gargle for 30 seconds. (Actually, this was probably from a "Listerine" commercial).
Solution: Well, the solution wasn’t too bad. I set up the software Sketch so the seconds would be lit only when in the A.M. until about when I went to sleep.
Here is some of the added code:
// 0 is undefined, 1 is Sunday JPF, JPE, JPB, JPA, JPD, JPC, JPG
byte DayOfWeek[]= {
B00000000, B00000010, B00000100, B00100000, B01000000, B00001000, B00010000, B00000001
};
if ((hour() >= 6) && (hour() < 23)){
lc.setDigit(0,4,int(second()/10),false);
lc.setDigit(0,5,(second() % 10),false);
}
lc.setRow(0,6, DayOfWeek[weekday()]);
Problem: I downloaded the latest Arduino environment (1.6.7 at the time) and tried to load the sketch. It wouldn’t load.
Solution: Well, I had recently restored a laptop so I load Arduino 1.6.5.
Went to this website
https://github.com/esp8266/Arduino
and followed the instructions
Start Arduino and open Preferences window. Enter http://arduino.esp8266.com/stable/package_esp8266... into Additional Board Manager URLs field. You can add multiple URLs, separating them with commas. Open Boards Manager from Tools > Board menu and install esp8266 platform (and don't forget to select your ESP8266 board from Tools > Board menu after installation).
Also added: TimeMaster.zip and LEDControl-1.0.6.zip
Open LEDcontrol.h with Notepad++
Change: #include <avr/pgmspace.h> to
#include <pgmspace.h>
(I don't know why I had to do this, but it worked)
To load the Sketch to the ESP8266, see the other Instructable.
Sketch is zipped.
Clock works pretty good.