You are on page 1of 8

Design of a Power Saving Home Automation System

Bryan MacKenzie
Electrical Engineering 4th Year Co-op University of Alberta Email: bdmacken@ualberta.ca

Marvin Tong
Electrical Engineering 4th Year Co-op University of Alberta Email: marvinch@ualberta.ca

Addison Revoy
Electrical Engineering 4th Year Traditional University of Alberta Email: revoy@ualberta.ca

Niladri Sarker
Electrical Engineering 4th Year Co-op University of Alberta Email: niladri@ualberta.ca

AbstractThe goal of our project is to design a user-friendly home automation system which can be easily integrated into existing homes and businesses. This home automation system controls temperature, lights, and plug-ins based on user specications. overall, the project subsystems (person tracker, light and temperature control) are working to specications. Currently, our user interface is in the process of being worked.

I. I NTRODUCTION The price of electricity and demand for power is predicted to increase exponentially in the next several years. In fact, the worlds demand for power is rising faster than the demand can be met. Consequently, industries, homes, and businesses are already taking power saving measures to save money and to become more environmentally friendly. Power saving techniques seem to have a small impact to each individual, but as the price and demand for electricity rises, the collective power saving actions of everyone will make a signicant difference. How many times have you forgotten to turn off the lights or TV when you stopped using them? Have you even turned the kitchen lights on to grab dinner and then leave them on when you left to watch TV? Chances are that situations similar to this have happened to all of us- and it happens

Person Tracking Subsystem

Input Shift Register

LCD

XInC2 Microcontroller

Output Shift Register

Temperature Control Subsystem

Light/Outlet Subsystem

Fig. 1.

Overall Block Diagram

every day. Currently, there are home automation systems on the market that have the ability to turn off lights automatically to help save money. The problem is that the savings are so little in comparison to the initial cost of the system. These systems are bought for their convenience and not their power saving capabilities. The goal of our project is to help people save money on their power bills. In many households, it is common practice to turn the temperature down during the work day or at night, to turn lights off when a room is not occupied, and to try not leave electrical devices running such as computers or TVs. Our project will be able to handle all of this automatically. To reach this goal, our project must be cheap enough that the client will save more money using the device then they paid for it, and user-friendly enough for easy integration into any home or business. The total cost of our project came out to be $ 310.53. The cost of expanding it to control an entire house would be $ 12 per outlet, $ 10 per light, $ 10 per person tracking doorway, and $ 20 per PIR. For an average house with an estimated 7 rooms with 12 lights and 21 outlets total cost would be $ 915 for entire house to be automated (including all wiring supplies). With the average bill for a house this size is $ 130 [1]. On the highest energy saving setting out project would save the end user about $ 1020 per month. These saving would pay for the entire unit after at most 8 years, while still increasing standard of living from the increase of automation. The devices will be hardwired into the walls of the home to a central control device. Figure 1 is an overview of the project where the input consists of a person tracker to see if there are any occupants in the room. This input signal is fed into an input shift register [2], then into the microcontroller. The XInC2 chip is a microcontroller that will be positioned in the same spot that the thermostat currently occupies. It will be controlled with a 5 button input and a small LCD display. Once presence of a person is detected, temperature and lighting/outlet controls will begin. The outputs of our system are light control and temperature control. The output signals from the microcontroller are sent to an output shift register [3] which sends the appropriate signals to the light/outlet and temperature control relays. For light control, there will be four settings for power conservation; high, turning lights off

immediately after leaving the room; medium, after a user set amount of time; low, after a longer user set time; and off. The subsystems of our project include: Person tracker (using passive infrared sensor, lasers, and photoelectric cells.) Power and light outlet controller (user expandable) Temperature controller Abilities: Tracking multiple people through a house Automatically turning controlled devices on and off Controlling all lights built into a house Controlling Temperature Controlling power sent to outlets Changing timings for turning off lights/devices based on rough power use estimates and user settings II. H ARDWARE D ESIGN There are 4 subsystems in hardware design for this home automation project: person tracker, temperature regulation, light and power outlet control, and the LCD. The person tracker operates separately from the other subsystems, tracking the occupancy of a room with the help of directional lasers and passive infra-red motion sensor. Based on this information, the XInC2 microcontroller takes appropriate actions to regulate temperature, and control lights and power outlets. The LCD is used to display of the user interface. A. Person Tracker The entire project depends on the ability to accurately track the occupancy in a room. For our purposes, the project is designed for one room, but the system can be expanded to the rest of the house. Most systems today rely on motion sensors to determine if a room is occupied, but we wanted to improve upon this. We added to the common tracking system by creating a laser switch [4]. The switch is able to actively adjust for ambient light by constantly comparing the voltage on the photodiode that is being hit by a laser with a photodiode that is only hit by ambient light. As you can see in gure 2, the two voltages are fed into a TLV3702 comparator, and an on/off logic output is generated. Looking at gure 3, there are two parallel lasers installed at the room entrance pointed at their respective light sensor
Fig. 4.
PIR

PIR detection waves

Directional Lasers

Fig. 3.

Person Tracker Room Layout

Laser Switch Comparator Schematic

Laser

Photo-Diode Comparator

Ambient Light

Photo-Diode MCU

Fig. 2.

Person Tracker Block Diagram

board. These lasers determine if a person is entering or leaving the room from the sequence that the laser beams are broken. However, this system is exposed to some problems. If two people walk in at the same time, the system would have a count of one person in the room. If one person were to leave, the system would act as though the room was empty, even though there is still a person present in the room. To solve this, we used a passive infrared sensor (PIR) to double check the room count. As seen in gure 4, the laser will be pointed at the D1 photodiode. When no laser is present in this system Vcc is split evenly between the D1 and D2 because they are in series (R1 is only present to limit the max current fed into the comparator and can be ignored when analyzing the circuit). The TLV3702 compares the voltage across pins 2-3 and 5-6. If the voltage across pin 5-6 is greater than the voltage across pin 2-3, a logic signal Vcc is output from pin 7. If the voltage across pin 2-3 is greater than that across pin 5-6 then a logic high of Vcc is output from pin 1. The potentiometers R2 and R3 are present in order to adjust the voltage across pins 2-3 and 5-6. This would be needed for different lighting conditions. For the purpose of our design pin 7 will be grounded and we will only be looking at pin 1. First R2 and R3 will be adjusted so that logic high is output from pin 1 on the TLV3702 when no laser is pointed at D1. By increasing R2 and decreasing R3

47

RH5
3 4

To monitor the temperature in a room, the XInC2 microcontroller will be receiving serial data outputs from the MAX6682, a thermistor to digital converter [5]. The MAX6682 energizes a 10k thermistor (at 25C) and converts its temperature dependant resistance to 10-bit digital data. Specically, the voltage is measured across an external resistor that is connected in series with the thermistor and is converted to a digital output using an internal 10-bit analog-to-digital converter (ADC). The output data from the temperature sensor is interfaced to the XInC2 microcontroller through serial peripheral interface (SPI) [6]. As shown in gure 5, the inputs to the temperature regu-

+5V

CLED5 HLMP6

D3

2 1

RLED3

100

FAN WIRE 0.5A F3

T3 2N3904 temprelay3 RB3 4.7k

GND

Fig. 6.

Schematic for the Temperature Control System

