This is a blog for people interested in technology. I'll be posting projects and tutorials on things such as Arduino, IoT devices, Electronics, Machine Learning and whatever springs to mind.

Electricity Meter using an Arduino or Particle-Photon

I’d like to show you how to make an Electricity Monitor for your home that utilises some of the key capabilities of the Arduino Yun or Particle Photon that make them a great choice for Cloud Enabled sensor projects such as this.

Features :

WiFi connection allows continuous monitoring of Power Consumed

Utilises TEMBOO for Cloud Support with Google APIs

Cloud Support: Writes Power Consumption to a Google Drive Spreadsheet

Graphing, analysis etc.. available via Google Spreadsheet

A nice feature of the project is that the monitoring is flexible and it’s completely wireless (except for the Current Transformer of course), allowing continuous monitoring from a PC or phone and permanent storage on the Cloud.

Measured accuracy was 6% (typical), which is excellent for such a simple circuit. Even better accuracy was observed after calibration.

Step 2: Make the Circuit

The circuit is very simple. It consists of a Voltage Divider to bias the ADC of the Arduino to a DC Voltage and Voltage Output Current Transformer to add an AC Voltage proportional to the AC Current flowing in the Cable. The Capacitor forms a Low Pass filter with the resistors to remove noise.

Make sure the Current Transformer is only around the Live or Neutral NOT BOTH. If it’s around both the magnetic flux in both the Live an Neutral will cancel to yield zero current in the Transformer.

I installed the Current Probe in the Main Circuit Breaker of the House as shown.

Obviously make sure to replace the Housing. You should NOT leave Electrical cables exposed. It’s not safe.

WARNING: Please be Sensible about this. This exposes LIVE Electrical cables that puts you at risk of DEATH by Electrocution. Please proceed at your OWN RISK and if in any doubt consult a registered Electrical Contractor to install the Current Transformer for you.

Step 5: Arduino Measurement Routine

The Complete Arduino Code involves:

For 5 Seconds

Take a Sample from the ADC

Filter Out the DC component from the potential Divider Circuit and noise using a Digital Band Pass Filter

Calculate the Mean Square (MS) Value of the current (i.e. square the values and get the running Average)

The Digital Filter Calculation probably deserves a special mention.
You don’t need to understand it to do the project but you might find it interesting.

It’s implemented in the following line of code:

u0 = 0.2929*(r0-r2) + 1.411*u1 -0.4142*u2;It is an IIR filter because it operates on input values (past and present) and its own output values (past and present). The Response of the BPF is shown above.

A similar technique is used to filter the Current Readings to yield the Mean-Square Current value.

AMS = 0.99*AMS +0.01*v*v;This is simply a low pass filter to form a long term average of its input (v^2).

Step 6: Monitoring the Output

See the Console Window Output as shown in the Picture. The Arduino Code Outputs the RMS Power to the Console every 5 seconds.

The Console is located in the Arduino IDE as though you’re opening a Serial Monitor Window. But when you have an Arduino Yun connected over IP by Tools -> Port this opens the Console instead.

You can access the Console output from your Smart Phone. I use JuiceSSH for Android.
Just setup an SSH connection to your Yun. The default credentials are:Username : root
Password: arduino

Once logged into the Yun type : telnet localhost 6571

Now your Power Readings will appear on the JuiceSSH Console every 5 seconds.

The Google Docs Spreadsheet is written Once Per Hour. Because the Power is averaged over an Hour the Data in the Spreadsheet will be in Watt Hours.

NOTE: You need to Create a Spreadsheet first with the same name as referred to in the code:
const String SPREADSHEET_TITLE = “ElectricityUsage”;
Also, don’t forget that the Spreadsheet Columns need names in the first row to avoid errors. See the Picture from Temboo previously.

Particle Photon

For the Photon utilises a RESTful interface. So to access the RMS Power for example: