Senior Design Group #5 (Summer 2012) 2012: A Home Odyssey Senior Design Group #5 (Summer 2012) Members: Kyle D'arcangelis John Edison Heston Posner Jimmy Wong
Overview Home Automation System Wireless Communication between Subsystems Android-based Application Control Lighting, HVAC, Television
Project Goals and Objectives Reduce energy consumption Reduce cost Ease of Use Reliable Compact Integration of Google App Engine with user interface and hardware
Overall Project Block Diagram
Hardware Specifications and Requirements TI MSP430G2553 Value Line MCU TI CC1100 RF Transceiver TI LM3S8962 ARM Cortex-M3 MCU 3.3V for all digital logic circuitry 925 MHz wireless communication for up to 100m 2 layer printed circuit boards
Microcontroller Comparison Model Memory Language Experience Price MSP 430G2553 16 kB Flash C Yes $1.00 ATmega 328p-pu 32 kB Flash C++ No $2.50 ATMEL ATmega 328P-PU MSP430G2553
TI MSP 430 G2553 Compatibility Low Cost Low Energy Comsumption Dual Inline Packaging (DIP) PWM pins for IR Remote
Software Specifications and Requirements Android OS 2.2 SDK Google App Engine 1.6.3 SDK Touch Interface High replication data storage
Lighting Subsystem MSP430G2553 Microcontroller TI CC1100 RF Module DS1803DIL16 Digital Potentiometer 4x4 LED Clusters
Lighting Subsystem
Lighting Subsystem
Lighting Subsystem LED Cluster
HVAC Subsystem MSP430G2553 Microcontroller TI TMP 100 Temperature Sensor TI CC1100 RF Module LED Indicators
HVAC Subsystem
HVAC Subsystem
Television Subsystem Infrared Remote Control Transmitter Receives commands from the Stellaris base station Tasks Power on/off Channel up/down Volume up/down Channel Selection
Television Subsystem Components TI MSP430G2553 Communicates with the RF transceiver using I^2C TI CC1100 RF Module Receives commands over a 925 MHz signal. Forwards commands to the Microcontroller. IR LED Transmits the infrared packets.
Hardware Block Diagram
Television IR Remote Sony SIRC protocol 38 kHz carrier wave 12 bit data stream 7 command bits & 5 address bits Low Power mode until interrupt is received Transmission Example: SIRC Start bit; carrier on for 2.4 ms Logical "1" is a 1.2 ms burst of the 38 kHz carrier followed by a 0.6 ms idle Logical "0" is a 0.6 ms burst of the 38 kHz carrier followed by a 0.6 ms idle
Television Subsystem Schematic
Design Approach Master/Slave topology for hardware Client/Server architecture for software
Google App Engine vs MySQL instance Non-relational database structure Relational database structure Inherently a distributed architecture (Data replication is automatically handled) Must manually configure a distributed architecture No join operations are available Join operations are available Automatically creates an instance of the database as an application is instantiated on the server Must be hosted on a server for remote access
Why we chose Google App Engine No need for relationships between tables No join operations will be needed for the queries of our application Simplicity of uploading new versions of the server application via an Eclipse plugin Central administrator console 10 server applications allowed for a single Google account (Allows for plenty of testing) Enough resources to allow for a fully operational application
Software Design: User and Admin Privileges
Software Design: Database Entities <Insert John's class diagram here>
UI Design: Login Screen Acts as the initial screen of the application (through AndroidManifest.xml) MUST have a Google account to use the application
UI Design: Main Menu Utilizes the "simple_list_item1" menu layout When a menu item is selected, the corresponding class, containing the .xml layout load and the functionalities, will run
UI Design: Input Provider Interface Allows the user to view the current provider and enter in a new provider Current provider textview displays the company name and the residential rates To enter in a new provider, the user would have to enter the name and the rates
UI Design: Input Wattages Interface Input wattages for specific devices controlled by a particular subsystem Android Spinner objects will be used to select between different fixtures (For Dimmer and HVAC) Textfields used for wattage input
UI Design: Current Wattages Interface Textview used to display the wattages of the selected fixture Spinners will be used to select a specific fixture It will always display the TV wattage (Due to only 1 television set will be controlled)
UI Design: Calculate Usage Interface Allows the user to calculate the monetary cost of the electricity usage according to a specific date or month Utilizes a DatePicker object to choose thedate Utilizes a Spinner object to choose the month
UI Design: Dimmer Control Interface Allows the user to control the brightness level of lighting fixtures in 3 rooms: Living room, bedroom, and the kitchen Checkboxes used to select lighting fixtures SeekBar object used to choose the brightness level Button used to set light level
UI Design: HVAC Control Interface
UI Design: TV Control Interface