lation subsystem are the incoming 10-bit digital outputs of the MAX6682 and the push buttons on the user interface. AC-to-DC Converter Once the inputs are fed into the microcontroller, the rmware 120VAC to 9VDC Voltage VSK-S3-9U Regulator (5V) compares the temperature of the room with the user speciLM7805 ed temperature (user specied temperature is input into the Voltage system through the push buttons.) If there is a difference of Regulator (3.3V) MCU 1C, then the microcontroller will send appropriate signals to 78L33 SPI, DI1 SPI,DI18 the furnace. In other words, the role of the XInC2 is similar DI4-DI7 Temp Sensor XInC2 3 to a digital thermostat; data from temperature sensor is read 3 into the microcontroller and if heating or cooling is required, MAX6682 Shift Register a signal is sent from the microcontroller to activate the fan, 5 8 Bit (Output) Push Buttons heater, and/or condenser. 74HC595D 5x 27/03/2011 12:05:30p C:\Users\Marv\Documents\Unzip\projects\EE401\untitled.sch (Sheet: The outputs of the system, as shown in gure 6, are the DC 1/1) signals from the shift registers which forces the appropriate 120VAC Rated 120VAC Rated 120VAC Rated relays into the on state which turns on the corresponding Relay Relay Relay furnace calls. In specic, in order to reduce the number of 70M-0AC5 70M-0AC5 70M-0AC5 output wiring from the microcontroller, the DC outputs for heating and cooling are sent to a shift register (74HC595) Cooling Call Heat Call to Fan Call to to Furnace Furnace Furnace which interfaces with the microcontroller using SPI. Once the signal travels through the shift register, the DC output is sent into the base of an npn BJT switch (2N3904). While bearing Fig. 5. Block Diagram for the Temperature Control System in mind the maximum base and collector currents, the ow of

200

B. Temperature Regulation

RC3

24Vac

+5V

the comparator output logic high on pin 1 when no laser is pointed at D1. While pointing the laser at D1, R3 is increased just enough so that a logic low (0V) is output. This part will require minor adjustments depending on the max ambient lighting in the room and how powerful the laser used is. In our demo model, there will only be one PIR present. In a nal retail version there would be a separate PIR installed in every room that our system is controlling. Using the PIR alone would cause too many false readings, causing the system to impede the user rather than help. The PIR will double check the count of people in the room when it reaches 0. This device is a motion sensor that only detects movement of infra-red signatures that are around 37 degrees C. The PIR is also able to lter our movement of smaller signatures from animals or other small sources of heat. What this does is give our device the ability to differentiate between a curtain moving from the wind and a person in the room. A 5v logic signal is output if the PIR detects movement.

NTCTHERM1

+3.3V
0.1uF

NC 1 10k

TEMPSENSOR 5 IC VCC 2 6 SCK R+ 3 7 SO RGND MAX6682 CS 8

to SCLK pin of XInC2 to MISO1 pin of XInC2 to I/O pin of XInC2

REXT

7.68k

GND
14 11 10 SER SCK SCL RCK QA QB QC QD QE QF QG QH QH* 15 1 2 3 4 5 6 7 9

NC NC to I/O pin of XInC2

12

13

74HC595D

C1

NC to temprelay1 to temprelay2 to temprelay3 to powerrelay1 to powerrelay2 NC NC NC

the base current, provided by the shift register, will turn on the BJT and cause current from the collector to travel to the emitter and in the process, turn the inductive relay on(shown in gure 5). When the relay achieves the on state, a 24Vac signal is passed through the relay outputs and gives power to the fan, the heating, or the air conditioning system. C. Lighting and Outlet Control

120Vac gnd

R6 4.7k

1 3

1 3

26

26

C7
22 22

C8 10nF IC3 78L33


3 VI 2 VO GND 1

0.1uF

+3.3V output C6 0.1uF

C5
16 16

0.1uF NC GND

NC 13

13

14

14

VSK-S3-9U IC2 7805T


1 VI VO 3

+5V output

