Arduino / ESP LED Fireplace
There was a defunct fireplace in the house I rented, with no real option for a nice, cozy true fireplace. So I decided to make my own RGB LED fireplace, which gives a nice feeling simulating a real fire. Not as good as a real fire, but it does give a really similar cozy feeling.
You can make your own too, it is an easy beginner project you can do with only a few parts and an Arduino or ESP8266 module. Both modules work well, the reason why I choose ESP8266 is that this also gives me the opportunity to remote control the fireplace, turn it on/off from my home automation system. The whole project is quite inexpensive, and it doesn't require a lot of time either.
Materials needed:
WS2812B RGB LED strip (1 meter, 60 LEDs/meter) - eBay cca. 7 USD
NodeMCU ESP8266 ESP-12 (3.3v) or Arduino Nano V3.0 (5V) module (If you want WiFi, choose the NodeMCU) - cca. 4-7 USD
1 x Capacitor (1000 uF, 6.3V+) to stabilize the current spikes
White greased baking paper
Some wood board for the base (or cardboard)
USB cable, wall power adapter (1 A or more)
Also, you will need some soldering iron, tools and wires.
Preparing the Base
First of all, you will need to cut the 1 meter RGB LED strip in half and wire the pins together (GND to GND, D to D, +5V to +5V). This will give you a 50 cm long double strip.
Now you can take some wood and cut it to size, it should be just slightly longer than the LED strip and just a bit more wide. You can use any other material, but I think wood looks better.
Secure only the ends of the RGB LED strip to the board with scotch tape or (hot) glue.
Adding the Flames
Take the greased paper and tear off a piece (about 10-15 centimeters wide), wrinkle it a bit and then slide it under the LED strip, fold it up and around, so it makes a "flame". The goal is to build it above the LEDs, so the light from the LEDs gets diffused on the paper.
You can try to just secure it by folding the sides. You won't be able to use scotch tape or regular glue to hold it together, because it's greased/non-stick paper. You can tie it together with some transparent thread using a needle.
Once you have done the first flame, continue building all the subsequent flames, slightly overlapping the base with the previous one.
Wiring It Up
Wiring up the module (NodeMCU) to the LED strip is easy, but you will need to do some soldering to separate out the wires from the LED strip. Also, make sure to add a 1000 uF 6.3V(or more) capacitor between the + and GND, close to the LED strip, this will help stabilize the power.
Wiring is:
- Connect +5V (USB VCC) from NodeMCU to the LED strip +5V
- Connect GND from NodeMCU to LED strip GND
- Connect pin marked "D7" from NodeMCU to "D" on the LED strip
If you are using Arduino, you can connect any digital pin (D2-D13) to the LED strip, just make sure to match it in the source code.
Uploading the Code
You have to use to Arduino IDE and make sure to install also the ESP8266 board support:
https://github.com/esp8266/Arduino
Source code is available on the github page:
https://github.com/john4242/ledfireplace
Compile and upload the code to the NodeMCU module, and that's it! It will start blinking the LEDs.
There's one special note to the code: the power consumption of the current code was measured to be around 600-700 mA, which is above the normal 500 mA USB ports like to give. For this reason, for the first 1 minute, it will only power part of the LEDs (around a third), and then it will go and light all of it. If you are using a wall power adapter, make sure it's can support at least 1 A and not the cheapest type.
Because the source code is available, feel free also to experiment with colors, timings.
Enjoy!