My favorites | Sign in
ac2
Project Home Downloads Wiki Issues Source
Search
for
Report  

Featured
Updated Feb 4, 2010 by shakir.j...@gmail.com

Abstract

Despite the recent economic crisis, energy efficiency remains a priority for developed nations. Compact cars and hybrids are replacing larger, gas-guzzling vehicles. Efficient, fluorescent lamps are replacing less efficient incandescent ones. However, few options exist for efficient temperature control in existing homes. Our proposal, Automated Climate Control (AC2), fills this gap by providing energy-efficient temperature control for existing homes.

To improve the efficiency of existing heating and cooling systems, AC2 accurately measures temperature and automates temperature regulation. AC2 uses a wireless sensor network to retrofit existing systems. Temperature sensors are used to measure temperature on a finer granularity than a centrally located thermostat. A servomotor controlled by a wireless mote automatically opens and closes the vents based on ambient temperature.

Introduction

Efficient heating and cooling systems significantly reduce energy costs for consumers. In the United States, electricity consumption in the home accounts for 40% of its total demand 1. In these homes, heating and cooling systems use the most electricity 2. In addition, the cost of electricity is rising 2 due in part to unstable oil prices. It is no surprise that AmerenUE, a Missouri-based energy company, intends to raise their electricity rates 3. Although new, more efficient cooling and heating systems are available, it is prohibitively expensive to replace existing systems. In this project, we develop a cost-effective alternative to reducing heating and cooling costs in existing the home.

Current heating and cooling systems are inefficient because they inaccurately measure temperature and expect users to manually regulate temperature by opening and closing vents. Traditional systems use a centrally located thermostat. Thus, the thermostat’s ambient temperature is used as a crude approximation of average temperature in all rooms in the home. Additionally, in contemporary systems, vents are placed in different rooms. Users are expected to open or close these vents by hand to regulate temperature in the room. In most cases, the vents in a room are either always open or closed. Due to inaccurate temperature measurement and hand-operated vents, energy is wasted overcooling or overheating some rooms to regulate the temperature in others.

Our system, called Automated Climate Control (AC2), improves the efficiency of existing systems by accurately measuring temperature and automatically opening and closing vents. AC2 uses a wireless sensor network (WSN) and a servomotor to cost-effectively retrofit existing systems. In lieu of a central thermostat, our system uses temperate sensors to accurately measure the temperature in a room. A vent controller, which consists of a wireless mote and a servomotor, opens or closes a vent based on current room temperature obtained from the temperature sensor. For example, in cooling mode, the vent controller opens the vent when the current temperature (received from the temperature sensor) exceeds the pre-set target or setpoint temperature.

The remainder of the paper is organized as follows. Section 2 describes AC2 system. Our evaluation results are presented in Section 3. In Section 4, we survey related work. We consider future work in Section 5 and conclude in Section 6.

Design

Objectives

AC2's primary objective is to improve the efficiency of existing heating and cooling system in the home. We also considered the following goals in our design:

  • Cost: It is essential that the cost of installation and ownership be small. AC2's installation should not require any costly changes to the existing system. Also, AC2's power consumption should be negligible.
  • Usability: It should be easy to monitor and control the system. The interface should be simple and uncluttered. Users should be able to observe the real-time status of the system and view statistics on past data.
  • Accessibility: Users should be able to control the system remotely from different rooms in the home and outside the home.

Component Architecture

As shown in Figure 1, the system consists of four components: system controller, gateway, temperature sensors, and vent controllers. The system controller is a web application that runs on a web server. The web application allows the user to control and monitor the system. The other components run on the wireless motes and form WSN. The gateway provides an interface between the system controller and the WSN. Temperature sensors detect and broadcast the ambient temperature of a room. Finally, the vent controller opens and closes the vent.

Figure 1. System overview showing system controller, temperature sensors and vent controllers.

System Controller