C4 C3 The most frequently used feature of our entire project will 0.33uF 0.1uF be its ability to control lights and other electronic devices GND based on the occupancy of the room. To have an automated control of the lights and other devices in a room, the XInC2 Fig. 9. Schematic for the Power Supply for the Whole Device microcontroller will control the lights and other electronic devices as shown in gure 7. All the devices in a room such as table lamps, TV, A/V devices, etc are plugged into the relay to on-state and a logic 0 output would turn the relay to wall via the controllable power outlet designed in the project. off-state. Thus, we could turn lights on/on and control when Depending on a person entering/leaving the room, the MCU the power outlet connects to the household 120VAC power will relay a signal to the lights and power outlet controller to supply. One signicant difference in the design for controlling turn on/off lights and other devices, respectively. 27/03/2011 01:21:06p C:\Users\Marv\Documents\Unzip\projects\EE401\untitled.sch 1/1) the lights is that we have(Sheet: to account for the existing lights The design of light control and power outlet control are very switches at a house. The existing switches would act as an similar [7]. A schematic for the design is shown in gure 8, override switch which is connected between the lights and the where a BJT and a relay act as switches. An output of 3.3V is relay. This is so that the user can still use the wall switches taken from the MCU via a shift register (74HC595) to control to turn light on/off and override the MCU commands when a relay (T9A-S1D12-5), which will act as a switch to turn on necessary. A fast switching diode was used across the relay to and off the lights/power outlet. Since the relay requires a 5V prevent backow emf and to protect the circuit. The purpose and the MCU only outputs 3.3V, we cannot control the relay of the indicator LED is for both testing purposes and to let directly. A solution to this is to use a BJT (2N3904) between the user know that the relay received the MCU signal. the shift register and the relay. As a result, a logic 1 output from the shift register (with voltage >0.7V) would turn the D. Power Supply
GND 2

MCU

Relay

Outlet/Lights

Fig. 7.

Block Diagram for Lighting/Outlet Control


VCC

C1 47uF

C2 10nF

GND

Supply Decoupling

VCC

D2 1N4148

T9AS1D12-5 Switched 120V 15A J1-2 GMSTBA2


1 2

Since our product is hardwired in a house, it was naturally determined that the household power supply would be used as our main power source. Extensive research and care is taken in proper hazard assessment in dealing with 120VAC power supply, as well as in ADC converters and voltage regulators, to provide the required voltages and currents to the components in our system. As seen in gure 9, 120VAC is fed into pin 1 of the VSKS3- 9U AC/DC converter with a fuse connected before pin 1 to protect the AC to DC converter. Capacitors are used to remove noise and to produce a dc-like output signal. The output of the AC to DC converter is 9V on pin 16, which is fed to the inputs of the LM7805 and L78L33 to get 5V and 3.3V respectively. The 5V and 3.3V is then routed to power all the other parts in our home automation system
Out In

D1

330

R1

VCC

Connection to Driver Board 22-23-2031


J2-1 J2-2 J2-3

J1-1

E. LCD The NHD-320240WX-COTFH graphic LCD interfaces directly with the MCU via 13 pins. The connection is composed of an 8-bit parallel data line and 5 control lines: A0 selects data or instruction, WR enables write mode, RD enables read mode, CS enables the LCD controller and RES which resets the LCD. In the standard input mode, the A0 is rst set low, the instruction byte is passed through the data line, then A0 is set high, and one or more data bytes are passed depending on the instruction [8].

VCC REL GND 10K R3

1K R2

Q1 2N3904 330 R5 GND

1K R4

GND

Fig. 8.

Schematic for Lighting/Outlet Control

D3

GND

GND

VCC

Relay Signal Indicator

Q2 2N3904

F. Overall Connection The inputs to our XInC2 are the light sensors, current temperature, and PIR. All of these inputs are fed into the input shift register, which is connected to the XInC2. In this project only one 8-bit input shift register was used because of the small scale of our demo (2 light sensor inputs, 1 PIR, and 1 temperature sensor input). The outputs of the system go from the XInC2 to the output shift register to the light/outlet control subsystem and the temperature control subsystem. Again only one 8-bit output shift register was used because there is 2 outputs to the light/outlet control subsystem and 3 to the temperature control subsystem. G. Operation of Components 1) BJT Switch: The model of BJT used is the 2N3904 npn BJT. The BJT switch is used for the temperature and light control output. The two models of relay are connected to the collector branch of the BJT with a protection diode across the relay inputs. The base of the BJT receives a DC voltage from the output shift register therefore allowing current to ow through the collector branch. The current owing through the collector is powered by a 5VDC source and will turn on the relay switch. 2) Temperature Sensor: The MAX6682 temperature sensor is an integrated IC package that converts the voltage across an external resistor using a 10-bit ADC. The temperature sensor interfaces with the XInC2 using SPI. The DOUT is scaled to 8LSBs/C (for 0.125C resolution). Specically, DOU T =
VREXT VR

