WiFi Clock

A WiFi clock who also displays temperature & weather if it turns bad !

Public Chat
Similar projects worth following
This project is a clock and a free formed circuit sculpture. This was heavily inspired by Mohit Bhoite’s work, I’m a huge fan and I wanted to build something like what he makes for myself.

The second guideline was using brass and walnut, because I love the color of this wood, and how it contrasts with brass.

And the third one was to have fun with a WiFi processor, and tried some other component, which are not very complicated, but I had never had the opportunity to play with them.

It’s a glue up of a 3 x 2,5 inch by a 1/4” piece, with 1/4" square strip, to hide the end grain. Another row of 1/4 strip is used to make a housing for the connector and hide the connection to the brass frame.

Then some holes and a coat of flat varnish, and that’s it!

As I said, my goals was to use a wifi processor, play with an alphanumeric display, and add some feature like a proximity sensor, a light sensor, RGB led … for the first time !

I choose to use the following components to keep the assembly easy, and the final sculpture simple and compact, it could be contained inside a 3-inch cube.

So, the brain is an Adafruit Feather HUZZAH who features an ESP8266 wifi processor.  Very easy to use, well designed board! I only remove the bulky JST connector, as I will never use a battery with this board! (but didn't throw it away, because I said that I will never use it, I will need it someday ..)

Here the product page on adafruit site : HUZZAH with ESP8266

The display is also an Adafruit Feather, the Featherwing display with 14 seg displays. (I love the ease of use of the adafruit I2C backpack, and anyway, there’s not enough GPIO on the processor ..) A 14 seg display is not necessary to this project, but as all the component, I took the opportunity to play with it for the first time! 

Here is the product page : Quad Alphanumeric FeatherWing Display 

The proximity sensor is a Sharp sensor, on a Polulu board. It works perfectly, but is quite expensive .. I use it as a contactless button, to switch between information to display. It is connected to an interrupt pin, and made me discover that the pin 16 can't handle an interrupt (guess on which pin I firstly connected the sensor output !? ) As suggested on the adafruit product page, I added a big capacitor on his power, because I experience some trouble using it. 

Here is the sensor datasheet : GP2Y0D805Z0F

A light sensor is used to dim the aplhanum brightness regarding to the ambient light. It is connected to the Analog input of the ESP 8266. But as the input have a range of 0-1 V, on 10 bit resolution, that's why I made this voltage divider. (Some board using this processor have an internal circuit to already divide the tension, but not the adafruit) 

Here is the datasheet of the component I use : HW5P-1 

(this one is not a light dependant resistor, so it needs the pull down resistor, but you can find some sensor who looks the same, but are only resistor)

And eventually, an RGB led, because why not ! I've never play with them before, and it's quite challenging to get the color you want ... I ended by making a test code where I can move each color value to get the color I wanted !

The sculpture is powered by a micro usb connector nested into the base.

The schematic displays only the necessary connection, not the real one, as the 3 led pins goes thru the Feather 7 seg pin to connect the processor to the component. But as 90% of the external pins are not connected, that made my like easier !

All the components are connected using 0.8mm brass rod, who act as the electric circuit and as a structure. I used K&S engineered brass, it's not on the cheap side, but sooo much easy to use. I believe I use something like 4 or 5 rod of 30 cm long on this project (so an entire pack, who cost around 3 CAD).

Let's do a quick talk about the tools I used : 

  • a good soldering station (I use a Weller WE 1010NA, it's the brand workhorse)
  • lead free solder wire
  • flux (the most useful thing here !)
  • solder wick
  • flat pliers & flush cutters, again I use a tool recommended by Mohit, a Xuron flush cutter
  • something to measure precisely – I use a caliper – (to avoid ending up with a crooked sculpture ..)
  • tweezers … 
  • All sort of clamping devices, like Kapton tape (at least something that will not melt during soldering). I recently began to use 123 blocks as squares or to clamp my parts, it’s...
Read more »

  • 1 × Adafruit Feather HUZZAH with ESP8266
  • 1 × Adafruit 0.54" Quad Alphanumeric FeatherWing Display it includes Alphanum display
  • 1 × Sharp GP2Y0D805Z0F Digital Distance Sensor with Pololu Carrier - 0.5 cm to 5 cm
  • 1 × USB Micro-B Breakout Board
  • 1 × Photo Transistor Light Sensor

View all 12 components

  • Code update 1.0

    romaindurocher11/02/2020 at 02:05 0 comments

    First code update to fix minor stuff.

    First, I add a function to display something in case Wifi connexion were lost. I add a 15s timeout at startup and check it every 5s in main loop.

    if(WiFi.status() != WL_CONNECTED){
    void whoops(){
        alpha4.writeDigitAscii(1, 'N');
        alpha4.writeDigitAscii(2, 'C');

    Second, I changed the OpenWeather API call to their OneCall API (See documentation here ), because the Forecast API I used had only 3h forecast step, which is somewhat not so reliable .. OneCall have 1h step, which is much better for me ! 

    (To be clear, when you ask the API, they don't answer the forecast for the next 3h, but the forecast for a predetermined 3h period of time, for exemple 0h to 3h, 3h to 6h, 6h to ... If there are rain for 10 minute during this 3h priod of time, the clock will display "rain" for 3h ...)

    Github code is updated, I also add location variables in API call.

View project log

Enjoy this project?



tuban96 wrote 07/23/2021 at 14:39 point

I am building one of these and see that Dark Sky is ending. Do you have an alternative solution?

  Are you sure? yes | no

romaindurocher wrote 07/23/2021 at 15:12 point

I'm sorry, but what is Dark Sky !?

  Are you sure? yes | no

tuban96 wrote 07/23/2021 at 15:21 point

Sorry. It's my first time with Arduino et al. Trying to verify your code. Got an error about missing _apiKey. Google bunny trail led me to Dark Sky weather API going away which led to openweathermap, that I then saw you are using after I left the comment (sorry). Still working on getting the code to verify.

After tracking some errors, I found that the ESP8266 core was installed at version 3.0.1 and others having similar error reverted to 2.74. After I did this, the verify errors went away :)

  Are you sure? yes | no

scubabear wrote 11/02/2020 at 00:24 point

hey where did you get the tiny brass?  Was it rod stock or tube stock?  Your work is exquisite!

  Are you sure? yes | no

romaindurocher wrote 11/02/2020 at 01:28 point

Thank you Alan !
It was rod, but it is also available as tube (but more expensive), I bought them in scale model shop.
Look for K&S (American brand) or Albion alloy (Europeen brand) products !
(There are maybe more, but that's the only 2 I know !)

  Are you sure? yes | no

Mike Szczys wrote 10/26/2020 at 16:57 point

So clean, looks like an engineering drawing ;-)

Fantastic photos on this one!

  Are you sure? yes | no

romaindurocher wrote 10/28/2020 at 03:17 point

Thank you very much Mike !
Did my best to make it appealing ! :) 

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates