Usually, if I buy a high power electric appliance, I like to double check it power consumption either with a Kill-a-watt when possible, and when not, e.g. cable directly hooked to the device or current intensity is too high, I use a digital electric clamp meter. Both methods are quite convenient as you don’t need to cut any wire to measure the current and determine the power consumption, but they don’t allow for data gathering since they don’t connect to the network. Earlier this week, I’ve come across a projects using ESP8266 for a mains energy monitor for a solar panel setup, and measuring mains current, electric meter, and gas meter. They use a photosensor to measure power consumption on their electric meter, which works, but may be problematic if the meter is on the street, and iSnail current sensor, using hall effect just like clamp meter, but instead of showing the current on a display the sensor output 0 to 5V, meaning you can connect it to a micro-controller to handle the data however your like. That’s nice, but while a clamp meter costs about $10, the 25A version of iSnail goes for $40, so I looked for alternatives. I wanted to find an always-on connected hall effect current sensor that either harvest energy or works of a fews with a battery, but did not find any, an instead discovered cheap current sensor modules based on Allegro Systems ACS712 supporting either 5A, 20A or 30A , working easily with analog inputs of Arduino boards, and selling for as low as $1 shipped on eBay for the 5A, while the 20A & 30A versions usually sell for less than $2.
The hardware specifications are pretty basic:
- ACS712 Hall-Effect-Based Linear Current Sensor IC (Datasheet)
- 2-pole terminal for DC or AC load
- 3-pin header with VCC (5V), GND and OUT pins
- Input Current and Sensitivity (measurement scale)
- -/+ 5A – 185 mV/A
- -/+ 20A – 100 mV/A
- -/+ 30 A – 66 mv/A
- Dimensions – 31 x 13mm
Since the IC can measure in both direction, OUT pin outputs VCC/2 (2.5v) when there’s no current, and other values which may be lower and greater than VCC/2 depending on current direction to report the actual current.
Measuring DC current is very easily as you just need to take one measurement, subtract VCC/2, and divide this by the sensitivity. Alternative current is only a little more complicated as you have to take many measurement to find the RMS value as explained on Henry’s bench website. If you are playing with high voltage (110V/220V) be very careful, and using non-invasive current sensor might be a better idea, especially if you are a beginner.
Since the board had been available for a few years, there’s plenty of documentation on the web for Arduino. One person (Julian) did a pretty good video showing how it works.
ACS712 current sensor can also be interfaced with ESP8266, but since the wireless chip’s analog input only takes 0 to 1V, ACS712 output must be reduced leading to a lower accuracy, unless used via an external ADC chip. ESP32 won’t have this problem however as the analog input supports up to 0 to 4V range, although I understand ESP32 may has some built-in functions for energy monitoring.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
hmm I will definitely not let my main AWG7 AC power line go through this :). there are better & safer – non invasive – options for measuring higher AC currents – measuring transformers: popular SCT-013-xxx family or others “google: Precision Current Transformer Coil”
@jn
It looks much safer :).
I can see SeeedStudio sells it for $11.50 @ http://www.seeedstudio.com/depot/Noninvasive-AC-Current-Sensor-100A-max-p-547.html
They also have a tutorial for ESP8266 @ http://www.seeedstudio.com/recipe/index.php?controller=recipe&action=show&recipe_id=377&ref=product
and a baseboard for NodeMCU can be purchased on Tindie @ https://www.tindie.com/products/whatnick/nodemcu-energy-monitor-pcbkit/
Intersting to see 30A through 2 SOIC pin. I think good fire.
@Mitek
If you like that check out the 60a qfn version
What makes you think the chip on the Chinese board are authentic and not a copycat? Accuracy aside, I’d be concerned about the isolation failing.
@Squa0L
That’s a good point, and that’s a risk to take into account, but I can’t find any reports about fake ACS712 on the web despite the thing being available for a few years.
They talked about this + the safety of the thing on EEVBLOG @ http://www.eevblog.com/forum/beginners/acs712-module/
It’s magnetic isolation. Can it fail?
I forgot to check safety certifications in the post. The chip has UL and other certifications @ http://www.allegromicro.com/en/Products/Current-Sensor-ICs/Zero-To-Fifty-Amp-Integrated-Conductor-Sensor-ICs/ACS712/ACS712-ACS713-Frequently-Asked-Questions.aspx#Q21.
I don’t think the module is certified however.
The chip might be fine, but look at the PCB traces of the board! No way this could pass any certification. In fact, it is quite dangerous, definately Arduino beginners should stay away from it.
Please put a note in the article that there are high voltage circuits involved and it is not recommended for DIY.