Introduction: Weather Forecasting Coat Hooks

About: Specializing in sewing, soldering, and snacking.

When running out the door I often forget to check my phone for the forecast. I hastily make a decision and end up caught in the rain or over dressing for the hot afternoon. With the forecasting coat hooks, the weather can be taken in by just a glance. The dials tell you the high and low temperature of the day, as well as the current temp, so you can accurately judge what layers to put on.

It also tells you if it will rain, snow, be cloudy, clear and sunny, misty or if there is thunder on the horizon. Through found film slides, the image paired with the weather condition lights up, adding a colorful and artsy feel to the project.

Step 1: Gather Materials


[1] 9" x 36" x 3/4" plank of wood

[2] 1 3/4" x 36" x 3/4" pieces of wood

[1] 8" x 8" piece of 1/4" thick plywood

Hardware and More

[4] wall mount coat hooks - you could fit 5 if you do not choose to use a bar drawer handle.

[1] drawer handle that has enough room to slip ties and scarves through when screwed in.

[4] keyhole hanging handware

[4] small metal L braces

[handful] of 1/2" - 3/4" length wood screws, all bought hardware should come with matching mounting screws.

[3] temperature gauges for cooking

[1] 8" x 7" 1/8" thick frosted clear acrylic

[1] 4" x 4" scrap of 1/8" cardboard

[3] 4-40 machine screws 1 1/4" long

[1] tube of 5 Minute Epoxy

[1] piece of 8.5" x 11" paper or scrap material to laser cut a template from

wood stain (optional)

[10] found film slides - I came across mine at one of my favorite places, S.C.R.A.P. in San Francisco. I chose pictures that represented the types of weather forecasts.

[1] small container of wood stain

[1] brush or sponge for applying wood stain

[1] shop rag for wiping off stain


[1] Edison with breakout board

[1] perf board

[3] standard servos

[1] 60 per meter white LED strip

[10] NPN transistors (2N2222)

[10] 1K Ohm resistors

[2] toggle switches

[8] AAA batteries

[1] 8 AAA battery holder

[4] AA batteries

[1] 4 AA battery holder

[1] Adafruit servo shield

[1] 220 uF capacitor

hookup wire


Metal shears with pointed ends

Access to a 3d printer

Access to a laser cutter - you could probably get away without one


Saw bit that matches the diameter of the temp gauges, mine was 1 3/4" in diameter

1/2" drill bit or another larger size may do also

Soldering iron

Pliers, wire strippers, angled cutters



Step 2: Take Apart Temperature Gauges

This step may take a bit of fiddling with. The temperature probe can be removed from the gauge either using some metal shears or by bending it back and forth enough to break it off. Once it's broken off there will be a thin wire, snip that to completely remove the probe. There will be a hole left in the middle.

Put the tip of the metal shears in the hole far enough so you can start snipping through the metal backing. Go snip-by-snip towards the perimeter of the gauge. Be careful! The metal is very sharp once cut. Wear some protective gloves if you have them.

Once you get to the perimeter, continue to snip around the outer edge. The goal is to snip enough of the back off so the glass dome and face plate can be removed. Keep snipping until all that is left is a thin metal ring around the glass front and you can take the gauge apart.

Carefully take the red arrow out, this is going to be reused in the project. Salvage the clear dome and the metal ring and put aside.

Step 3: Cut Template

Download the template and cut out. I cut mine out of acrylic but you can use a piece of paper all the same. This is the layout of the film slides. You can lay them out any way you choose, keep in mind that there will be lights with wires hanging from each rectangle.

Step 4: Plan Layout

Place the hardware, three rings from the dials and the slide template on the wooden piece and decide where they look good.

Use a ruler and a pencil to mark the center of the dials and where each screw hole on the hardware hits. Afterwards, mark the frame placement by tracing the inside of each rectangular window of the stencil.

Step 5: Drill Gauge Holes

Clamp down the piece of wood and fit your drill with the hole saw bit. You want to bit to be a little smaller than gauge's diameter, rather than a little bigger.

Put the middle of the drill bit on the center mark and start drilling. The hole saw takes a little while to get to the other side. Once it does it will kick back a little, so brace yourself for that.

After the holes are cut, fit a Dremel with a sanding band and use it to smooth the edges. Grab the metal ring and glass dome and see how it fits. If the hole is a little smaller than the hardware sand evenly inside the perimeter 3/8" in from the front plane. Do this until the hardware fits snugly.

Step 6: Stain Wood (Optional)

To match the dark hardware, I decided to darken the wood a bit and bring the grain out. Lay out some paper on your work table to protect the surface. Do a light sanding of the surfaces that are going to be stained. To test how dark you want the stain to be, use the back side or use a scrap of wood and swipe the stain in a few different places. Wipe the stain off one area after 5 minutes, one after 10, one after 15 and so on to see what timing produces the look you want.

Use a brush to apply stain to the wood. Let it sit for the decided amount of time (I let mine sit for 10 minutes) and wipe off in the direction of the grain.