Users interact with the system via the system controller. They send commands to and receive updates from the WSN using the system controller. Two types of commands are sent: change setpoint temperature and set mode (cooling or heating). These commands are also zone specific. For example, the user can issue the command "set setpoint in zone 1 to 71 ºF." Updates received from the WSN include: current temperature reading and vent state (open or closed). Updates are also zone specific. Figure 2 shows the design of the system controller interface. In the figure, the temperature reading update and vent status update dynamically every 5 seconds. Figure 2. Design of system controller’s control and real-time monitoring interface Figure 3. Design of system controller statistics screen In addition to monitoring the real-time state of the system, the system controller stores and processes the data it receives from the WSN. Along with the temperature reading, the date and time the reading was received is stored. Using the stored data the system controller calculates temperature statistics such as average, standard deviation, and range. Figure 3 show design of the user interface for the statistics screen. Notice that the user is also presented with a visual timeline of the temperature reading over time.

Mote Interface

The Mote Interface acts as a bridge between the System Controller and the AC2 wireless sensor network. A computer is set up with a sensorless Moteiv Tmote Sky mote. This mote is programmed to be a simple network-to-serial and serial-to-network repeater. No packet translation is performed by the mote itself, it merely accepts all broadcast messages and repeats them to the serial port to be handled by the host computer. Similarly, it receives commands from the serial port to be issued, and retransmits them over the wireless network to the AC2 WSN.

There are two applications which run on the host computer, both of which are written in Java. The first is the PacketListener, whose job is to listen to the Tmote Sky mote on the serial port for incoming messages. When an incoming message is received, the PacketListener uses a PacketFactory to construct a Java object to extract the data from the packet payload and perform some action to the System Controller. Communication between the PacketListener and the System Controller occurs over HTTP. After the payload is extracted, the PacketHandler creates a URL containing the instructions for the SystemController. For example, when a temperature update is received from a zone within the WSN, the url http://localhost/ac2/reading/add/temperature/zone/16/reading/72.5/count/15 is generated and the HTTP request is made to the System Controller.

The second application is the PacketSender whose job it is to receive commands from the System Controller and create a byte packet that will be issued to the AC2 WSN via the attached mote. The PacketSender is a command line driven application that issues commands on demand, based on the command line parameters passed to it. At the moment, the System Controller is calling the command line directly, but it would be trivial to deploy an Apache server on the MoteInterface computer to truly decouple the Mote Interface and the System Controller. The PacketSender creates the AC2 packet object specific to the command issued then fills the byte packet, and sends the packet to the attached mote to be delivered to the AC2 WSN.

Temperature sensors

The temperature motes are responsible for providing environmental state to the System Controller via the Mote Interface computer. The temperature motes are defined by their TOS_NODE_ID. Since there is one temperature mote per controlled zone, each zone is identified by the upper nibble of the node ID, beginning at 16 with the lower nibble set to zero. The Vent Controllers that are assigned to a zone have the same upper nibble as their corresponding temperature sensors and the lower nibble identifying the unique vent controller in the zone. The temperature mote takes a reading periodically, and broadcasts it to the system. An ideal future upgrade would be to sample the temperature periodically, and only activate the network broadcast when the temperature reading has changed past a threshold from the last broadcast.

Vent Controller

The VentController is one of the three categories of Wireless sensor nodes in the AC2 system. Its primary function is to open and close a mechanical flap in order to allow or hinder the flow of air into a room. The Vent Flap is afixed to a servo motor, which is in turn controlled by the Pulse-Width-Modulated ouput signal of the VentController wireless sensor node. One VentController (with vent flap apparatus) is to be installed at each vent in a room or zone controlled by the AC2 system. Since there may be more than one vent in a given room or zone, the AC2 system has built-in support for multiple VentControllers? in a zone. The VentControllers?, when deployed, are programmed with a TOS_NODE_ID in accordance with the layout listed in the NodeIDFormat Wiki page. The specific numbering scheme is designed to embed the zone number for a given room into the VentController's TOS_NODE_ID number. This is further done in manner that allows for commands to be quickly parsed and processed by masking a node ID for the bits applicable to the zone number. This process is key in the VentController's ability to remain in a low-power state for as long as possible and is utilzed when parsing broadcast commands across the AC2 system.

