CPE 322: Engineering Design 6;

Smart Home Doorknob

2/23/14

Logan Weiss

Alexandru Popa

Joseph Powers

Andy Chau

I pledge that I have abided by the Stevens Honor System.

Section 1; Individual Contributions

As far as the research was concerned, the group decided to split the topics as easily as possible. In addition, topics were distributed between the members with an emphasis on keeping the same person researching relatively related topics. In doing so, members could focus on one aspect of the project without having to worry about unrelated information (at least in the short run). The topics and the group member who performed the research are presented below;

1)Logan Weiss

  1. iOS Application Development/Implementation
  2. Android Application Development/Implementation

2)Andy Chau

  1. Wi-Fi Networking/Implementation
  2. Device Communication Implementation

3)Joseph Powers

  1. Metal Fabrication Techniques/Doorknob Design
  2. Automated Locking Systems

4)Alexandru Popa

  1. Web Application Development/Implementation
  2. Streaming Audio/Video Implementation

Keeping with the above, the workload was split evenly between the four group members;

L. Weiss / A. Chau / J. Powers / A. Popa
Percentage of effort towards this assignment / 25% / 25% / 25% / 25%

Section 2; Research Summary

1)iOS Application Development/Implementation

Considering the eventual final scope of this project, creating mobile applications will be necessary to realize the full potential of our Smart Doorknob. In order to implement an iOS application, several steps need to be taken. First of all, it’s necessary to have an Apple computer (running OS X 10.8, called Mountain Lion, or later); iOS applications cannot be developed on a Windows PC. Secondly, Xcode must be installed on the computer. Xcode is Apple’s integrated development environment (or IDE) that includes the iOS software development kit (or SDK), which includes specific tools for iOS development (developer.apple.com). After fulfilling these requirements, application development can begin.

iOS applications are written in Objective-C. It’s a superset of the C programming languagewhich provides object-oriented capabilities and a dynamic runtime (developer.apple.com). It also adds language-level support for object graph management and object literal while providing dynamic typing and binding, meaning that many responsibilities are pushed until runtime.

However, most important is Objective-C’s object orientation. This means that every object is descended from a root class. With this function, developers only need to worry about the specifics functions they need, referring to the root class for the “behind the scenes” functionality.

2)Android Application Development/Implementation

Along with an iOS application, an Android alternative would need to be created as well considering its large market share. In order to develop an Android application, a developer needs to develop the Android SDK.The SDK includes the Eclipse + ADT plugin, which enables the developer to develop in the Eclipse IDE (though other IDEs are supported). Once the SDK is installed, development can begin. Android itself is built on the Linux kernel, a Unix-like operating system kernel.

Most Android applications are written in Java which, like Objective-C, is an object-based programming language. In the same way, its objects descend their background properties from a root object class, meaning users only need to worry about particular attributes. In addition, Java features syntax similar to C++ and a rich standard library, having hundred s of classes and methods. Finally, the language does not require programmers to explicitly free allocated memory. This makes Java easy to write and less prone to memory errors.

3)Web Application Development/Implementation

In order to make the final product easily accessible, a web interface must be created to provide access from all mediums. This will include laptops, tablets, desktop computers, and any other device capable of internet access. There are many ways to achieve this goal as well as multiple programming languages to choose from. For the purpose of this project we took a look at both PHP and Ruby development, two of the most robust and widely used web programming languages. They are both server side programming languages with an object oriented focus. Since the required web application will be fairly simple, either programming method will be sufficient for our purpose.

4)Device Communication

To consider the Smart Doorknob as ‘smart’ it must be able to connect to the user. The connectivity from the front steps of home to the home owner mobile device is the whole scope of this project. Essentially, the device will do as it is told from an external device such as a smart phone or a computer, whether it is to lock the door, or to see whose ringing the doorbell. On the actual device, some software should be implemented that would enable all desired functionality and be able to broadcast the live data to the user. The most difficult part of the project is the implementation of the internet camera broad casting to the user’s device. Much like security cameras that are wifi capable, the team predicts the functionality would work similar to that where the transmission of the digital signal over the network.

