TEAM 10: SmartDoor
Spring 2013


Detailed descriptions of our progress through the project can be found here.


A door security system which allows the home owner to interact with the visitor and other home members regardless of the owner's location.


It is frustrating when people drop by when one isn't in the house. Instead, any time visitors drop by, the home owner can see who is there, can interact with them through video or text messages.


DoorBot: WiFi door camera system which notifies owner whenever visitor is in front of a door via smart phone. Owner can see and talk to the visitor. SmartDoor will implement these features, and the video chat feature will be two-sided. The visitor will be able to see the owner's face as well when chatting through video.


Lockitron: A door locking/unlocking mechanism which can be controlled by a smart phone over WiFi.

Door lock/unlock feature
Card access to home
Alert other members when one enters home
Alerts owner when visitor comes by.
Video chat/messaging with visitor


Hardware: Software: Protocols:




R-1. When the doorbell is pressed, the tablet display shall turn on with the message, "Taking a picture to send to OwnerX. Would you like to proceed?".
R-2. When the visitor chooses to take a picture, the tablet shall take the picture of the visitor using the embedded camera, and forward the picture to the owner's phone.
R-3. If at any time the visitor chooses the "Leave" menu on the tablet, the display shall show the message, "Thank you, Goodbye".
R-4. The display shall turn off if there has been no input for 30 seconds.
R-5. After the picture has been sent, the tablet shall load the menu for the visitor with the options for video-chat, text messaging, or "leave".
R-6. Selecting the video-chat option shall send a Skype call to the owner's phone. (Constraint: Owner's phone shall have a camera attached).
R-7. Selecting the text-messaging option shall load a virtual keyboard on the tablet, ask the visitor for the message, and forward the message to the owner.
R-8. Owners of the house shall be able to unlock their door by their personal RFID keychain.
R-9. Owners of the house shall also be able to unlock their door by inputting a preset password into the electronic deadbolt.


Mitigation Strategy
Deadbolt is not responsive to the Arduino
Revert to original mode of operation for the deadbolt-requires manual input.
Tablet bluetooth is unresponsive to the Arduino
Switch protocol to WiFi and try again.
Camera on the tablet fails to turn on when required
Load text input interface on the tablet instead of video chat for the visitor to leave a message.
Tablet theft
Make it built into the door.
Arduino fails to recognize RFID keychain
Revert to manual mode for deadbolt.


Test Cases:

Why do they matter?
How to run the test?
Simultaneous injection of doorbell press and video call. (fault-free) We don't want the video call to be interrupted unless the visitor/owner desires it. User executes the two tasks simultaneously.
Fault Injection: Door fails to unlock with RFID. Check if it unlocks manually, and if the system recognizes it has been unlocked. We don't want to be stuck in a state where the system is constantly ordering the door to unlock without success. Have a specific RFID key which the system will approve of, but not open the door (program a separate case for this key).
Bluetooth test (fault-free)
We want to ensure a reliable connection between our systems.
Connect to the BT module from the Android application and verify the BT connection.
Bluetooth test (fault-injected) `
Same as above
Send garbage value instead of protocol for doorbell acknowledgement.
Doorbell test (fault-free)
It must be read for the Android application to load.
Verify that the input is read and the tablet loads the welcome message accordingly.
Camera test (fault-free) Picture must be taken when visitor requests it.
Verify that the camera loads when the camera button on the app is pressed and successfully takes a picture, and saves it to the SDCard on the tablet.
Email test (fault-free) The picture must be sent to the owner.
Verify the email is sent with the correct photo attachment.
RFID deadbolt test (fault-free) It must be correctly read to grant home access.
Verify that upon scanning it on the reader, the door unlocks.
RFID deadbolt test (fault-injected) Same as above
Program a specific key which will fail to unlock the door. Verify that the program does not get stuck waiting for the door to unlock.
Manual deadbolt test (fault-free) Door must unlock when the correct pass code is input.
Verify that upon inputting the correct pass code, the door unlocks.
Video call test (fault-free) Visitors must be able to video chat with the owner when they wish.
Verify that upon choosing video chat on app, it sends a video call request to the owner's mobile device.
Display test (fault-free) Power saving
Verify the tablet display turns off after 30 seconds.
Application exit test (fault-free) Correct "shut-down" of app
Verify that when the visitor chooses the leave menu, the tablet loads up the goodbye message.

Experimental Evaluation:

Why do they matter?
How to measure the metrics
Bluetooth Communication Throughput
Throughput- Maximum characters that can be sent in a message.
Ensure the application does not crash because too many characters have been sent.
Test with different message sizes
Doorbell response time
Latency from doorbell press to tablet welcome message
Noticeable delays in  between acknowledging the doorbell input and loading the appropriate tablet display is undesirable.
RFID response time
Latency from RFID read to door unlock
Waiting too long for the door to open after the RFID chip is read is also undesirable.
Android app lag time
Latency from photo request to loading the camera on the tablet
We want the application to be as lag-free as possible.

Graphs expected: pdf after repeatedly measuring each of these metrics. Box/whisker plot.

Reproducibility of tests: Time/environmental settings will be kept the same to ensure reliability of repeated measurements.

Automation of tests: For the first experiment, we will add a short snippet of code to our Arduino code to repeatedly send messages of random size, rather than our protocol for acknowledging a doorbell press. For the rest, we will embed a timer in the code to check the timing every time our program is run.


To be completed by the end of Spring 2013 semester.


Back to the top of this page
18-549 course home page