Most apartments in Ithaca, NY, specifically in Cornell's collegetown section, are relatively old style of apartments. The apartments utilize a key of some sort to unlock the door along with a buzzer system to allow any guests in that don't have access to the apartment. But what if the apartment renter doesn't have their keys with them and no one is "buzzing" them in through the buzzer system? Besides calling up the landlord, what other way is there to letting the renter in?


This project edenvours to implement a simple device on the inside of the renters apartment to both verify an attempted access to the apartment and allow access in to the apartment. The apartment buzzer will be the primary source of input and output into the device. The device will utilize a modern PIC32 microcontroller with electronic peripherals capable of picking up the doorbells sound and pressing a button.

Apartment Buzzer

The system in question is a general apartment buzzer system. There are two primary systems of the apartment buzzer: the buzzer itself and the inside-apartment module. The buzzer module contains many different doorbells that connected directly to their respective apartments. The inside-apartment module contains a few buttons and a speaker. There is always a button or switch to unlock the door to the apartment entrance and sometimes a button or switch to turn on audible communication between the buzzer module and the inside-apartment module.


When a doorbell for a specific apartment is pressed, the module sends a signal to the inside-apartment module. The inside-apartment module plays a tone of some sort until the doorbell is depressed. This is the primary form of communication to the apartment. When the button to unlock the front door is pressed, a small audible buzz is played from the buzzer module and the main door is unlocked. For the purpose of the project, the buzzer is assumed to output a constant frequency of 440Hz and has constant latency from the buzzer buttons input to the audible output.


Figure 1: The Apartment Buzzer



Audio Input

The device is designed so that the preexisting buzzer system does not need to be altered in any way. In order to obtain the user input from the button, a microphone monitors the buzz sounds generated by the existing system. An analog amplifier circuit provides a 3 VPP signal to the ADC on the PIC32. Onboard the PIC32, a very narrow band pass software Infinite Impulse Response (IIR) filter is used to isolate the sound of the buzzer.

Button Pressing

As with the input side of the device, the output to open the door must be designed such that the existing system is not modified. Our system takes advantage of the fact that there already exists a physical button next to the speaker that will unlock the door when depressed. This button is actuated by our system by affixing a push-pull solenoid on top. The solenoid needs to be powerful enough to push in the button. To prevent the noise affecting the PIC32 and the microphone circuitry the solenoid is driven from an isolated power supply.

Verification

With only one button available for user input, the simplest form of communication from the buzzer to the device is Morse Code. Morse Code provides a simple way to decode characters and numbers through single button input. The decoding is through a varied lengths of high and low signals. High signals are encoded in two different lengths: dots and dashes. The dot is defined as time of length "x", while the dash is defined as time of length "3x". Low signals are similiarly defined with one low dot representing a seperation between the dots and dashes and three low dots representing a seperation between the characters. A sample signal is shown below.

Figure 2: Morse code wave form and encoded string "AE"


The morse code to character mapping can be defined in a simple binary tree, with left branches representing a dash, and right branches representing a dot. This is depicted below.

Figure 3: Morse code to character binary tree map


Morse code features a start message sequence and an end message sequence. This project ignores those two sequences too simplified user experience. To combat the lack of starting and ending sequences, the design takes into account the relative lengths of times of each inputted dot and dash, and extrapolates a probablistic "x" and "3x", allowing the decoding of morse code into alphanumeric text to be easily compared with a simple passphrase.