My daughter asked me to build her a treasure chest that she could use to store her most valuable things. Obviously she demanded it to have some kind of a locking mechanism so only she could open the box.
First thought was to use a keypad but then her grandfather bought her a diary with a secret code. So I had to come up with something else. On Adafruit’s tutorials I came across the Secret Knock Activated Drawer Lock. Use a secret combination of knocks to open the box. An idea I instantly liked a lot. Another great thing about this drawer lock was that it was programmable, which means you can change the knock sequence to anything you like.
I still had to think about the closing mechanism and decided to use a servo motor. Also I wanted the box to run without power cables. But if I used batteries I would run into a problem with the box closed and the batteries without power. So it had to be rechargeable but also I had to think of how to charge them from the outside of the box. Browsing on Adafruit's page I came across the PowerBoost 1000 Charger, a neat thing to power any Arduino like microprocessor while also charging a Li-ion battery.
I also thought about making the box somehow connected either via Bluetooth or WiFi so I could operate the closing mechanism via a smartphone. But in the end I decided against it for the sake of simplicity, at least for version 1.
- Arduino Nano V3.0
- PowerBoost 1000 Charger
- Li-ion battery 1000mAh 3.7V
- SG90 micro servo motor | 5V | 9g
- Piezo buzzer
- Piezo sensor trigger drum disc
- Switches, resistors and LEDs
- Screws and glue
I screwed and glued the box together and let it be for a week before I took up work again. I sanded the box and then cut it open.
I also needed to cut a slot for the servo disc and a holder for the servo.
Code wise I was using most of the Adafruit’s tutorial for the drawer lock. But a thing I had to add was a detection whether the box was open or closed. So when you knock and the servo opens, it stays into the open position until you close the lid again. This is why I added an extra switch.
First I used a normal piezo buzzer (like this one) but I thought it was not reliable enough to detect the knocks. I then chose to use a piezo disc element which provided lots better results. I still kept the piezo buzzer as a feedback device.
Another great idea from the guys from Adafruit was that they activated the open mechanism just for a short bit when powering the circuit. So that way you could open the box and then reprogram it in case you forgot the knock code.
Once I assembled the whole thing I varnished the box with my daughter’s help. I went back to the workshop to finish the box, i.e. putting a lid over the electronics to protect it, adding a button that allows reprogramming of the knock sequence and adding some nice handles.