|
Report
AbstractDespite 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. IntroductionEfficient 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. DesignObjectivesAC2'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:
Component ArchitectureAs 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 ControllerUsers 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 InterfaceThe 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 sensorsThe 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 ControllerThe 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. IMPLEMENTATIONComponent InteractionFollowing 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 AssignmentThe following rules describe the assignment of node IDs. The TOS_NODE_ID values range from 0x00 to 0xFF. All node IDs are one byte.
ExampleA system with three zones. The first zone has three vents. The second zone has two vents. The third zone has 4 vents:
Function CodesFunction codes are used to identify the purpose of a packet (as defined below). AC2 function codes are one byte long.
Protocol SpecificationAll 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. OverviewAll 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:
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.
AC2 HeaderAll AC2 packets will share a common header that is independent of the payload
Function PayloadsAll payloads are packed into four bytes.
FUNCTION_TEMPERATURE_UPDATE specific payload
FUNCTION_SET_TARGET_TEMPERATURE specific payload
FUNCTION_SET_MODE specific payload
FUNCTION_VENT_STATUS_UPDATE specific payload
System ControllerGatewayI will be adding a class diagram here Just need to be able to use Visio, which I have at home. Vent ControllerThe 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: EvaluationI'm going to try to write something. Even if I have to make up shit. Related WorkRELATED 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 WorkThere 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 RemarksReferences1 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 | ||||||||||||||||||||||||||||||||||||||
Translation gateway (system controller) will be used to control the system from the internet.