A smart home electric energy counter built with an Arduino
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:
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) :
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$.