I've always wanted to have a secret bookshelf door. Who wouldn't? So when I finished my attic, I had the chance to construct a custom bookshelf door that opens and closes by sliding into a space behind the wall, revealing my home office.

But I wanted to go farther than that - I wanted it to automatically activate itself via a secret book or using a special secret knock code. This instructable shows you how I did it. With some modification, you can use the same supplies to make a bookcase swing open and closed like a door.

Time: This project took me months.

Skill level: I'm an experienced woodworker, a novice Arduino programmer, experienced hardware hacker. Moderate to advanced skill level project.

Materials needed:

1. Arduino Uno R3

2. Sainsmart 2 Relay board for Arduino

3. YWrobot piezo electric microphone for Arduino

4. Soldering iron

5. Wire cutters and strippers

6. Microswitch (momentary NO/NC)

7. Book you can cut into

8. Various bits of wire, electrical tape, heat shrink tubing, cable organizers

9. Altoids tin

10. Small wood screws

11. Hobby Horse springs

12. 2" fixed caster wheels (6)

13. 1 X 12 wood for bookcase

14. 3/4" bolt

15. Firgelli heavy duty linear actuator

Step 1: Build the False Wall

The challenge was to build an entrance to the far end of the attic, which was triangular. A chimney created a central obstacle and would require the entrance to be on either the right or left. In the first photo, the chimney has been enclosed in sheetrock. With plans for a TV in the middle, both bookcases would be triangular in shape and wouldn't easily swing in or out. The bookcase needed to slide towards the center to reveal the door.

The second photo shows the opening created for the bookcase to slide into.