Step 7: Drill Small Holes

The film slides light up depending on what the forecast is. The forecasting data is gathered from OpenWeatherMap's weather conditions. Each of these has a corresponding film slide.

  • Clear Sky
  • Light Rain
  • Rain
  • Scattered Clouds
  • Few Clouds
  • Cloudy
  • Cloudy Night
  • Mist
  • Thunder
  • Snow

The LEDs light up the slides from the back. To do this, a hole needs to be drilled that they can be threaded through. Use a 1/2" in diameter drill bit to create holes within each frame.

Step 8: Glue in Rings and Domes

Flip the piece of wood over so you can drop the metal ring in from the back. Put some gloves on to protect your hands from any epoxy, it's gnarly stuff.

Set a ring and be careful as to not jostle it while working. Use a tooth pick or a syringe to apply glue around where the ring meets the wood. Let dry completely.

Do the same with the glass dome, applying glue around where the glass meets the metal ring.

Step 9: 3D Print Slide Frames

Download and print the attached file, one frame for each film slide. These frames can be made from something else, such as wood. Feel free to improvise with the tools available and utilizing any skills you have. 3D printing was quick and accessible to me, so that's what I chose to go with.

Step 10: Laser Cut Acrylic

Download the file and laser cut the frosted acrylic, one for each film slide. Each of these rectangles should fit snugly in the frame when you pop them in from the back.

Settings for 120 Watt Epilog and 1/8" thick acrylic:

Speed - 50, Power - 80, Frequency - 5000

Step 11: Cut Plywood

There a two items to cut from the plywood, mounting boards the servos are screwed to and frames that frame the gauges to give them a more finished look. These can be cut using a bandsaw, but laser cutting will be quick and accurate.

From the 1/4" thick plywood cut:

[2] 7" x 1 1/2" strips

[3] gauge frames

Settings for a 120 Watt Epilog:

Speed - 15, Power - 65, Frequency - 500

Step 12: Build Slide Frames

Each film print needs to me removed from their slide frame. To do this, snip off one side of the frame with scissors and gently peel it apart.

To fit the film in the printed frames cut each side about 1/8" off.

Take each photo, place in a frame and press an acrylic backing in to lock it in place.

Step 13: Cut LEDs

When you look at a strip of LEDs you will notice metal contact pads and possibly some cut marks every one to three LEDs. These contact pads annotate where to cut the strip. For this project, cut 2 segments, a total of 6 LEDs for each slide frame from a 60 LED per meter strip.

If the strip is waterproof there will be a plastic casing over it. To remove it cut in to with a x-acto knife very carefully and peel off. Solder stranded ribbon wire to each contact and cover with heat shrink tubing. You may want to dab some hot glue between the wires to keep them apart from each other before applying the heat shrink tubing. Do this for all segments.

Once all the wires are soldered on line the inside of each frame with a segment. Use the adhesive back to do this, if it doesn't stick well adding some hot glue will do the trick.

Step 14: Install Frames

Thread a frame wire through each hole front-to-back and pull the wire through to the back. To secure each frame to the wood using the 5 Minute Epoxy. Use tape to secure each frame in place as the epoxy sets.

Step 15: Screw on Servo Mounts

Take the laser cut mounting boards and position them so a servo is set in the middle of each gauge window. There are holes on either side of the servos for screwing in, one side will be shorter than the other, so one board will need to be shifted over the opening more.

Once they are placed, screw the down using some wood screws.

Step 16: Assemble Gauges

Print Gauge Plate

- Download the attached dial designs and print.

- Cut 3 circles out of 1/8" thick cardboard, matching the size of the printed dial designs.

- Use a hole punch or die to cut a 3/8" in diameter hole in the middle of each circle.

- Make two pencil marks on the back of each circle that line up with the 0 and 100 mark of the gauge.

Attach Pointer

- Put the plate on the servos so the rotational shaft goes all the way through the middle hole with room so it can move freely.

- Take a 1 1/4" long 4-40 machine screw and start screwing it in the top of a servo. You want to screw it in enough so it's secure. Check the length by placing the servos on the mounting boards in place and checking to see if the screw hits the glass or not. When it looks like it's at a good place, screw in the other two to match in height.

- Grab the red pointers that were salvaged from when the gauges were taken apart and clip off any remaining post to even out the underneath. Mix up a little bit of the epoxy and let it sit for a minute or so to let it gel it up, this helps so it doesn't drip while applying.

- Dab some on the back of the pointer and set it on top of the screw. Balance it just right and let it set in place.

Step 17: Calibrate Servos

To run the servos with the Adafruit shield, download the library here and put it in your Arduino/libraries folder. Once the pointers are attached, 0 degrees needs to be set. Connect the servos to the shield, attach the battery supply and upload the example code that comes with the library called "servo". In this sketch you will find the servo minimum and maximum which is the pulse length out of 4096.

