This project started out with the simple idea of having a safe yet easy to access storage compartment for documents such as Passports/Certificates/Licenses, a gun or even just to keep the car keys out of sight during a house party. What I've come to learn over the years is that the best hiding place is always right in plane sight.
Another helpful characteristic would be to know when the lid has been lifted, without being too annoying. So instead of some sort buzzer, I decided to use an LED strip inside the hidden compartment, that would only light up when the lid is opened. Since I was dealing with LED's strips and a control system already I thought it couldn't hurt to have some gentle breathing light coming from behind books when the lid is closed.
This is how it was done..
- 3x LED Strips (~700mm)
- 4x MOSFET (P-Channel)
- 4x BJT (NPN)
- 3x 2way Screw Terminals (output)
- 2x 2way Screw Terminal (input)
- 1x Power Connector (12V)
- 1x 12V DC Power Supply
- 1x Reed Switch
- Many of single core wire (Arduino to control board)
- Speaker wire (LED strips to control board)
Step 1: Basic Book Case Design and Frame
I started with drawing a simple concept for how I wanted the hidden compartment to open. Preferably with internal hidden hinges (though these are quite hard to come by).
I then did some basic CAD drawing of the fame and shelf dimensions with matching 'compartment' dimensions on the top and bottom, because symmetry would definitely make the compartment on the top a lot less conspicuous.
After getting these cut (by pro's as I would've had to do a lot more sanding if I cut it at home), I assemble it quite quickly drilling holes at the marked positions on each side frame and screwing standard 2" (5mm) screws through the frame into each shelf and the top and bottom frame edges. Of course leaving off the top 'lid' for now.
Step 2: Refining the Exterior
After plenty of sanding to smooth down the surface of the raw wood, I gave it a coat of dark wood stainer and let that soak in and dry. Repeating this for a day or allows the shelves to take on the desired tone I was looking for to match my other furniture. Each coat of stainer was applied to the lid piece on both sides, as well as to the inside of the top compartment.
Step 3: Installing LED Strips
I then measured my dimensions at of the full book case and drew these out on a sheet of chip board. With a little effort and a hack-saw I now have my back-board.
After screwing the backboard on using approximately 2x 1" (2.54mm) screws per shelf and one in each corner of the frame, I then proceeded to drill a small hole in the bottom right corner of each shelf and also of the top compartment for the wiring of the LED strips.
After measuring and cutting 3x LED strips at approximately 5cm less than the length of the each inner shelf measurement (~68cm), and one strip at the approximately the inner dimensions of the hidden compartment (length*2 + width*2), I could now measure and start soldering some standard speaker wire to the end of each of the LED Strips, and feed these wires through the holes in each corner of the backboard. These wires are measured just so that each shelf's strip can reach the top/hidden compartment where the control circuitry will be housed.
Step 4: The LED Controller
Using Arduino's super simple and freely available sample code I wrote a basic routine that would fade the shelve's lights in and out (breath), while the lid (reed switch) was closed, and if the lid (reed switch) was opened, the shelves would switch on/off alternatively while the top compartment's light would be solid on.
This makes it very obvious to everyone in the room that the lid is open.
Attached is a copy of the code I used to test these functions alternatively.
Now that the Arduino code is running and tested with 4 single LED's (representing each LED strip), I must do one more thing...
Due to the higher voltage/current levels of the 12V LED strips, I cannot directly control them like I would with a single LED in the Arduino's GPIO, which has a maximum of 5V driving voltage. Instead I built a simple strip board circuit that would use the Arduino GPIO's to switch MOSFETS on/off which in-turn will switch the LED strips. As we all know, MOSFETS can handle much higher loads than most processor's GPIOs or BJT transistors.
This circuit also allowed me to power the entire system from a single point using an old 12Vdc supply I had lying around. Luckily the Arduino can be powered by 12V or 5V.
Finally connect up all of the intertwining wires between the Arduino and
the FET board, and then between the FET board and the LED strips, and now plug in the power for a quick test.
Step 5: Testing & Glue
After some brief testing to make sure all connections are to the right points, which may take a few retries, if the shelves light up in the wrong order (which happened to me), you can now get started with the hot glue gun to secure everything in place. The LED strips are adhesive, but I find adhesive strips only last for a few weeks before peeling off on their own. A few drops here and there to secure them and lots of glue to secure the LEDs extension wires down the backboard and inside the compartment.
Also with a small screw I got from an old DVD player, I secured the micro-switch to the inside of the right wall of the top compartment, and glued its connection wire down.
I have not yet found a decent looking enclosure for the electronics yet, though I have recently purchased an Arduino nano, to shrink the overall profile of the control system. The nano has all of the required functionality in a much smaller package.
Step 6: Final Touches
The lid (top plank) can now be fixed on using the same size screws (1")
as the backboard and 3x small external hinges (about 30mm wide) spread out evenly across the length of the top back panel. Though concealed Lid Hinges would have been more preferable, I was unable to find any in my area, though when the whole thing is backed against a wall, your average Joe would never think to check behind the bookshelf for something random like 'hinges' (I hope).
The final step is to fill that sucker with all those misplaced books for a more natural look, and a couple of the wifes random trinkets on top to distract from the fact that there may be vital documents lying just within.
My next step is to include Arduino's MFRC522 RFID module and freely available sketch into the mix, with a small 12V latching magnetic lock. This would be completely unnecessary but very fun to use my reprogrammed bank cards RFID chip to unlock my new secret compartment.
But that'll have to be covered another day...