Berkeley Wireless AC Meter/Switch (ACme)
Welcome to the project page for the Berkeley Wireless AC Meter/Switch project. ACme real-time energy portal is here. Please visit this page for pictures. Sensys '08 demo abstract can be found here.
Purpose
The goal of this project is to enable wireless energy/power measurement and control of AC devices. This device fills the gap between inexpensive LCD watt-meters (e.g. Kill-A-Watt) and expensive networked enterprise energy monitors. ACme uses the ADE7753 energy monitor chip for energy and power measurements, the SHARP solid-state relay for power switching, and the Berkeley EPIC wireless module for communication.
Project Status
We have a working prototype, as shown in the picture below. Using our driver, one could easily read out energy and power measurements and control the switch. Combined with the b6loWPAN project, one could access and control ACme from anywhere in the world via IP (UDP).
Code
- code/ACMeter/tos/sensorboards - ADE7753 energy meter chip driver and ACME sensor board driver
- code/ACMeter/apps - Example applications
Users with accounts at Berkeley can access the development copy from subversion on smote.cs.berkeley.edu:
# svn co svn+ssh://username@smote.cs.berkeley.edu/code/ACMeter/
Hardware
ACme board design files are released under the BSD license and can be downloaded at: http://buzzing.cs.berkeley.edu/~xjiang/webfiles/acme/ACme_ADE.zip
The hardware consists four main sections - the power supply, which tags power directly from the AC electric plug; input filters and the energy meter, which measures power across a sensing resistor; the micro-controller and radio, which communicates with the energy chip via SPI and with the rest of the world via a 2.4GHz radio; and the solid state relay, which switches the power.
The power supply is a simple half-wave rectifier with cut-off diodes that directly connects to the AC line. This avoids using transformer and reduces cost and space. Current channel sensing is done using a sensing resistor. The ADE7753 chip provides real, active, and reactive power measurements via both voltage and current channels. Energy measurements are internally stored in registers and are accesses by the EPIC uController. Readings are read out wirelessly via the onboard radio, connected to a printed inverted-F antenna. The solid state relay is controller directly by the EPIC uController, and is capable of switching tens of amps of current.
Multiple ACme's can form a wireless mesh network, and can be connected to the Internet in many different ways.
Software
The driver is implemented in TinyOS. The API is as shown below:
interface ACMeter {
// Set the switch to ON or OFF
// TRUE = ON; FALSE = OFF
command bool set(bool state);
// Return the current state of the switch
command bool getState();
// Start reading energy values at a regular interval
command error_t start(uint16_t interval);
// Stop sampling
command error_t stop();
// Returns the energy measured during one interval
// event is signaled continuous at rate interval
event void sampleDone(uint32_t energy);
}
The module ACMeterC provides SplitControl? and ACMeter used by the top application. ACMeterC configures the chip level component ADE7753M with ACMeterM for correct operation.
Demo - IP Light Switch / Meter
In this demo, we demonstrate ACme can be used to remotely turn on or off a lamp, and also measure the energy consumed by the lamp. The application uses 6LowPAN to directly connect the ACme mote with Internet (IPv6). For more details on the b6loWPAN project, please refer to its project page (b6loWPAN).
A real-time webcam feed of the lamp under control can be found here.
Your computer needs to be on the IPv6 network. If you need an IPv6 address, follow the instructions at http://tunnelbroker.net/ to obtain and IPv6 address and configure your computer.
If you computer is already on the IPv6 network, you can directly login to the ACme:
nc6 -u 2001:470:1f04:56d::96 7
Type "help" to see the menu, and enjoy :)
Acknowledgment
This project is supported by the National Science Foundation under grants #0435454 (“NeTS-NR”) and #0454432 (“CNS-CRI”), and an NSF Graduate Fellowship.