4) Passive Infra-red Motion Sensor (PIR) : The PIR passively accepts infrared radiation given off by all objects. The RX-40PI PIR uses its own patented Optical Quad Zone Logic. What this does is prevent false alarms from animals that are 016 inches in height, as well as spot temperature changes from house hold devices or windows. When the alarm triggers, it sends a 28VDC for 2.5s. III. F IRMWARE The rmware in this project is designed to take advantage of the multi-threading available in the XInC2 MCU, and is divided among six of the MCUs eight cores. Each core is used to handle a single set of responsibilities, with each of them interacting and working with the others. Core 0 contains the master control process which facilitates high level operation of the system, and supervises and initializes the other cores. Core 1 provides the basic functionality of the automation process and is used to check the state of detectors, and activate or deactivate effectors in accordance with the user settings. The other cores are all used to interface the MCU with the other parts of the system, each of which interacts with the automation core via shared memory locations. The way in which the cores interact can be seen in gure 11. The majority of the I/O is managed by core 2, which is responsible for the pushbuttons and input shift register, the output shift register and also the system clock. Core 2 loops continuously and performs three major steps in each cycle, which can be seen in gure 12. The rst is to write the output from the automation core to the output shift register, then to read the input shift register and state of each button and store these in memory Lastly, the core performs the operations need to maintain the system clock, and adds a delay to slow the operation time of each cycle to be as near to 1 ms as possible. Core 3 supervises the temperature sensor and furnace and only interacts with the automation core to check the current temperature settings. During each loop cycle, core 3 reads in the current value of the temperature sensor via the XInC2s SPI port, gets the current temperature setting from memory, and compares this to the current temperature. If the current
Menu system Initialize menu system Start

0.1743878 0.010404

(1)

Where VR = 1.220V Refer to gure 10 for a conversion table for REXT = 7.68k. 3) Push Buttons: A set of ve active-high pushbuttons are used to navigate the graphic menu on the LCD, and to enter new settings for the automation system to follow. The buttons are arranged in a diamond pattern with one button in the middle. The four buttons on the outside (up, down, left and right) control the location of the cursor, which is identied by a box surrounding the currently selected menu option. This option can then be selected by pressing the central select button. Each button is interfaced directly with the MCU, and the state of each button in checked once per millisecond.

Get current menu state

Thermistor Temp (C) 30 25 20 10

VREXT (mV) 595.4 530.1 464.4 339.7

DOUT(Decimal Value) 30.125 25 19.875 10

DOUT 000 1111 0001 000 1100 1000 000 1001 1111 000 0101 0000

Main

Temperature Settings

Room Settings

Time Settings

Main Menu Subroutine

Temperature Menu Subroutine

Rooms Menu Subroutine

Time Menu Subroutine

Set menu flag

Fig. 10.

Temperature Digital Conversion Table for MAX6682

Fig. 11.

Overall Firmware Flowchart

temperature is lower than the setting, the furnace is turned on (see gure 13 for overview). Core 4 is responsible for the menu system, and is the only process that uses the input from the buttons. This process uses a state machine to maintain the menu system, with each menu screen being represented by a different state. Given the current state of the menu, the buttons will do different things, which are described in the UI section (see gure 14 for state system). In core 5, the current state of the menu and the location of the cursor are passed from core 4 and used to determine what should be written to the LCD. The visual representation of each menu is stored in memory, and when the call to draw the menu is made from core 4, the data draw is accessed and modied to account for the position of the cursor. The data is then fed to the LCD and displayed on the screen(see gure 15 for overview). A. I/O and Automation During the initial setup, each of the 8 input ports on the shift register are mapped to a specic room and sensor type that correspond with how the detectors are placed within the house. The same is true for the output ports and the effectors. Once
I/O and clock Start

Start

Get current temperature from sensor via SPI0 Get temperature setting from from automation process

current < setting - 1 NO current > setting + 1 NO


LCD Process set to OFF

YES

Set heating to ON Set cooling to OFF

YES

Set cooling to ON Set heating to OFF

Heating and cooling

Fig. 13. Temperature Regulation Flowchart Start


