Introduction: Warm Fire for the Winter, Cooling Waterfall for the Summer!
G'day!
Here's my take on a very minimalist yet lovable object, and once you turn the power on you will fill the room with the very convincing effect of a cozy fireplace or a refreshing waterfall!
the brightness and sound level are ajustable by moving your hand in the air, without even touching the lamp : the higher you go, the dimmer/quieter it becomes. The magic of infrared sensoring.
I kept only one physical button for power (long touch), and switching the mode FIRE / WATER (short touch). This button is capacitive, this mean that it can be anything as long as it is made of metal.
let's get started!
NOTE: in this project, the 2 sensors are made using phototransistors (look like a black LED) and not photoresistors (flat circle with a red zigzag line on it), those are completely different devices. Don't get confuse!
Also, I give some details about the wiring and program, but I assume that the user has at least enough knowledge in Arduino to be able to upload a sketch onto the board. If you have no idea what I am talking about, no panic, just google "how to upload a sketch to arduino" and you will have the (very easy) explanation on how to do so.
Supplies
- Addressable LED strip (WS2812, APA102...)
- wood for the base (heavy is good, I used a left over from my wood deck)
- 2 long planks of wood for the bar (light is preferable, I used a leftover of teak, 5mm thick)
- Milky acrylic board (1 or 2mm thick should do)
- arduino (smaller is better, I used NANO)
- DF player for arduino (with a micro SD card, 32GB max fat16 or fat32)
- a thin metal plate for the capacitive button (I used 0.5mm aluminium, but it is a pain to solder, copper tape is preferable)
- I used another part of the same metal plate for the top of the lamp.
- 2 pairs of IR LED/phototransistor for the 2 sensors (brightness and sound volume)
- a few wires
- high profile rubber pads (Y used a rubber bar I cut in 4 pieces, and I screwed it directly under the base)
- a small speaker, in the range of what the DF player can handle (max 3W)
- some small screws
- a glue gun
- resistors (1x47ohm for the LEDs,2x47k ohm for the phototransistors, 1x1k ohm for the DF player and one 500k to 2M ohms for the capacitive button)
- a broken out USB port PCB might be a good idea if you prefer a micro or type C USB instead of the native port of the arduino. I chose micro USB. not required.
- a few tools (you will need to piece holes, make grooves in the long wood planks, polish wood and metal and of course solder)
Step 1: Wiring
- sensing resistor goes between pins 10 & 11. Pin 11 is sensor pin that connects to the metal thing you want to use as a button. use a resistor between 500k and 2M ohms (it depends on your hardware, you will have to try different values to find what works best).
- RX and TX for the DFplayer are pin 2 and 3.
- pins 6 and 8 are connected to the data pin on the LED strips 1 and 2 respectively. + and - on the two strips go to USB +5 and GND respectively. You can use a fairly sizeable capacitor (arround 400uF) here for good design, not required though.
- The code is using A0 and A7 for the IR sensors (of course you can change that in the code). 2 resistors of 47k ohms are required (one for each sensor). The value of this resistor may depend on the phototransistor you use, you may need to try if it works well.
- 47ohm resistor for the IR LEDs in serie, - to GND and + to USB 5V.
It may seems a lot to put together, but all those systems taken one by one are very simple. If you are not familiar with wiring arduino stuff, think about all of this as independent elements. That's why I didn't upload a single picture with all the wiring all at once.
Step 2: First, Make It Work Without Building Anything Yet
Without the correct wiring and the working code on the arduino, you won't go anywhere. So your priority is to make everything work without even soldering yet (use solderless breadboards here).
The 3 files you will need are joined to this step : the 2 sound loops (wav) and the arduino file (.ino).
the DF player is very small, works very well but is a very primitive in it's interaction : it won't refer to the tracks by their file names, but the number attributed to them (I assume those numbers are given automatically in the order of upload onto the SD card). You will have 2 sounds effects that will loop : one for the fire, one for the water. I made those sounds myself using royalty free sound library and I took care of making seamless loops for both of those. Don't forget to format the SD card in the first place (fat16 or 32)! Then add ONLY those 2 files.
test the IR sensors, the LED strip, and for the capacitor switch, a simple metal wire will work for testing. To avoid unwanted trigger of a IR sensor, first you have to put your hand very close to it to let the system understand that the user is willing to interact, then put your hand to the desired distance, and wait here for 2 seconds for the system to register this new value.
You need to count the number of LEDs in your strip, and change the code accordingly, same thing for the type of LED strip you use. Those 2 lines of code are at the very begining of the code (line 12 and 13).
my values are:
#define CHIPSET WS2811
#define NUM_LEDS 64
Well, once everything works, let's prepare the wood and put everything together!
Quick note about the Infra Red sensors : they react to the IR emitted by the LEDs and then reflected back to the phototransistor by your hand. But the sun is also a source of IR, and a pretty strong one! The lamp may have some weird behavior if exposed to direct sunlight. To limit this, you can hide the Phototransistor into a tube (or a deep hole in the base). that will help a lot to cut those IR emitted from the sun.
Step 3: Assembly
About the speaker
I realized that if you put the speaker pointing right on the ground (with very little if not no space at all between the rim of the speaker and the ground), the sound is WAY better, louder (because now the whole ground is resounding!) and noticeably lower in pitch. You may need to do some trial and error to find your sweet spot, but for me the distance to the ground wasn't especially subtle to find to get a great sound. And use a foam double sided tape to give the speaker some flexibility and bounciness is also a good thing.
About the wooden side plates
You can groove the two wooden sides to slide the milky acrylic inside (that's what I did with the dremel accessory table thingy you can see in the attached pics). A little harder to make because you will need a tool for that, but it will allows you to keep rough edges on the acrylic plates (they will be hidden).
The other solution is using a helper plate bonded to the center of the inner face of the wooden walls. See the enclosed 3D for that. This is easier to make, but you will have to polish properly the edges of the acrylic plates.
About the base
Any square or rectangle piece of heavy wood will do. Thickness and size are up to you, but keep in mind that everything will have to go under it with, if possible, a bit of margin all around to not having all the stuff showing too much. You will have to make a hole at the location where you want the light bar to be in order to pass the wires for the LED strips. I secured the bottom of the light bar only with glue : It's not very strong, but still acceptable. If you are able to make properly a square hole to fit the light bar into it, it will be a lot stronger.
The IR sensors are just he tips of the LEDs and phototransistors close together, pointing upward. You just need to pierce holes for those to fit in from under the base. Secure those with glue gun.
For the foot I used a extruded bar of rubber, cut it to have 4 same length pieces, then just screwed on the bottom of the base in the corners.
About the circuit
Arrange the layout as you wish, depending on the size/shape of your base. The soldering required is minimal : solder only the pins you need on the arduino. Secure the PCB to the bottom side of the base using small screws or directly with glue gun. use the glue gun to secure the LEDs/phototransistors and all the wires to the bottom of the base as well.
The USB connector need a firm fastening to the base : screws will be good here.
Remaining details
Cut the acrylic plates the size you want, I let a small margin at the top for aesthetic purpose. Cut, polish and bend the top plate (0.2mm thick aluminium is perfect for this!) and prepare the metal plate you will use as the touch sensor. The touch sensor can be anywhere, and it can be anything, even a naked wire. You can be creative here.
Step 4: Enjoy
This is it, now let's enjoy the presence of a little bit of nature in your favorite room!
![Lamps and Lighting Contest](https://content.instructables.com/FON/Z0RP/KSHI86K8/FONZ0RPKSHI86K8.jpg?auto=webp&crop=1240%2C600&frame=1&width=320)
Participated in the
Lamps and Lighting Contest