IMPLEMENTATION

Component Interaction

Following are the basic component interactions that the AC2 system performs.

Figure a: Temperature Sensor Sends Update

Figure b: User sets target temperature

Figure c: User sets heat/cool mode

Figure d: User requests vent status

Node ID Assignment

The following rules describe the assignment of node IDs. The TOS_NODE_ID values range from 0x00 to 0xFF. All node IDs are one byte.

  • There is one and only one gateway mote. The gateway mote will always have a TOS_NODE_ID = 0x00
  • TOS_NODE_IDs 0x01 through 0x0F are reserved for future development.
  • Temperature sensor motes are assigned a zone ID in the high nibble, and a zero in the low nibble, starting with TOS_NODE_ID = 0x10, and going through 0xF0.
  • Vent controller motes are associated with a temperature sensor. They are associated with a zone. The zone ID is located in the upper nibble, and the vent ID is located in the lower nibble. Since the temperature sensor uses lower nibble of 0, the vent contoller motes can have a value of 0x1 through 0xF.

Example

A system with three zones. The first zone has three vents. The second zone has two vents. The third zone has 4 vents:

Function Codes

Function codes are used to identify the purpose of a packet (as defined below). AC2 function codes are one byte long.

  • FUNCTION_TEMPERATURE_UPDATE: 0x01 - Alerts the system of a temperature reading.
  • FUNCTION_SET_TARGET_TEMPERATURE: 0x02 - Sets the target temperature for a specific zone.
  • FUNCTION_SET_MODE: 0x03 - Sets the system to heat or cool mode.
  • FUNCTION_MODE_UPDATE: 0x04 - Alerts the system of the current heat or cool mode of a node. This message is no longer needed, as the vent status message contains both mode and status updates.
  • FUNCTION_VENT_STATUS_UPDATE: 0x05 - Alerts the system of the current open or closed state of a vent, as well as the current heat or cooling mode.
  • FUNCTION_REQUEST_VENT_STATUS: 0x06 - Requests the vent status from the system.

Protocol Specification

All of the information that goes beyond the mote hardware boundary is transmitted via data packets. This includes wireless network transmission (mote to mote, wirelessly) and mote to computer (via hard serial connection). This section details the layout of these data packets.

Overview

All of the AC2 packets consist of 14 bytes. The general structure is as follows, and will be detailed further in this specification.

The general case:

ZigBee header Source Destination Function Function specific payload
64 bits, unused by AC2 8 bits 8 bits 8 bits 24 bits

All of the packets transmitted and received by our motes begin with a 64 bit Zigbee header. We do not utilize any of the data in the Zigbee header, so for convenience, the header will be ignored in this specification.

ZigBee header
64 bits, unused by AC2

AC2 Header

All AC2 packets will share a common header that is independent of the payload

Source Destination
8 bits 8 bits

  • Source: The source is the sender of the data, as defined in the Node ID Assignment section.
  • Destination: The intended recipient of the data, as defined in the Node ID Assignment section.

Function Payloads

All payloads are packed into four bytes.

Function Function specific payload
8 bits 24 bits

  • Function: The function as defined in the FunctionCodes specification.

FUNCTION_TEMPERATURE_UPDATE specific payload

Temperature Counter
16 bits 8 bits

  • Temperature: Raw temperature reading.
  • Counter: Increases the counter each temperature reading.

FUNCTION_SET_TARGET_TEMPERATURE specific payload

Temperature Unused
16 bits 8 bits

  • Temperature: Temperature in raw form.

FUNCTION_SET_MODE specific payload

Mode Unused
8 bits 16 bits

  • Mode: 0x0 for heat, 0x1 for cool

FUNCTION_VENT_STATUS_UPDATE specific payload

Status Mode Unused
8 bits 8 bits 8 bits

  • Status: 0x0 for open, 0x1 for closed
  • Mode: 0x0 for heating, 0x01 for cooling

System Controller

Gateway

I will be adding a class diagram here Just need to be able to use Visio, which I have at home.

