Você está na página 1de 9

Food Living Outside Play Technology Workshop

Arduino home energy monitor shield


by jmengel on April 11, 2012

Table of Contents

Arduino home energy monitor shield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

Intro: Arduino home energy monitor shield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

Step 1: BOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Step 2: Schematic and Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Step 3: Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Step 4: Mod the Analog Input Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Step 5: Mod the Reset Pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Step 6: Mod the Power Monitor Shield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Step 7: Install . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Related Instructables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

http://www.instructables.com/id/Arduino-home-energy-monitor-shield/
Intro: Arduino home energy monitor shield
Although products are becoming more and more available for monitoring your home power usage, I'm one of those idiots who can't leave well enough alone and who
would rather shell out $100 and hours of my time in order to save $20 and learn something in the process. Building on the fine work of Trystan Lea and others at
OpenEnergyMonitor.org as well as various and sundry web sources and acquaintances the result is a self-contained Arduino shield for monitoring the energy usage of
your home using clamp on current transformers, an ethernet shield, and an Arduino. The resulting Energy Monitoring Shield has a built in switching power supply and
with mains voltage (120VAC in the US) to the board can do power factor correction as well. With mains voltage to the board it is also more dangerous than your typical
home electronics project and as such has been rejected for distribution by commercial maker outlets like adafruit and sparkfun. So take that as a warning, and if in doubt,
keep one hand in your pocket and out of puddles when handling the board.

In simple terms, the power monitor shield provides an AC to DC power source for the Arduino and Ethernet Shield, samples the AC voltage waveform for power factor
correction, and uses the current transformers to measure current draw of branch circuits in your home breaker box.

Features:
* Connectors for easy integration with clamp on current transformers
* Built in 120VAC to 5VDC switching power supply for powering Arduino and Ethernet Shields
* Monitor up to 5 branch circuits at once, of which up to 3 can be two wire single phase 240VAC
* Power factor correction for power measurements
* Code interfaces with Pachube (now COSM ) internet of things for data presentation
* Makes your breaker box a mess

DISCLAIMER: This project requires working with 120 and/or 240VAC, which can kill or seriously injure you if you are not careful. Please be aware of and follow all
applicable safety practice, electrical code, and Geneva Convention guidelines.

Step 1: BOM
The BOM (bill of materials) for the energy monitor shield is below and also attached as a txt file output from EAGLE . In addition you will need suitable current
transformers such as:
30A split core clamp on current transformer
100A non-invasive AC current sensor

If you need a larger current transformer for getting around the main house service wires (big thick ones) you can get bigger sensors such as:
Split-Core AC Current Sensor SCT-0750

If you go with a current transformer that does not have a 1/8" phono end connector on it you will also need to source and attach them. You can get these from cutting off
old headphones, or from Radio Shack, Ax-man for those distinguished enough to have the means, or elsewhere.

It should be noted that the values for a lot of the resistors below depend on the current sensors and measurement ranges you desire to measure. Read up on the web on
current transformers for more information .

PCB BOM
Part Value Device Package
B1 HD04-RECTIFIER HD04-RECTIFIER MINIDIP-4
C1 10u C-USC0805 C0805
C2 10u C-USC0805 C0805
C3 10u C-USC0805 C0805
C4 10u C-USC0805 C0805
C5 10u C-USC0805 C0805
C6 10u C-USC0805 C0805
C7 330u CPOL-USE3.5-8 E3,5-8
C9 2200u CPOL-USE5-13 E5-13
D1 SCHOTTKY-DIODE SOD123FL
JP1 PINHD-1X2 1X02
JP2 PINHD-1X2 1X02
JP3 PINHD-1X25MM_TERMINAL 5MM_TERMINAL
JP4 PINHD-1X2 1X02
JP5 PINHD-1X2 1X02
L1 330u L-US6000-XXX-RC 6000-XXXX-RC
R1 10k R-US_M0805 M0805
R2 10k R-US_M0805 M0805
R3 10k R-US_M0805 M0805
http://www.instructables.com/id/Arduino-home-energy-monitor-shield/
R4 10k R-US_M0805 M0805
R5 100 R-US_M0805 M0805
R6 10k R-US_M0805 M0805
R7 10k R-US_M0805 M0805
R8 100 R-US_M0805 M0805
R9 10k R-US_M0805 M0805
R10 10k R-US_M0805 M0805
R11 100 R-US_M0805 M0805
R12 10k R-US_M0805 M0805
R13 10k R-US_M0805 M0805
R14 100 R-US_M0805 M0805
R15 10k R-US_M0805 M0805
R16 10k R-US_M0805 M0805
R17 100 R-US_M0805 M0805
R18 10k R-US_M0805 M0805
R19 10k R-US_M0805 M0805
R20 100 R-US_M0805 M0805
R21 100 R-US_M0805 M0805
R22 100 R-US_M0805 M0805
TR1 EI30-1 EI30-1
U$2 LM2575 LM2575 TO263-5
U$3 AUDIO-JACKSMT SJ-3523-SMT-JACK
U$4 AUDIO-JACKSMT SJ-3523-SMT-JACK
U$5 AUDIO-JACKSMT SJ-3523-SMT-JACK
U$6 AUDIO-JACKSMT SJ-3523-SMT-JACK
U$7 AUDIO-JACKSMT SJ-3523-SMT-JACK
U$8 AUDIO-JACKSMT SJ-3523-SMT-JACK
U$9 AUDIO-JACKSMT SJ-3523-SMT-JACK
U$10 AUDIO-JACKSMT SJ-3523-SMT-JACK

