Typical college dorms only distribute one key per resident for each room. However, there have been many instances where I wanted to be able to give someone else access to my room when I am not around to let them in. Therefore, I decided to design and build a mechanism to open the door without the need for a key such that the mechanism:
Is cheap to implement
Is reliable over many cycles
Does not cause damage to the door or its components
Cannot be tampered with easily and keeps the room reasonably secured
Does not interfere with normal use of the door
My design consists of a numerical keypad placed on the outside of the door. When a code is entered which matches the code stored in the control script, the mechanism on the back of the door is activated and the door is opened mechanically. With this keypad entry method, the system can be disabled from the outside but cannot be easily hacked.
The mechanism I designed uses a VS-11 servomotor and Arduino Uno acquired from previous projects to reduce cost. The interior door knob has a rubber-cushioned clamp that was re-purposed to act as an interface between the servo and the knob. The rubber is a high friction connection such that the door knob rotates when the clamp does. Fishing line connects the clamp to the servo via a pulley (marked in red below for clarity). As the servo horn (rigidly mounted on the back of the door) rotates, force is exerted on the clamp to cause the door knob to rotate.
The servo is powered from wall outlet power that is accessed through the Arduino and stepped down using a buck converter to supply large enough current. Key presses are sent directly to digital pins on the Arduino via wires and processed by the Arduino. If the correct code is entered exactly, the Arduino will actuate the servo and turn the knob for approximately 3 seconds to give the person enough time to push the door open.