- Raspberry Pi, either model A or model B will work, running the Raspbian operating system.
- Your Pi will need access to the internet to setup the software, so make sure you have either a wired or wireless network connection setup with your Pi.
- Raspberry Pi camera.
- Depending on where your camera and Raspberry Pi can be placed inside your box, you might need a longer or shorter camera cable.
- Small box that can fit the Raspberry Pi and locking mechanism inside. I found an inexpensive plain wooden box at a craft store, and finished it with wood stain and polyurethane.
- Look for a box that has hinges which are screwed in from the outside of the box. Although not terribly secure, it will allow you to disassemble and open the box in case the locking mechanism fails to open.
- Small servo or lock solenoid for the locking mechanism, depending on how your box can be latched shut.
- A servo that rotates a latch can work with most boxes that open from the top or side.
- A lock solenoid can work with boxes that have a door or drawer. See this locking drawer project for information on using a lock solenoid. Note: the software for this project is written to use a servo as the locking mechanism, so if you use a lock solenoid you will need to modify the software to actuate the lock with the solenoid instead of the servo.
- Momentary push button that can mount to the box. Depending on how thick your box is, you might need a smaller or larger push button.
- 10 kilo-ohm 1/4 watt resistor to use as a pull-up resistor with the push button.
- Power supply for the Raspberry Pi and servo or solenoid. For powering a micro servo, a 4x AA battery pack is a simple option.
- Wood, wood glue, and fasteners for building a latch mechanism and frame to support the Pi inside the box. The exact material will depend on your box, but you can see further below how I used 1/4" dowel and thin bass wood to build the frame and latching mechanism for my box.
- Hookup wires to connect the switch, servo, and servo power supply. Female hookup wires work well for connecting directly to the Raspberry Pi GPIO pins, or you could use the Pi cobbler with a small breadboard.
The box you use for your project will dictate exactly how the Raspberry Pi, servo, and latching mechanism need to be mounted. Read the notes below for tips on how to construct your hardware, based on how I built mine:
Drill a hole in the top or side for the Raspberry Pi camera. I found a 7/16" drill bit was enough for the camera to comfortably fit. Be careful when drilling large holes--work up from smaller bits so you don't crack the box. If you do damage the box, you can generally use wood filler to hide mistakes.
If they aren't mounted there already, consider moving the hinges to be mounted from the outside of the box. This will allow you to disassemble the box in case the hardware fails in a locked position.
Drill a hole in the box to mount the push button. You can see I mounted mine on the back of the box where it can be reached while a user looks into the camera on the top.
Drill another hole to allow power cables to come into the box for both the Raspberry Pi and servo. I found a 1/2" hole was enough to fit a micro USB cable through for powering the Pi. To the left, you can see the hole I drilled in my box next to the push button.
If possible, mount the Raspberry Pi in the top of the box or near the hole for the camera. You can see how I mounted my Pi to a small board along with the locking servo, and then attached that board to dowels glued in to form a frame in the box top.
A few screws and a smaller board can act as a clamp to hold the servo in place.
The electronics in this project are fairly simple and involve connecting a servo and push button to the Rasperry Pi. If you have never used these devices with a Raspberry Pi, read the following tutorials for a good overview of their usage:
- Raspberry Pi Lesson 4: GPIO Setup
- Raspberry Pi Lesson 8: Using a Servo Motor
- Bread Board Setup for Input Buttons
The push button is attached to GPIO 25 of the Raspberry Pi, with a 10 kilo-ohm pull-up resistor to 3.3 volt power from the Pi.
See the diagram below for how to wire the push button and servo to the Raspberry Pi.