Introduction: Outfit Forecast
We don't need to know the temperature and condition of the weather to enjoy our time outdoors, but we do need to dress accord to it. Outfit Forecast is an internet of things display that process weather data and outputs the appropriate attire.
Step 1: Collect Materials
Solder, Soldering Iron, Wire Strippers, Solid Core Wire
Drill press, Table Saw, Sandpaper, E6000 (or equivalent glue), Dry Wall Anchors
Wood 1x (16" x 6" x 0.75") 1x (16" x 6" x 0.125")
Acrylic 4x (2.5" diameter x 1/8" thick)
Additional (optional) Equipment:
Step 2: Construct Display
I have attached a 3dm (Rhino) file to this page that contains a model of the display shown in the photos. However, in the case that you do not have Rhino, I will briefly describe what I considered when design this form so that you can make informed decisions when designing and constructing your own.
I drilled a 2.5" diameter hole about 1/2" into the wooden board and then drill a through hole, 2" in diameter, at the same center point as the larger hole. This allows for the 1/8" acrylic circles to rest in the larger hole without falling out the front. This detail also provides a recessed pocket for the LED to be placed into.
Disclaimer: The code provided in this tutorial does not work with all 4 LED outputs yet. The umbrella and sunglasses LEDs are linked to the condition of the weather (e.g."rainy" or "sunny"). At the moment, the code is only capable of processing temperature (integer) data. If you'd like to make a display for two LEDs, adjust the display size accordingly. Or, you could replace the umbrella and sunglasses with two other temperature related indicators and adjust the code provided later.
Step 3: Adafruit IO & ESP8266
Adafruit does a killer job creating tutorial videos so I'm not going to try and reinvent the wheel. That said, here are two tutorials that will get you acquainted with Adafruit's new IO platform. The IO serves as the middle man between your electronics and your data source.
Next, solder, connect and test you ESP8266 using this Adafruit tutorial:
This next tutorial will connect a feed to your ESP using a dashboard in order to light an LED.
Step 4: IFTT
The link below will get you familiar with IFTTT and how to connect it to Adafruit IO. For our purposes, you need only concern yourself with the section regarding IFTTT.
Once you have that set up and understood, go ahead and make the recipes shown in one of the photos found in this section. To create these recipes, click "my recipes" in the top menu bar, then "create recipe", then "this", then type "weather" into the text box and click the weather icon that matches the one shown in the photo. The "that" portion the recipe will be Adafruit. The rest should be self explanatory.
NOTE: You need to make a feed in Adafruit IO for each of your recipes. The feeds will collect the data received by the IFTTT recipes that you make. Make their names obvious and simple. I named mine: "highTemp", "highTempNull", "lowTemp", and "lowTempNull". You will be referencing these feeds by name later in your Arduino code. Also, create a slider dashboard for each of your feeds. This will allow you to test your code later on. Photos depicting this process are also included here.
Step 5: Mount Electronics
- Take your thin wooden board and drill two small holes (one for each LED lead) where the center of the acrylic circles will be once this thin board is mounted onto the thicker board.
- Stick the bread board on the back of the thin board and measure the length of wire needed to connect the LEDs to the bread board from the holes that you just drilled.
- Pass the LEDs through the holes and solder the wires onto them.
- Run a wire from ground on your ESP to the negative rail on your bread board.
- Place the positive leads into the appropriate pin on your ESP (you will reference your code later to identify which pin).
Disclaimer: I have not wired my DC barrel jack yet, but I have attached a photo of the proper wiring from a tutorial on Adafruit. And, this portion of the ESP8266 tutorial describes how to connect it to an external power source.
Step 6: Code
I've attached the Outfit Forecast code and the code from the Digital Out tutorial mentioned earlier. These two codes are very similar.
Each LED in the Outfit forecast code is linked to two feeds. One feed turns the LED on when the threshold temperature for a display icon is reached and the other feed turns the LED off then the temperature crosses back over that threshold. That is the major difference between the two codes.
Step 7: Mount Display
There are probably a million different ways to get the display mounted onto your wall. I will not go into detail on how I mounted my display. I will say, however, that the hooks shown in the photos here were helpful in getting the back of the display far enough from the wall so that the wires on the back, connecting the LEDs to the bread board were not disturbed.
Best of luck on your Outfit Forecast! I will be updating this post once I have the external power connected to the ESP and the code worked out to process the weather conditions for the umbrella and sunglasses portion of the display.