great project buddy! keep it up!
<p>I'm having a problem with the door opening and closing timing.. My actuator seems a little slower than yours and 18000 ms only opens about 10-12 inches. I increased the doorOpenTime and doorCloseTime to 30000 ms and it does open/close for 30 seconds. However still not enough.. I need about 45-50 seconds.</p><p>The problem is when I update the open and close commands to anything past 30000 the actuator runs until the end. Not entirely problematic except the 'door opening complete' or 'door closing complete' never triggers and I am stuck in the loop and can't close the door without manually resetting the arduino board.</p><p>Any suggestions? I did not wire buttons for emergency stop or a book trigger, I am using the knock sensor only.</p>
<p>There is a lot of code in the open and close loop that handles being interrupted. I'd take all of that out and just use delay(xx) to have the program wait for awhile before continuing and stopping the open or close routine where xx is the amount of time for the program to sleep.</p><p>The likely issue is where it compares the end time to the door open time. Just strip all that stuff out and do something like:</p><p> digitalWrite(relayOpenPin, HIGH); //operate the door relay</p><p>delay(xx); //xx is how long to wait</p><p>digitalWrite(relayOpenPin, LOW); </p><p>Put the opposite code in the routine to close the door.</p><p>I'll point out that you have no emergency stop mechanism now so make sure you have some give in the system to keep it from trapping something that gets stuck in there. I had a videogame box that stuck out and got trapped. I used the book to reverse the opening and got it out. </p>
<p>Did you ever add code to program your own knock? That's my next step..</p>
<p>That worked!! I will probably be adding the emergency stop and open later, I don't have the parts at the moment. I modified the code as follows. Thanks!</p><p>//*************************** relay1Operate - Close the door *****************************</p><p>void relay1Operate() {</p><p> digitalWrite(relayClosePin, LOW); //intiates the door closing</p><p> Serial.println(&quot;Closing door.&quot;); </p><p> delay(65000);</p><p> digitalWrite(relayClosePin, HIGH); //stops closing the door by opening the relay</p><p> lastButtonState = buttonState; //keeps door from triggering when it returns to the main loop</p><p> Serial.println(&quot;Door closing is finished&quot;);</p><p>}</p><p>//************************** relay2Operate - Open the door ******************************</p><p>void relay2Operate() {</p><p> digitalWrite(relayOpenPin, LOW);</p><p> Serial.println(&quot;Opening door.&quot;);</p><p> delay(65000);</p><p> digitalWrite(relayOpenPin, HIGH);</p><p> lastButtonState = buttonState; //keeps door from triggering when it returns to the main loop</p><p> Serial.println(&quot;Door opening finished&quot;);</p><p>}</p>
<p>Excellent detailed instructions on everything! This is a top notch instructable! One question out of curiosity: I'm assuming you need a building permit to do this work (probably) If so, does the secret door end up being documented in the plans or assesments of your house? Or is it really a secret?</p>
<p>This of course depends on your local codes.</p><p>But at least for Ontario internal walls do not require a building permit, and I suspect most of the states is like that.</p>
<p>It's a secret and I don't want to spoil the fun, however some cities may require you to inform your local fire station that you have a hidden room in the unlikely event of a fire, gas leak, meteor strike etc. Also your homeowners insurance would probably like to know as well, there might not be coverage for damage if the fire department did not know of the secret room. Other than that WAY COOL.</p>
<p>I was going to say the same thing: even if the LAW doesn't require you to tell your fire department about a secret room, it's wise to do so anyway. Firefighters have far too many horror stories already about frightened youngsters or mentally-handicapped adults whose instinctive response to something scary like a fire is to HIDE! If your local firefighters know where someone might be hiding (or unconscious due to smoke inhalation) then that person's more likely to be rescued in time.</p><p>Also, is there an emergency &quot;power's out&quot; manual-opening method that works from the OUTSIDE (e.g.: to rescue someone inside who, for whatever reason, can't use the inside bolt-removal method)?</p>
<p>It's possible to access the room but not open the door from the outside. You can pull a bookcase on roller out of the wall, crawl in and then access the room through another bookcase on rollers. However, that's not a time sensitive emergency technique and anyone besides me wouldn't know it.</p><p>Of course, if it's a serious concern for someone, just leave the bolt out and open and close it manually.</p>
<p>Ah, but the &quot;clevaire&quot; French detective always finds the secret door be seeing &quot;zee&quot; tracks from the &quot;castaires&quot; on &quot;zee&quot; floor! &lt;GRIN&gt;</p><p>Sorry, my best <strong><a href="https://en.wikipedia.org/wiki/Inspector_Clouseau" rel="nofollow">Chief Inspector Jacques Clouseau</a></strong></p>
<p>Ah, but since the bookcase rolls back INTO the hidden room, any marks on the floor left by the casters won't show from the outside when the door's closed. Sorry, Inspector Clouseau! :-)</p>
<p>Does it have a stopping system? I mean what if for some reason you get stuck on the middle? Would it crush/hurt you? I know it is slow but what if?</p>
No, it does not. However, the mechanism is connected to the actuator using rocking horse springs. This provides quite a bit of 'give' and won't crush you, but it probably will injure you. Recently I opened it and some video game cartridges got caught as it opened. The springs gave enough to keep from damaging the cartridge or the mechanism but I wouldn't want my hand in there. <br><br>It would be a nice addition to include an ammeter sensor that would stop and reverse the door if it spiked. I don't have small children or pets, but it would be safer.
<p>one word, absolutely &quot;Cool&quot; !</p>
<p>Whoa!!!Coolest thing i have ever seen in a long time:-)</p>
<p>how deliciously evil</p>
<p>For everyday use, I would suggest putting a button (or an audio pickup if you prefer to knock) at your desk for opening the door from inside. That way it will already be on it's way to being open before you reach it, thereby easing some of the wait time to open when exiting. Likewise, a hidden button, or whatever, at the other end of the hall will do the same thing for going in. Better than standing and waiting every single time. Keeping the current methods, as well, for impressing guests, of course.</p>
<p>What happens when there is a power outage? How do you get out of your secret office?</p>
<p>The bolt that connects the bookcase to the actuator is removable in seconds and the door can be manually operated.</p>
<p>Replaced the bolt this weekend with a trailer pin to make it super easy to operate manually.</p>
Old garage door openers are good sources for components. Seek out friendly installers and they can hook you up with usable stuff. Cheap
<p>Cool idea, and great execution. My only complaint lies in the speed of opening/closing. A bit too slow to be useful in case of emergency, like having to go pee really bad, or fire, or using it like a safe room in case of people breaking into the house. Otherwise, good job!</p>
<p>I don't disagree about the speed. It takes 18 seconds to completely open. You can slip out the door in half that time, but yeah it's a little slow. The hidden office has a fire ladder in the window seat with direct access to the ground if it is a real emergency.</p><p>Having watched people play with the door, the slow speed does have its good points. They don't realize they need to move their hands until the door is about 1/4 open so it does give them time to move their hand. That said, it would be nice if the door opened in half the time.</p>
Can you do a video on the hacking and after that
<p>Not sure what you mean. The diagram in step 4 shows what I did but you need to know a bit about electronics, including how to solder to actually do it. The basic steps are:</p><p>1. The handheld controller connects to the actuator using a cable with a DIN plug on it. -OR- do what I did - purchase another cable with identical DIN plug and cut that, so you can preserve the handheld controller as a manual backup in case the Arduino quits. In either case, you must cut the cable to the DIN plug and separate and strip the wires.</p><p>2. I soldered extension wires to the DIN plug wire pins shown in the diagram in step 4 to extend them to the relay board. Don't forget to use heat shrink tubing over each soldered wire to keep them from shorting together. I used a small tube for individual wires, then larger tubing to fit all of the wires inside and heat shrunk that for security. I labeled each extended wire with a piece of tape so I knew which pin on the DIN plug it went to. I triple checked this by continuity testing them using my multimeter.</p><p>3. I connected each wire to the output side of the relay board as shown in the diagram in step 4. I also had to use a jumper wire from the NO on relay 1 to the NO on relay 2 and the NC on relay 1 to the NC on relay 2 to duplicate the circuit that the handheld controller had inside it. These connections are screw terminal, so it was easy to connect them.</p><p>4. On the input side of the relay board, I ran connectors from the GND and 5V on the Arduino to the GND and 5V on the relay board. I connected the IN1 on the relay board to digital pin 7 on the Arduino and IN2 on the relay board to digital pin 8 on the Arduino.</p><p>That's all of the electrical work I had to do. I am in the process of adding one more pushbutton switch inside the room so the occupant can open the bookcase by pushing a button. I will wire that in series with the secret book button. Since that circuit is normally closed (NC), I'll use the NC terminals on the push button I add. When I push it, the circuit will open, the Arduino will detect it, and the bookcase will either open or close, as appropriate. (This is how the secret book button works now.</p>
<p>I'm thinking manual slide to open &amp; close for those that don't ardino., ~(:-})</p>
<p>This is so great! I definitely want to do this in my house someday- I also loved that 'Inheritance' is the secret book to open the door- that book was so amazing :D</p>
<p>This is utterly wonderful!</p>
<p>Sweet keyboard.</p>
<p>Great project - your finished space looks like it should be in a magazine. I do have a question though. What happens if the power goes out and you are in the room with door closed? Perhaps a UPS would be advantagious. </p>
<p>Perhaps a manual lever attached to the end of the threaded rod to turn it </p>
<p>Not necessary. You can quickly remove a single bolt and roll the bookcase manually if the power is out.</p>
<p>very cool. hope you remembered a manual release incase of power failure. also, you could upgrade this with sheet steel and make it like a safe room with a way to disengage the opener. of course, you would want a manual opening feature there also, since you wouldnt want to wait so long to get to safety if someone broke in. great job.</p>
<p>I did. You can manually release the door and slide it open in seconds. Also, the bookcases in the hidden office roll out to provide crawl through to the main room, which also has roll out bookcases.</p>
<p>Great work. Do you have plans for the desk. Its gorgeous!</p>
<p>Thanks, although it looks nicer in the photo than in real life. It's just a 4X8 sheet of oak laminate plywood. The desk is a little wider than 4' so I added on a small section using a plate joiner. I used a piece of string to mark out the curve and then cut it with a sabre saw, got some of that edge trim that glues on using an iron, stained it and that was it.</p>
<p>Fantastic! I really like how you explained your thought processes and said why you did things the way you did, and all the thought work involved in the final product. Just super!</p>
<p>Absolutely beautiful. Talk about fantasy fulfillment! Thank you for sharing.</p>
<p>I love your project.... may I suggest that you wire a limit switch up on the springs under the bookcase? That way if the door pulls on a spring too hard, it'll stop.</p><p>Several years ago I made a book case in our room over garage. The walls are chamfered in b/c of the roofline of the house, so I couldn't put a full height bookcase in. What I made was a 68&quot; high x 39&quot; wide shelf that has a drawer on the bottom. That drawer is a full sized twin bed that pushes back into the attic. Of course there is an enclosure about the backside of the bed to keep the attic environment out. Kids love it and wanted me to buy a garage door opener to motor it in and out. I never did b/c I figured it wouldn't take long for one of them to run it in with a kid in the bed.<br><br>Very nice job!!!!</p>
<p>That is pretty sharp looking! Well done!</p>
<p>That is so cool. &quot;You are Batman!&quot;</p>
<p>Interesting work . Thanks</p><p>For those downloading Bounce library it comes with stuff you don't need so d/l it all ,name it Bounce then move Bounce2 library out of Bounce folder up to the library folder That way you have them both if you need them. If you don't do this you will get compile errors as the library won't be found.</p><p>Or just extract the Bounce2 library alone and dump the rest.</p>
<p>Mighty cool.</p>
<p>wow !! awesome job..</p>
Very well done! ? Thanks for sharing!
this is so incredibly awesome! childhood fantasy... fulfilled.
<p>This is so far beyond cool. Fantastic job, Krizbleen!</p>

About This Instructable




More by Krizbleen:Automatic Secret Library Door Time lapse enclosure for smart phones 
Add instructable to: