- Mon Aug 29, 2016 9:30 pm#54102
New meters came today, should look great, slightly larger. Will have 3 for final design. Made the seconds label for this one:
After getting the race car ready, I'll be making a nice wood cabinet for my new clock this weekend. Can't wait to place it front and center in the living room, I'm sure my wife will love it almost as much as the race car.
- Tue Aug 30, 2016 7:29 pm#54143
wow gotta see that sucker in action looks pretty nifty but the end result I am curious on kinda retro looking not quite steam punk but electronic punk :P
- Tue Aug 30, 2016 8:44 pm#54145
I finally put the nodemcu on a protoboard and soldered everything up with trim pots. What a huge difference in accuracy. Extremely simple PCB layout, protoboard took about 15 minutes to make.
Here are some pictures:
Updated code with bug fixes:
Code: Select all'******************************************************* '* Analog Panel Meter Clock * '* by Russ McIntire, 8/31/16 * '* D0 = Hours * '* D1 = Minutes * '* D2 = Seconds * '* D4 = varies intensity to show clock running * '* * '* Shows hours/minutes/seconds on 3 panel displays * '* Allows Timezone and DST settings from webpage * '* Requires Internet connection for NTP time retrieval * '* Sends UDP broadcast of current time via UDP * '* Can update UDP Port in settings, default is 5001 * '******************************************************* memclear
'Get DST and Timezone info from memory DST = read.val(DaylightSavings) timezone = read.val(TZ) udpportval = read.val(UdpPort)
if DST = 1 then tz = timezone + 1 else tz = timezone endif
if udpportval = 0 then udpportval = 5001 udpbegin udpportval
'Daily NTP refresh at 2:00 AM if ((hour=2) and (min=0) and (sec>0) and (sec<5) and (M="AM")) then timesetup(tz,DST) 'Need to figure out what is wrong with DST delay 5000 endif
gosub [udptimer] wait
[timezone_update] 'Persist timezone information and UDPPort write(DaylightSavings,str(DST)) write(TZ,str(timezone))
if DST = 1 then tz = timezone + 1 else tz = timezone endif
timesetup(tz,DST) delay 5000
'serialprintln "Timezone Updated" 'serialprintln "The Updated time is: " 'serialprintln time("hour:min")
[udptimer] 'Send UDP broadcast message out for current time every 30 seconds udptimer = udptimer + 1 io(pwo,d4,1024-udptimer*273) 'vary d4 intensity to show clock operating, can comment out if desired if udptimer > 30 then if (M = "PM" and hour = 0) then hour = 12 ct = str(hour)&":"&time("min:sec")&" "&M udpwrite broadcastaddr, 5001, ct udptimer = 0 endif
'Check to see if Timezone or DST was updated if updated = 1 then updatetimer = updatetimer + 1 if updatetimer > 6 then uvsr = "Running..." updated = 0 updatetimer = 0 returngui endif endif return
This weekend I'll be making an enclosure. It shall be displayed prominently in our living room, at least until my wife decides it needs to move...
Time for another beer, this one celebratory for first phase complete, with a video to prove it:
- Wed Aug 31, 2016 5:40 pm#54207
May need to make a 4 meter version that has: Hour and Minute Temp and Humidity
I'll miss seconds but that combo is probably worthwhile. Could even have an LED that indicates whether the temp/humidity is indoor or outdoor as it reads over wifi from a remote sensor. Perhaps another two meters to show wind speed and direction (manometer and a weather vane).
OK, need to make the wood case for my current contraption first.