Adafruit has tutorial on how to do this, you can follow that instructions here.

Step 18: Install Servos

Now is the time to secure the servos to the mounting plates. Before placing the servos, find the middle horizontal line of each gauge window and mark in the back.

- Place the servos in and line up the pencil marks on the back of the cardboard plates with the marks around the windows. This makes lining up and balancing the gauge's horizon line easier. Do some visual checks to make sure it's straight.

- When it's placed, grab some E-6000 or any other strong glue that has a pointed nozzle and glue the cardboard plates in where it hits the wood. Also make sure the the screws with the pointers are lined up with the 0 mark, can move freely and do not hit the inside of the dome.

- Screw each servo into place using the screw holes provided by the packaging.

Step 19: Build Circuit

This circuit uses an Adafruit servo shield on top of the Edison Arduino dev board. In addition to the servos, there are 10 LED segments, that require 12 volts. The servos and the LEDs require a higher power than what the Edison can provide. A 6 volt supply is hooked straight into the sevo shield, I recommend using AAs which can have 3x as much current as AAAs. For the LEDs, I used 8 AAAs to keep things compact. Each segment draws 120 mA (0.12 Amps), only one segment will be lit at a time, so the 12 volt supply is also used to power the Edison.

So the LEDs can still be digitally controlled by the microcontroller, a NPN low amp transistor, such as the 2N2222 is used to gate the 12 volts when needed.

Mount Circuit

The circuits I build are done in a manner where I can remove the microcontroller if need be. Because you may not want or need to do this, you may want to mount or connect wires in a more permanent and streamlined way. For example, soldering wires to the servo shield instead of using female headers.

To mount the circuit I used 4-40 screws through the arduino dev board, screwed the nuts on the back, then epoxied the nuts to the back of the rack so I could screw and unscrew the microcontroller from it whenever I needed. The LED strips were soldered to the transistor circuit and the proto board was screwed in to place. After placement, the data lines to each digital pin, plus the +12V and ground were attached to the shield. The servos get their own 6 volt power with a switch in series to power it on and off. The 12 volt supply gets a on/off switch as well.

Fasten the battery holders with screws or double-sided industrial-strength foam. For further protection an enclosure box that the switches can be mounted to can be made easily with an laser cutter and using BoxMaker that generates a pattern with finger joints after you plug in a few measurements.

Step 20: Add Wood and Hanging Hardware

The hardware in the back is going to need some room so it doesn't hit the wall. This is what the 1 3/4" thick pieces of wood are for.

- Use the small L brackets to fix one piece along the top edge and one along the bottom edge.

- Screw three keyhole hangers into the top piece, one in the middle and the other two evenly spaced towards the corners.

Step 21: Upload Code

How it Works

The forecasting coat hooks get the weather information from This program works with any microcontroller that can be programmed using Arduino's IDE and that has WiFi capabilities. The program makes a HTTP request for data on a JSON page hosted on openweather's server. It then uses the TextFinder Arduino library to look for specific information, such as the current temperature, and stores it in a variable.

For this project, I am using Intel's Edison board, so I will go through the process of how to setup with this particular board.

To start, you will need to set up WiFi on your Edison and download the firmware if you haven't done that yet. Intel has greatly improved their "Getting Started" page for the Edison, you can now find clear steps on how to get up and running dependent on what OS you use: OS X, Windows or Linux. Intel also has a good community forum, with several moderators and users that are quick to help answer questions you may have.

To go straight to setting up WiFi, choose your OS on the getting started page and scroll down to the "connect your board to the internet" step.

Once you use the command "configure_edison --WiFi" in your command-line application, it enables WiFi connectivity upon boot up of the Edison. It takes what seems like forever, when you are testing code, to boot up, so don't be discouraged if your circuit doesn't jump to life as soon as you flip the switch.

Download theTextFinder library and put it in your Arduino/libraries folder. Restart the Arduino IDE and you should see it under Examples.

Download the Adafruit_PWMServoDriver library and put it in the same folder.

Using Adafruit_PWMServoDriver.h with Edison

Before the Edison version of Arduino can compile the code correctly, a file needs to be modded. The file to be edited is C:\arduino-1.5.3-Intel.1.0.4\libraries\AdafruitMotorShield\utility\Adafruit_PWMServoDriver.cpp

You can find a thread on Intel's forum here that goes through the edits, it's a small change. After you save the new .cpp file, close down Arduino and restart. Reopen the code and hit compile, it should be all be gravy.

Download the attached file and open it in Intel's Arduino IDE.

Connecting to the Network

There a couple things to change in the code so that it connects to your local network, your network name and password. You will find the lines that need to be changed near the top of the sketch.

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

Step 22: Hang Up, and Get the Forecast!

You will need 3 screws to hang your new coat hooks on. Use drywall anchors if you are unable to screw into a stud. A level will also come in handy to make sure your markings are parallel to the floor.

Switch on the power, wait for the Edison to boot up and watch the dials adjust to the current weather predictions!