Arduino power consumption monitor

A smart home electric energy counter built with an Arduino

Arduino power consumption monitor

By Fetinidis Anastasios, posted @ 10 August 2016

This page uses cookies to ensure you get the best experience.
If you continue to use this site we will assume that you are happy with it.
You can read the privacy policy here


The following article describes a practical way to get the power consumption of your house.
Playing with current and voltages isn’t a safe thing at all. Moreover, when you are an unexperienced user.
Asking an electrician for advice and guidance isn’t a shame and should be your first move if you are planning to do something like this.
In any case, I am not going to be held responsible for any damage, injury or death that may be caused to anyone and anything from your attempt to install and operate a similar project.

In recent years there has been an ongoing and growing trend of interconnecting various devices or accessories to Internet.
The interconnection targets the improvement of these devices with better functionality/control, adding new features or patterns that were absent from the initial design of the device.

Indeed, this trend is so intense that led to the birth of the term “Internet of Things” (IoT), in which each device has a unique identity and can be controlled over the Internet.
Remote control through Internet can be applied to a wide range of devices enabling new features or uses that would not be otherwise practicable.

One such example is the remote real-time information on energy consumption, and the data maintenance for comparison purposes.

So, in this post I am going to present this case which is my thesis too.

I faced this problem by creating a device that “feels” passively the current intensity and sends in real time the data to a central server.
The design is made with the assumption that the device is used in household consumptions, which are ohmic in majority.

So from current intensity (Ampere) and the knowledge of potential difference (Volt) I can estimate, with almost zero deviation, the current power consumption (Watt) according to this formula:

P = V * I

Of course, the more inductive load, the greater the deviation and for this reason this device cannot offer accurately metrics in inductive or capacitive consumptions.

Overall, the device is a combination of:

 Arduino Uno microcontroller

 Arduino Uno microcontroller

Sensor SCT-013

Sensor SCT-013

Ethernet Shield W5100

Ethernet Shield W5100

and sends every 2 seconds the measurements to a server.

Personally, I am using my Banana Pi as a web server to receive and save the data sent by the device via the W5100 Ethernet Shield.
That’s pretty handy since I have it always powered on for many reasons beyond the obvious :) 

So, if you really don’t want to miss any measurement I suggest you use something similar or setup a cloud VPS in less than 1 minute and even receive a cloud credit of 20€!
Also, I would like to mention that the device has been working for about 16 continuous months now without facing any single problem sending the measurements of my home consumption to Banana Pi.

Banana Pi runs Apache Web Server where I host a custom designed, built from scratch, website, based on the latest standards of HTML5 and CSS3, written with clear object – oriented architecture in PHP along with a MySQL database.

Furthermore, the website is designed for use at metropolitan level and can support multiple groups, multiple users, and multiple measurement devices per user.
This may sounds like an overkill for home users but was one of the things that should be accomplished for my thesis to be successful.

A live demo of the device can be found here (make sure you watch it in 720p) :

Arduino power consumption monitor video

Confirmation of proper circuit operation

To ensure that the device is actually giving me the real measurements and not some wrong I had to test and compare the data received from the arduino with the data taken from a multimeter.

To obtain the current intensity the multimeter had to be connected in series between the power supply and the testing device (a vacuum cleaner).

So, after the proper placement of the multimeter, all I had to do was simply turn on the vacuum cleaner.
The following images prove the accuracy of the measurements taken from the arduino device.

For the history, measurements were taken with other devices too like hairdryer, desktop computer and combination of them using a power strip. The accuracy remained at this level.


In conclusion, this project gave me the opportunity to address both hardware (creating circuit) and software (creating microcontroller program and website) on a real problem, which is an important sector of direction: “smart – green – house”.
Moreover, I found a very practical and accurate way to be informed for the power consumption of my house.
And the best thing? It’s pretty cheap since the device can be built with around 30$.

Share this page!

Disqus comments are inactive for the moment


Kindly leave your comments on YouTube here