File Downloads

power_monitor_BOM.txt (4 KB)
[NOTE: When saving, if you see .tmp as the file ext, rename it to 'power_monitor_BOM.txt']
Step 2: Schematic and Board
Attached to this step are the EAGLE schematics and board layouts for the Arduino energy monitor shield as well as PDFs for printing and using the toner method for
etching your own PCB . You can use the EAGLE files to get a professional board made or you can email me and see if I have any on hand for sale. Note that if etching
your own board, the through hole parts will be a bear to solder since the vias aren't plated and the traces are on the same side of the PCB as the components which is
not standard through-hole practice. With a professionally made board with plated vias this will not be an issue. If you care to you can redesign the EAGLE board file to run
the through-hole traces on the bottom to ease soldering and assembly from a hand-made PCB.

File Downloads

power_tracking_v1.brd (32 KB)


[NOTE: When saving, if you see .tmp as the file ext, rename it to 'power_tracking_v1.brd']

power_tracking_v1.sch (248 KB)


[NOTE: When saving, if you see .tmp as the file ext, rename it to 'power_tracking_v1.sch']

http://www.instructables.com/id/Arduino-home-energy-monitor-shield/
power_tracking_all.pdf (32 KB)
[NOTE: When saving, if you see .tmp as the file ext, rename it to 'power_tracking_all.pdf']
Step 3: Code
The presented code is a conglomeration of a variety of open sourced, non-commercial code from the Arduino libraries, myself, Trystan Lea, Eric Sandeen, and others. It
is attached below. It is somewhat commented, but if you have questions please ask.

File Downloads

power_monitor_code.txt (11 KB)


[NOTE: When saving, if you see .tmp as the file ext, rename it to 'power_monitor_code.txt']
Step 4: Mod the Analog Input Pins
As presented, using the older (05 or v5) Ethernet shield and Arduino, you need to perform a few mods on the store-bought hardware to get the power monitor shield to
work.

First, on the Ethernet Shield you need to cut the traces from the A0 and A1 analog input pins to their pullup resistors for the SD card. You can do this with a dremel cutoff
wheel, a knife, or similar. The newer official ethernet shields (06 or v6 and newer) don't appear to require this mod, so look at your board before cutting it up willy-nilly. A
good resource is this atlas of Ethernet Shields . In the attached pictures you can see that for the 05 or v5 Ethernet Shield board you need to cut the traces from A0 on the
bottom of the PCB and A1 on the top of the PCB.

Image Notes Image Notes


1. Scratch away the trace running from A1 on the top of the Ethernet Shield on 1. Scratch away the trace on the bottom of the Ethernet Shield PCB from A0.
the PCB. Use a multimeter to verify no connection. Use a multimeter to be sure there is no connection.

Step 5: Mod the Reset Pin


Secondly, I implemented a software reset of the Ethernet Shield using D9 on the Arduino since I was having trouble with the Ethernet Shield locking up and failing to
update the Pachube/Cosm feed. The fix presented increased the interval between lock-ups but didn't really fix the problem so you can skip it if you like. The newer
Ethernet Shields may not have this problem or it may be the code has a memory leak. I don't know, as I am much more used to a real embedded development platform
that has true debugging tools and I just couldn't be bothered with trying to munge with the lightweight Arduino environment. It works as is but you have to power cycle the
whole thing every month or two. The fix requires that you bend the reset pin on the Ethernet Shield so that it does not mate with the Arduino connector. See pic. Then
solder a wire from the bent reset pin to the D9 pin on the other side of the Ethernet Shield. You also need to cut the "RESET" pin on the Ethernet Shield ICSP header as
pictured to allow the Ethernet Shield to be reset separately from the Arduino using D9.

http://www.instructables.com/id/Arduino-home-energy-monitor-shield/
Image Notes Image Notes
1. Bend the reset pin so that it does not seat with the Arduino connector. 1. Cut the reset pin here on Ethernet Shield

Image Notes
1. Airwire from Ethernet Shield reset pin to D9

Image Notes
1. Cut the reset pin on the ICSP header of the Ethernet Shield

http://www.instructables.com/id/Arduino-home-energy-monitor-shield/
Step 6: Mod the Power Monitor Shield
Depending on your installation needs, you may need to change the configuration of the Power Monitor Shield. The two main configuration options on the Power Monitor
Shield are the burden resistor, which is used to set the scaling factor for the current to voltage conversion, and the single or double branch jumper which selects a single
or double pole (120VAC or 240VAC in the USA) configuration. When measuring current from a double pole breaker (main supply, AC, electric range, etc) you will need a
current transformer on each branch wire and need to use two of the 1/8" jacks on the Power Shield PCB. For example, 1a and 1b in the picture below. Placing a jumper
on the two-pin headers between the 1/8" jacks on the Power Monitor Shield will combine the signal from the two current transformers in series to allow power
measurements for a 2-pole breaker. The jumpers are highlighted with arrows in the image below.

