The motivation behind this project was make a cheap and secure keyless entry system. The main components are
- Some way to "unlock" the door - in this case turning the door knob on the inside. I used a high-torque servo (Hitec HS-705MG, $30).
- A discreet way to interact with the microcontroller. My inital idea was to use a secret knock detected with a peizo on the inside of the door, but knocking can be heard. Next I thought of hooking a capactive touch sensor up to the metal doorknob, but the doorknob is too much solid metal (my touch sensor IC doesn't work with such a big object). Currently I've settled on using a single piece of wire. The touch sensor is a QT113-G, $3.00.
- A microcontroller to engage the servo when the correct pattern is inputted. Right now I'm using an Arduino for ease of prototyping (the Arduino is built around an Atmel ATmega168). I'm planning on replacing the Arduino with a much simpler microcontroller, a TI MSP430F2013, $2.36 (because I have one lying around).
The "key" for the system is the time information of a binary signal. For example,
The inputted signal is scaled and compared to the key pattern. If the sum of the square errors is less than a set threshold, the microcontroller turns the servo.
From personal experience (mostly my roommate has absolutely no rhythm), the pattern key could probably contain about 6 different lengths. Thus a key with length n will have 6^n possible combinations. To make the system more secure, there is no indication that an input is wrong; an attacker has no idea how long the key is.