Introduction: Wooden Neopixel Hexagon
If you want to light up your boring room in a fun way (or just want to create the right atmosphere) this is the project for you. I've already implemented a discreet amount of animations and you can write your own using the Arduino language. Also, switching between the animations it's fast and easy. Once the assembly is done all you'll have to do is to connect to the wifi of The nodeMCU, paste in the browser the IP address of the board and you'll see all the controls (i have put the screenshot up there).
Without going any further, let's begin.
Supplies
So, this are the materials you'll need:
- wooden boards (preferably light)
- "L" shaped aluminium profiles
- a NodeMcu (or another IoT board ) NodeMCU Banggood
- at least 1 meter of NeoPixel (or similar, i got the WS2812) WS2812 Banggood
- a 5V 5A Power Supply (5A will do for 60 leds, to know more go to the 6th step) Power Supply Banggood
- wires, solder, heat shrink tubing (or electrical tape)
- screws, metal brackets, spacers,
- vinyl glue for wood
- straw oil
- hot glue
- wall plugs
and there are the tools:
- Mitre saw / jigsaw / tablesaw (something to cut wood and the aluminium profiles)
- screwdriver (preferably electric)
- soldering iron
- brush
- pliers
- hot glue gun
- Arduino IDE installed on your pc
- FastLED library installed on your arduino IDE FastLED Github
- some WiFi Libraries installed on your arduino IDE (including the version for esp8266 chipsets)
Step 1: The Cutting
From a Wood board of 200cm x 9cm x 1,8cm cut out six trapeziums, that will be the hexagon's segments, as in figure (the angle between the base and the oblique side is 60 degrees). As you can see i also marked with a 20cm long line roughly at 3 cm from the bigger base of the trapezium the place were the led strip is going to be put.
Successively from the "L" shaped aluminium profiles cut out six 20 cm long segments. Remember to angle the cut at 60 degrees since they are going to form another hexagon on the back of the wooden one. Use the drill to make two holes on the base of the aluminium profiles.
To check if i have cut them right i put them as in the last picture.
Step 2: Assembling the Segments
Once the cutting is complete sand down were you have cut, remove all the sawdust with a cloth, open the vinavil glue and put it on the oblique sides of the wooden segments. Apply the glue on both sides, put them together, hold them still with some clamps (i had to improvise some very experimental solutions, up in the picture, since two of the clamps were broken ) and remove the excess where it flows out.
Let it sit for at least 24 hours.
The day after it should look like in the last picture (or better).
Step 3: Folding the Brackets
In the meanwhile take two pliers and use them to fold one end of two metal brackets until the shape (seen by profile) becomes more like a "p". Then take another metal bracket and fold it to make a "J"
The first two folded pieces (the "p" shaped ones) of metal will be used as spacers to make sure the hexagon will be parallel to the wall and to avoid scratching it with the aluminium profiles. The "J" shaped piece, instead, will be the hook attached to the wall.
Step 4: First Assembly
The day after remove all the clamps, on the back of it there should still be the sketch for all the cutting, use the line you drew parallel to the bigger base of the segment (the one specified in the first step ) as a guide for the positioning of the aluminium profiles. Then use a pencil to mark on the wood the holes you made on the profile.
Repeat the process for all the segments.
Drill the holes (pay attention not going from side to side). Repeat the process with the bent metal brackets.
In the 3rd picture you can see that pierced piece of metal, its where the hook (the one you'll put on the wall) will attach. to build this joint i used 4 washers, 2 screws and that piece of metal. I have marked where the holes should fall on the wood (to get the piece of metal parallel to the segment of the hexagon), drilled them out, positioned 2 washers on top of them, positioned the piece of metal on top of the washers and screwed it in place.
Then change the tip to your drill and make a hole in the wall where you want to put the Hexagon; put a wall plug in the hole; take the "J" shaped metal bracket use a screw to fix it where you made the hole. Ensure that the bracket is perfectly vertical before tightening (like in the last picture).
Hang the hexagon in place to see how it fits. Successively dismantle everything for the next step.
Step 5: Sanding and Oiling
First of all sand it down a first time with rough sandpaper. Then check if there are gaps between the wooden segments and eventually stuff it with some wood filler.
Now it's time to repetitively sand it, every time with a finer paper, until it's nice and smooth.
After that put on some gloves and use a brush to spread the straw oil on the wood; once you have done, remove the oil in eccess with a dry and clean coat. Wait at least 24h and then reassemble it.
Step 6: The Electronic Part
First of all measure the complessive length of the strip by wrapping it around the aluminium profiles mounted on the rear of the Hexagon, cut the strip to length. Download the .ino file from this Instructable so that it can be opened end edited. Count the number of leds on the strip, and then substitute it to mine at the 11th line of code. Since you are going to use a power supply you will need to make some calculations to know how much power the strip will drain. The thing is simple, since every led needs 60 mA at full brightness, multiply 0.06A for the number of leds and add how much power does your IoT board needs at full speed (to have some margin).
For example in my case (73 leds, NodeMCU at 160mA)---> (73 * 0.06mA) + 160mA = 4,54 A. Rougly 5A, but since with a .5A margin of error i didn't feel safe i took the bigger size. I used a 8A power supply, and everything runs smoothly.
Next, make the connections as in the scheme of the first picture (Remember to connect all grounds together or you'll get strange behaviors from your leds) connect your board and your strip directly to 5V and GND of the power supply (unless your board needs less than 5V, in that case you can choose to use another power source or use a buck converter between the board and the power supply) and connect the Data In line of your strip (you can't get it wrong, it's labeled "din" or "DI" on the strip's pcb) to a digital pin of the board (i used D3) then report t on the code at line twelve.
To upload the program on your board connect it via USB to your PC, on the arduino software choose the right port ( go to Tools -> Port -> your_Port) and the right board (go to Tools -> Board -> your_IoT_board), click on the Upload button (the one with the arrow), unplug the board.
Now plug in the power supply and wait for the initial animation.
Attachments
Step 7: Final Assembly
The final assembly is fairly simple, expose the adesive on the back of the strip by peeling off the protective paper-like layer and carefully place it on the aluminum profile (facing outwards). Then use some hot glue to fix the two ends and secure the cables inside the perimeter so that they won't produce any shadow, be careful not to put any hot glue over the leds. To secure the board you could either use hot glue or pin it to the wood by carefully passing two screws to in the holes of the boards (if yours has any), pay attention not to tighten it up too much.
now hang it to the hook you put on the wall, power it up and you are done.
Step 8: Usage
First of all, what the code does is creating an autonomous WiFi disconnected from Internet. To control the lamp you need to log in the network created by the board using the password you've found or changed in the code.
Then open the browser and navigate at the ip address of the board (the default is 69.69.4.20 but you can change it in the program). If you want you can save the address on the home of your phone (as i did) or on the favorites for easy access.
Once connected to the address of the board you will see on your screen some sliders and buttons. The buttons are the different animation i wrote using the FastLED library, the sliders are the RGB channels control. Feel free to experiment all the animations, and also to modify them or add some new ones to suit your needs.
Thank you for reading,
MX.