If only using a single current transformer then leave the pins open (unjumpered) and use the first 1/8" jack (viewed from top, counterclockwise), leaving the second jack
open. For example, use only 3a and leave 3b and its associated jumper open. Jacks 4 and 5 are single pole only due to space constraints but you could mod my board
layout to allow all 5 measurement circuits to be 2 pole if you wish.

The burden resistors are all set to 100 ohms on the schematic as shown and depending on the current transformers or desired currents measured will need to be altered
according to the formulas shown at OpenEnergyMonitor.org. For example, I had to lower the burden resistor to 10 on the large main supply current transformers, 49 on
the 100A clamp-on CTs, 60 on the 30A clamp-on CTs run in 2-pole, and left the 30A clamp-on CTs in 1-pole mode as 100 ohms.

Step 7: Install
With your Ethernet Shield modded and your code ready to go you can program your Arduino and stack up the shields. Put the Arduino on the bottom, then the Ethernet
Shield, then the Power Monitor Shield. Using a suitable enclosure, mount this assy near your breaker box, usually in the basement. Run a hot, neutral, and ground wire to
the enclosure, grounding the enclosure, and running the the hot and neutral wires to the screw terminals on the Power Monitor Shield. (see schematic) Be sure that the
power circuit powering these wires is off during this procedure. Next, run your clamp on current transformers to the desired power circuits. Note: do not clamp the
current transformers over the wires unless the 1/8" plug is plugged into the Power Monitoring Shield. This is because the current transformer will generate a
large voltage if not terminated to the measurement and burden circuit. Put the main large current transformers over the large main supply wires, when using the
clamp on transformers over a 240 circuit, be sure to have one transformer out of phase of the other, as in turned 180 degrees from the other branch or your power
measurements will cancel out. Similarly, if you are getting negative power values, turn your clamp-on CT 180 degrees on the wire.

You will also need an ethernet jack and cable or a long cable from your router/switch to plug into the Ethernet Shield. A wi-fi shield may be a better choice if you can't get
a network jack nearby, but I can't provide any help there. Search the net and I'm sure someone has done it.

Now, power up the breaker that your monitoring system is wired to, and hopefully you see the LEDs on the Ethernet Shield light up and no magic smoke. Check your
Pachube/Cosm feed to see if you are getting data. You should start seeing data pretty quickly (less than 5 minutes) and updated every minute or so. Use the USB port on
the Arduino and your laptop to view serial data from the Arduino to troubleshoot.

With everything working, you will want to calibrate the system. Depending on the circuit being monitored, you should plug in a known load into the circuit and see what the
Power Monitor reports to the server. You can do this via the Pachube/Cosm website or the serial output of the Arduino environment using the USB connection. It is easier
to use the USB connection to a laptop reading the serial data if you can. I used a resistive load as a calibration measurement, it was a simple single burner hot plate
which was a 650W load when on HIGH. I measured the load and power factor using a P3 Kill-a-watt meter and then adjusted the scaling factors in the Arduino code until
they matched. Adding a less than unity power factor load to the calibration regimen is a good idea if you can, such as a switching power supply or large motor. The larger
the load relative to the peak power of the circuit the more accurate your calibration will be. In the code you should have the burden resistor values updated to your actual
configuration (variable is ct_burden), you should have the turns ratio adjusted to your actual CT configuration (variable is ct_turns), you should halve the effective turns
ratio for 2-pole branches (for example, put 1000 if using a pair of 2000 turn CTs), and then use the calibration constant to adjust the measurement when calibrating using
the ICAL variable.

http://www.instructables.com/id/Arduino-home-energy-monitor-shield/
Image Notes
1. Auxillary box for power monitor assy.

Image Notes
1. Main supply clamp on current transformers

http://www.instructables.com/id/Arduino-home-energy-monitor-shield/
Image Notes
1. Clamp on current transformers

http://www.instructables.com/id/Arduino-home-energy-monitor-shield/
Image Notes
1. Sub-circuit clamp on current transformers.

Related Instructables

Open Source
Server Room
Monitor by
inventgeek 432 MHz
Intro to Arduino Visual Network Visual Network wireless Arduino Motor
by randofo Threat Level Threat Level sensors and Shield Tutorial
Indicator v2 by Indicator by joe power outlets by randofo
joe for home
automation
using Arduino
(Photos) by
janisalnis

Comments
1 comments Add Comment

Boost says: Jul 5, 2012. 12:45 PM REPLY


Nice! I would want to make one of these but for 240V 50Hz (and 400V 3-phase). Any pointers?

http://www.instructables.com/id/Arduino-home-energy-monitor-shield/

Você também pode gostar