My wife thought it would be wonderful to have candles in the garage door windows - well, a couple 3d prints and a WeMOS later - bam, happy wife!!
UPDATED: I've added time server calls and a simple internal time clock using ticks to turn the lights on and off automatically, check my GitHub for the latest code. https://github.com/jeremyproffitt/esp8266-fastled-...
I choose the wemos because I worked with the Jason's Esp8266 + FastLED project which makes a great base for building a web enabled LED project. His Github is here: https://github.com/jasoncoon/esp8266-fastled-webse...
You'll also need some WS8211 / 8212 LED's, either in a strand to cut up (like this https://www.amazon.com/gp/product/B00OH05D3I/ref=o...) or individually.
Solder skills are a must as well. The code is set up for WS8212 LED's attached to the D4 pin of the WEMOS (which Fast LED calls pin 2), this allows you to hook up 5v, GND and data in 3 sequential pins, making for quick work.
Step 1: 3d Print Parts
Print the candle holders preferably in white and the flames in clear plastic. I printed them both 20% infill and on draft mode. It won't really matter how they look, just that they are stable. If you have trouble printing multiple flames at once, you may need to print them one at a time - because the base is so little area touching the bed of the printer - it printed best for me one at a time with plenty of glue stick.
Should you want to adjust the models, they are available in Tinkercad
Candle Stick - https://tinkercad.com/things/jfS9yRUbOZ2
Step 2: Ready Your Wemos
This is my fork of Jason's ESP8266 - Fast LED Server, I've added FIRE to the list, which I thought was sential for candles https://github.com/jeremyproffitt/esp8266-fastled-...
You'll want to add your wifi settings as needed, compile and program it into your favorite ESP8266 - I'm partial to the WeMOS but any will work. Make sure to push the web files using the 8266 Sketch Data Upload, which is a separate step from programming the ESP8266.
These settings control the LED's, they are pretty standard for FastLED
//Define RGB LED configuration
#define DATA_PIN 2 // for Huzzah: Pins w/o special function: #4, #5, #12, #13, #14; // #16 does not work :( #define LED_TYPE WS2812 #define COLOR_ORDER RGB #define NUM_LEDS 8
These settings are new and control the automatic turn on/off timer.
#define UTCAdj -5 //This is the adjustment from UTC time, this wil change depending on your time zone and weather it's daylight savings time.
//For EST (New York / Eastern Standard Time) when it is not in Daylight savings time, like around christmas, the value is -5, PST (California) would be -8, you can work it out from there. #define TURN_ON_HOUR 17 //Hour (from 0 to 23) to activate the lights, this is in military time, so 5PM would be 17 (5 + 12) #define TURN_OFF_HOUR 23 //Hour (from 0 to 23) to deactivate the lights #define POWER_ON_STATE 0 //0 means when the ESP8266 is powered on, the lights stay off, 1 means they turn on. THis state will persist until the next hour rolls over, then the schedule above is honored.
Step 3: Installation
Install your device using small bits of rubber padding in between the window frame and the candle stick, this allows them to keep from rotating or shifting. Also, I used zip ties to take up the slack between the candles. I used a rechargeable battery pack for now and will soon add automatic turn on and off based on time to the code to help manage power as well.
The video shows a great overview of the installation inside the garage.
Step 4: Relax and Enjoy
That's it! You're done!