Menu system Initialize menu system Start

Initialize clock

Initialize LCD
Get current menu state

Get output register data from automation process Shift output data to output register via GPIO Read input from input shift register via GPIO Store input data in memory for automation process Get button states and store in memory Increment millisecond counter and adjust other time values as needed Add delay to increase cycle completion time to 1 ms
Fig. 12. Clock an I/O Flowchart

Wait for menu flag to be set


Main Menu Subroutine

Main

Temperature Settings

Room Settings

Time Settings

When SET

Temperature Menu Subroutine

Rooms Menu Subroutine

Time Menu Subroutine

Get menu state and Set menu flag cursor location Generate draw data
Fig. 14. Menu Selection Flowchart

these settings have been established, the automation system is ready to operate. The input is read into the MCU as described Reset menu flag in the rmware overview, and once it is stored in memory, the automation process takes over. If a laser detector is tripped, the process records it and LCD the second detector is tripped, indicating waits Draw until to either a change in the rooms occupancy, or until the rst laser no longer sends an input, possibly indicating a false read or an indecisive person. Depending on which laser detector in the pair was activated rst, the process either adds or subtracts 1 from the occupancy status of that room. If the occupancy status of the room changes from 0 to 1 the automation process sets the output bits for that room to 1, which are then sent to the output shift register and activate the

Automation System

corresponding effectors. If the number of occupants changes from 1 to 0, then the automation process then sets a timer and waits until either the timer counts down, at which point the effectors are turned off, or until the number of occupants is non-zero and deactivates the timer, and leaves the effectors on. The way the effectors are activated and deactivated depends on the user settings. The length of the empty-room timer, and which effectors turn on, are not static and may depend on the time of day and the day of the week. All of this is set by the user during initial setup, and may be modied by the user at any time. (see in gure 16 for visual depiction). B. Temperature Regulation Firmware Digital out (DOU T ) from the temperature sensor is read (eg room temp.=000 1001 1111) and checks with the user specied temperature. If the actual temperature is above or below the set temperature, a signal is sent to the output shift register to turn on the appropriate furnace calls. Force the chip select (CS) LOW and apply a clock (SCK) signal to read the results at the serial output (SO). Forcing CS low immediately stops all conversions. Forcing CS high initiates a new conversion. (Forcing CS low outputs the rst bit on the SO pin, a complete read requires 11 clock cycles.) IV. U SER I NTERFACE The UI is a graphical menu system that is displayed on the LCD, and is navigated by using the pushbuttons. The UIs
LCD Process Start

Initialize rooms and timers

Start

Send results to output

Wait for input

Check laser detectors

Occupants -= 1

No activity

Enter detected

Exit detected

NO

Wait timer set? YES Decrease timer

Wait timer set? NO

YES Reset timer Occupants <= 1 YES YES Activate lights and devices

NO

YES PIR active NO Set wait timer for room

Occupants == 0 NO Occupants += 1

NO

Timer <= 0 YES

Occupants = 0; Deactivate lights and devices

Fig. 16.

Overall Automation Flowchart

clock

lock

Initialize LCD

r data from process

Wait for menu flag to be set When SET Get menu state and cursor location Generate draw data

data to via GPIO

m input via GPIO

in memory n process

Reset menu flag

ates and mory Draw to LCD

ond counter time values ed

Fig. 15.

LCD Programing Flowchart

purpose is to proved a direct means to access and modify the system settings. As described in the pushbutton section, menu items are highlighted with a cursor, and when selected, will either be modied using the directional buttons or enter the next set of options when select is pressed. When in the main menu, up and down control temporary temperature settings, left and right select which of the three other menus (temperature, room settings and time) are highlighted by the cursor, and select choses the highlighted menu. In temperature, the day time or night time temperature settings can be highlighted using the left and right buttons, pressing up or down changes the highlighted setting, and pressing select at any time returns to the main menu and saves any changes. The time menu is used to set the system time, and the time period that night covers. When rst brought to the screen, pressing up and down changes between Current time and Night times. Pressing right at this point will allow the user to move the cursor over the highlighted option, and to modify these values. In current time, the day of the week, hour and minute can all be incremented or decremented using up and down, or cycled between using left and right. For night times, the start and end times of nigh can be modied in much the same way. As with the temperature settings, pressing select at any time will return to the main menu and save any changes. Room settings determine the turn off delay times for day and night for each type of effector in the room. When the menu is entered, the cursor can be moved to highlight either lights or power relays using up and down. When right is pressed on the highlighted option, that option can then be edited in the same manner as the time settings above, and again select exits and saves.