Vent Controller

The VentControllers are implemented as follows. First, messages are received over the ZigBee radio. These messages are then parsed to see if they apply to the specific vent controller. First, and upon powerup, the Vent Controller resets its various chip-level parameters, configures the PWM output pins, opens the vent flap, defaults its Mode to Cooling and its Target Temperature to 73 degrees Fahrenheit, sets the Zone according to its TOS_NODE_ID, and toggles the Led's. The PWM pins include a ground reference, an always-on motor power drive signal, and the pulse-width modulated signal. The pins used are the general-purpose I/O pins #61, 62, and GND on the TMote Sky's 10-pin expansion connector. After the boot process is complete, the Vent Controller will adjust its vent flap position open and then again according to its target temperature and mode, will configure the Zigbee Radio and then will wait for new temperature and heating/cooling mode information from the System Controller and Thermometer nodes. Upon receiving any update the VentController will parse the incoming packet to determine if it applies to the specific Zone. Once it is determined that the the message is intended for the current node, the VentController will parse out the message Function and message Payload from the data packet. This data is used to update the stored values for Target Temperature, Current Temperature, and System Mode. The VentController will then use the new incormation to determine if the vent flap position needs to be changed. Regardless of changes, the VentController will broadcast a status message to the remainder of the AC2 network with the current system mode and vent status position. After these processes, the VentController will idle in a low-power state until the next incoming data packet received from another node on the network.

The determination of whether or not the vent position should change is documented in Figure 1. With any new piece of data the VentController checks to see how the current temperature compares to its target temperature. This information along with the system mode setting will determine the vent position as follows. If the current temperature is above the target threshold and if the system is in cooling mode, then the vent will open. If the temperature is above its target threshold and if the system is in heating mode then the vent will be closed. Similar logic is used when the temperature drops below its threshold value. When this process has completed, the VentController adjusts its output signal to drive the servo motor into the correct position. A temperature threshold is used instead of a straight comparison between the target temperature and current temperature to limit the use of the vent flap, thus conserving power in the AC2 system as well as the home air conditioning system.

The operation of the vent flap is controlled by a the code listed in Figure 2, which generates a Pulse-width-modulated signal. Based on the vent position, the width of the pulse is set to either 1ms (vent is closed) or 2ms (vent is open). The PWM generating function is entered every 1 ms at which point the minimum activity of incrementing a counter is performed. If this counter is below the Pule Width, then the general-purpose I/O pin is set HIGH. If the counter is above the Pulse Width value, then the I/O pin is set low. This cycle repeats after the PWM counter has exceeded the PWM Period value (typically 18ms). This process repeats indefinitely with the PWM pulse alternating its width as necessary.

The PWM signal, a positive reference signal, and a ground reference signal are all passed from the VentController mote to a secondary motor driver circuit board. The schematic for the motor driver can be seen in Figure 3. The PWM signal is passed directly from the VentController to the input signal line of servo motor. The positive reference signal is used to drive (turn on) a 2N2222 transistor. The servo motor itself is connected in series with an extra 6V DC voltage source and the Transistor. Power is provided to the servo motor as long as the VentController mode is turned on and the signal from the general purpose I/O pin 62 remains high.

Vent Position Determination - This code is called if there is a new heating/cooling mode, a new room temperature, or a new target temperature.

        newVentPosition = ((storeReading > (targetTemp+epsilon)) & (systemMode == MODE_HEAT))
                                        | ((storeReading < (targetTemp-epsilon)) & (systemMode == MODE_COOL)); 
        if (ventPosition != newVentPosition)
        {
                ledSetting &= 0xFC;
                ledSetting |= (newVentPosition + 1);    
                ventPosition = newVentPosition;
        }

PWM Signal Generation - This function runs on a timer every 1ms and will cycle every 18ms. Based on the Vent position the width of the pulse is changed.

        task void generatePWMSignal() 
        {
                if (ventPosition == VENT_OPEN)
                        PWMWidth = 2; //ms
                if (ventPosition == VENT_CLOSE)
                        PWMWidth = 1; //ms

                if (PWMCount <= PWMWidth)
                        call gpio61.set();
                else 
                        call gpio61.clr();
                if (PWMCount > PWMPeriod)
                {
                        PWMCount = 0;
                }
                PWMCount += PWM_PERIODIC;
        }