In addition, the device must also communicate with the doorknob. If the user wants to lock his door, he would press a button on the app and it should emit a signal into the device that would engage the lock. For example, there is a product that is similar to the automated locking system. August Smart Lock, is an automated locking device that is controlled by an application on a smart phone. Ultimately, device communication revolves around application implementation with the software on the Smart Doorknob itself.

5)Metal Fabrication Techniques/Doorknob Design

The first step in the process of creating a doorknob is the forging of the metal. Doorknobs are normally made from brass. The metal is melted and the molten result is poured into a mold. The doorknob system that is forged has a few parts to it. There are two knobs, one on each side of the door. At the end of each knob is the shank. The shank helps connect the rest of the doorknob system. The two knob roses are circular plates that fit the door to hold the knob system in place. These plates will change with door thickness. The last part is the spindle. The spindle connects the two knobs. The spindle is also the mechanism that turns the latch of the door.

A doorknob is relatively simple system. However, the process of creating the doorknob is not simple. It would seem that the easiest thing to do is buy a doorknob and modify it to fit the project. Since the locking system can be separate from the doorknob, the modification may not even be necessary. If the project shows to be more involved than originally planned and the doorknob does need to be modified, the group understands the doorknob system enough to modify it effectively.

6)Automated Locking Systems

There are new techniques for automated door locking systems being created, but the basic principle has been the same for years. The first automated locks were in cars and all other automated locks are based from that. The system is what one would expect. It includes the lock, the motor, a controller, and the receiver. When the receiver detects a frequency code, it signals to the controller. If the code is correct, the controller tells the motor to move the lock. The described system is used on car doors, but it can also be applied to a deadbolt on a door.

One problem is that the frequency code model may not be so useful if the product is using wi-fi. This problem is not too difficult to avoid. The type of receiver would just be wi-fi based. The controller would still check the code and signal the motor. The controller would be slightly more complicated since it will need to check the could through wi-fi.

7)Streaming Audio/Video Implementation

Since the Smart Doorknob will have video capabilities, a video streaming solution is required to make the project feasible. There are two methods to consider here, live streaming and recorded streaming.

Live streaming is the most convenient because of the ability to view from the doorknob in real time. The drawbacks of this is the necessity of either our own server, or a hosted streaming plan with an Internet Service Provider. Both of these are fairly expensive and the necessity of live streaming must be considered.

The other option available is basic HTTP streaming which only requires a host server with the ability to recognize common video files; which would be required anyway to host the web application. The drawbacks of this method is the lack of live streaming. The camera would record five to seven seconds of video and then stream to the client over the internet.

8)Wi-Fi Networking/Implementation

In order for the Smart Doorknob to function as very capable security system at the palm of the users’ hand, it must have the ability to attach to the internet. The access to the Local Area Network (LAN) would be the quickest and most reliable way in order to connect the device to other applications. The most logical way to do so would be to implement an embedded system that would enable wireless attachment to the LAN. This would make the device Wi-Fi capable, allowing it to attach to the network, much like a laptop or phone, in order to run its application to connecting it to the user. Ideally, in most homes, the network would be set up in an infrastructure-style type of network, where access points are used to connect devices together. With infrastructure networks, the device would experience an almost minimal chance of disconnection between devices creating a more reliable and stable connection.

One of the first things to install on the device to make it Wi-Fi capable is a functioning antenna that could receive the signal however, keeping in mind that the product doorknob, so too large of an antenna would become blatantly obscure while, at the same time, making sure the antenna can receive the signal throughout the house. Also, there should be minimal noise in the actual local area that would or could weaken or dampen the signal. To do so, placing the antenna in the most Radio Frequency (RF) optimal positioning should help or relocate the router or Wi-Fi emitting device to a closer and more convenient location. Using a WiFi capable device would be most optimal case because it reduces energy consumption as well as maintaining the visual projection desired for the doorknob.

References;

Android Information;

Android SDK Download;

Android Tutorial;

Automated Locking System;

Doorknob Fabrication and Design;

HTTP Streaming;

Implementing Wireless Networks;

iOS SDK/Xcode Tutorial;

iOS SDK/Xcode Download;

Java Programming Language;

PHP Development;

Programming with Objective C;

Wireless Video Streaming;