rease cycle e to 1 ms

R EFERENCES
Current Temperature

TEMPERATURE

12:01 F 0
RIDAY

21.5

LIGHTS DEVICES

October 8th, 2010

Fig. 17.

Target Final Device Look

V. F UTURE F EATURES Some additions that can be made to this device in the future TEMPERATURE would be to add feedback. The next logical step to the project would be to add a return signal rom all C devices to the MCU LIGHTS to tell it if the device is on or off. This5 way problems can be DEVICES spotted automatically when the MCU sends a signal to turn a 12:0 device on, but the device doesnt turn on. FRIDAY October 8 , would be to expand Another logical extension to the 0 project 2010 it to more then one room. This way we would be able to test interactions and programing when dealing with tracking people through more than one room.
Current Temperature

21.

[1] What is Electricity. Internet: http://www.energy.alberta.ca/Electricity/ 684.asp , Mar. 28, 2011 [Mar. 30, 2011]. [2] NXP Semiconductor. 8-bit parallel-in/serial out shift register. Datasheet: http://www.nxp.com/documents/data sheet/74HC HCT165.pdf, Mar. 14, 2008 [Jan. 15, 2011]. [3] Philips Semiconductor. 8-bit serial-in, serial or parallel-out shift register with output latches; 3-state. Datasheet: http://www.nxp.com/documents/ data sheet/74HC HCT595.pdf, Jun. 25, 2003 [Jan. 15, 2011]. [4] David Cook. Laser Pointer Triggered On/Off Switch. Internet: http: //www.robotroom.com/Laser-Detector-Remote-Control.html [Oct. 20, 2010]. [5] Maxim Integrated Products. Maxim Thermistor-to-Digital Converter Datasheet. Datasheet: http://datasheets.maxim-ic.com/en/ds/MAX6682. pdf, 2002 [Dec. 02, 2010]. [6] David Kalinsky and Roee Kalinsky. Introduction to Serial Peripheral Interface. Internet: http://www.eetimes.com/discussion/beginner-s-corner/ 4023908/Introduction-to-Serial-Peripheral-Interface/, Feb. 1, 2002 [Jan. 23, 2011]. [7] Nathan Seidle. Controllable Power Outlet . Internet: http://www. sparkfun.com/tutorials/119 Dec. 2, 2008 [Oct. 20, 2010]. [8] RA8835 Dot Matrix LCD Controller Specication. Internet: http: //www.hantronix.com/les/down/ra8835.pdf, Nov. 21, 2005 [Dec. 10, 2010].

th

VI. C ONCLUSION As of April 1st, 2011, the subsystems have been tested and are working and we have begun testing interactions between our rmware and subsystems. The nal projecting interface of our device can be seen in gure 17. Most of the components in the subsystems will be hidden from view in the wall, leaving just the buttons, LCD, and MCU to be mounted on the wall where traditionally the thermostat is positioned. The light sensor was properly congured to detect when the laser was broken, while not accidentally tripping due to different ambient light environments. In addition, the temperature and light control subsystem outputs are conrmed to be working. Specically, the rmware has been tested and is conrmed to be outputting the appropriate signals to the subsystem BJT switches which control lighting and furnace operations. Overall, the project has been working to design specications and has maintained a high quality standard which can be integrated into modern homes. ACKNOWLEDGMENT We would like to acknowledge the following for their consultation and advice throughout the lab: ECE Department: Loren Wyard-Scott, Edward Tiong, and Godfrey Obumneme Our Clients: Ryan A. and Curtis D. from Eleven Engineering for supplying the microcontroller and development board.