shakir: Evaluation

I'm going to try to write something. Even if I have to make up shit.

Related Work

RELATED WORK The AC2 system is is one of several existing projects geared toward automating a home heating and cooling system. Other exiting projects of note are the X10 – Complete PC Home Automation System and the DIY-Zoning project which each have certain unique characteristics. The X10 system includes support for remotely turning off and lights and other devices within the home, and is generally geared toward reducing home energy costs by interfacing with appliances rather than the entire home HVAC system. They do offer support for interfacing with the home thermostat and controlling it through a software web interface accessible from inside and outside the home. What it does not support, however, is the ability to regulate the heating and cooling in individual rooms or zones.

The DIY-Zoning project is a community project geared toward individual room heating and cooling control, and in doing so also supports opening and closing vents in the various rooms. This project, however, uses hardwired thermometers that are connected via an RS-232 interface to a computer, thus installation and setup is notably more difficult and cumbersome than the wireless aspect of the AC2 System.

There are also certain corporate projects that are being developed for similar control of the home A/C system. Texas Instruments and Emerson electric are two such companies working on such projects.

Future Work

There are four primary area of work on the AC2 system that can be enhanced or still require work. The first is adding in support for larger sensor node networks by implementing a multi-hop solution where by data packets will be forwarded by temperature sensors and VentControllers to adjacent rooms or zones and the temperature sensors in those zones will forward the packets to the Gateway node and System Controller.

Another area that can be improved is the power-management of the various sensor nodes. For example, the thermometer node currently doesn't store its own readings. If it did, it could make a judgement not to broadcast the temperature reading if it hasn't changes significantly. Further, all of the sensor nodes need to be placed more explicitly into low-power modes when they are not actively transmitting and receiving data, or reading from or controlling peripheral equipment. The addition of a low battery indication message to the sensors within the AC2 system would also be useful in managing power consumption. The current AC2 packet specification allows for such warming messages with minor edits.

The third area for improvement would be in the addition of expanded features to the AC2 system. Most notably would be features to program zone cooling scenarios so that the system can automatically adjust during times when a residence is empty or all occupants are asleep. Along with this feature would be the ability to interface with the existing thermostat in a house. This could be done by retrofitting a thermometer sensor with a relay to enable or disable the thermostat or by interfacing with a ZigBee compliant thermostat.

The final area for improvement is to perform further real world tests in a house or residence with more than two zones/rooms and a live HVAC system.

Concluding Remarks

References

1 Energy Information Administration, Annual Energy Outlook 2008 with Projections to 2030. Report #:DOE/EIA-0383(2008) http://www.eia.doe.gov/oiaf/aeo/electricity.html

2 Energy Information Administration, Residential Electricity Prices: A Consumer's Guide. Brochure #:DOE/EIA-X061 (January 2008) http://www.eia.doe.gov/bookshelf/brochures/rep/index.html

3 AmerenUE, News Release, AmerenUE Requests Increase In Electric Rates To Continue System Improvements and Cover Rising Costs. April 4, 2008 http://www.ameren.com/UEPrice/ADC_NewsReleaseRateIncrease.pdf

HS-322HD Standard Deluxe Servo Motor, ServoCity http://www.servocity.com/html/hs-322hd_standard_deluxe.html DIY-Zoning Project http://diy-zoning.sourceforge.net/index.html http://diy-zoning.blogspot.com/ Complet PC Home Automation System, X10 – Affordable Home Solutions, 1999-2006 http://www.x10.com/promotions/cm15a_ed_th2807_1022_burst_cat.html

Comment by project member shakir.j...@gmail.com, Oct 1, 2008

Translation gateway (system controller) will be used to control the system from the internet.


Sign in to add a comment
Powered by Google Project Hosting