The Clipsal Cent-A-Meter is a commercial current-monitoring system that makes it easy to measure how much power is being used by devices around your home or office. It includes three parts:
- Current sensor clamps that clip around the "active" lead of a power cable
- A transmitter module that can accept up to three current sensor clamps
- A receiver module that displays values sent by the transmitter
Great if you're sitting there looking at the receiver, but it has no support for logging or reporting over time. Arduino to the rescue! By combining a 433MHz receiver with an Arduino you can intercept signals from the Cent-A-Meter transmitter and store or report the data in whatever form you like.
With the Freetronics 433MHz receiver shield it's really easy to intercept the power data and use it for your own purposes.
And of course your Clipsal Cent-A-Meter system!
Before you begin with the Arduino setup, connect your Cent-A-Meter by following the included instructions and verify that it's all working correctly using the standard receiver.
You can complete the Arduino portion of this project by assembling your own receiver as described in the Weather Station Receiver project in the book Practical Arduino, but to make it really easy all you need to do is plug the 433MHz Receiver Shield into your Arduino.
The 433MHz Receiver Shield implements the same circuit as the project in Practical Arduino, so it's 100% compatible with example sketches from the book.
To receive signals from a Cent-A-Meter, download the test code from GitHub and open it in the Arduino IDE v1.0 or newer:
With the sketch loaded on your Arduino, open the Serial Monitor in the Arduino IDE, set the baud rate to 38400bps to match the settings in the sketch, and watch for values transmitted by the power monitoring system.
The video above shows a variant of this system that uses an Ethernet-enabled Arduino (the Freetronics EtherTen) to send each value read from the power monitoring system as an HTTP POST connection to a PHP script on a web server. The script then inserts the values into a MySQL database with a timestamp, and another PHP script generates the user interface including historical data extracted from the database.