Data logger for multiple energy meters

Hi there, I would like some advice on the easiest way to monitor pulse outputs from up to 20 industrial panel mounted kWh meters. The meter gives a single pulse per kWh with a minimum duration of 100ms. It’s quite a slow pulse rate say 20Hz max. I was thinking of using an Arduino Uno but digital inputs are limited. I would like to be able to send the data via LAN in .csv format as a report. Any guidance would be greatly appreciated.

At 20 Hz, you only have 50 ms to make a pulse and a gap before the next pulse.

So something must give. Off to google in the meantime…

Never mind. An ID-10-t issue on my end.


The ESP32 has a built in module called the PCNT, Pulse Counter (PCNT) - ESP32 - — ESP-IDF Programming Guide latest documentation (, It will take a few ESP32's to get the job done.

Luckily, 100mS is pretty slow.
A MEGA 2560 has plenty of inputs, and would handle that easily.
The greater problem to consider, is how far from. and between the meters and your logging location.

Getting the data to csv is easy, , and you have a few options to put the data on the LAN, that’s a separate conversation.

Because you’re working in an industrial location, I’d be thinking about opto isolation between the meters and the logger inputs..

The open collector output should make optocoupler isolation easy.

No way will you get 20Hz with 100mS pulses. 20Hz is only 50mS per cycle.

No, it's one pulse of a minimum width every 1 KWH.

Here that would be 25 pulses per hour with the meter at its maximum rating.


Thanks for getting back to me. I’ve just checked the pulse rate of the “heaviest” user and it has registered 250 kWh in a six hour period so that’s ~42/hour ( <1/minute ) so it’s a bit slower than I first stated

Hi there, thanks for getting back to me. Greatly appreciated

Hi there, thanks for the quick reply. I’m not sure if the meter has “built in” opto-isolation and just requires a 5volt supply with pull-down resistor. I’ll check with supplier. The Arduino equipment will be housed in a protected panel within 3 metres of the electrical intake cabinet which houses the meters. Data will then be sent via the LAN

Hi there, thanks for your quick response. The pulse rate will be slower than previously stated. Probably about 1 per minute. I was going to use the 5 volt digital input approach.

From looking at the supplied open-drain output schematic, I doubt you’ll need a pull-down.

Most likely, you’ll probably get away with the configurable internal pull-ups inside the Arduino.

The only question is the distance/voltage drop between the meters and the Arduino inputs. Again, with the right choice of components at this low frequency, you should be pretty safe.


Is this reading from a commercial or industrial 3phase meter?
250,000 / 6 = 41,666 W or 41.6KW

Tom... :smiley: :+1: :coffee: :australia:

Hi Tom, yes that’s correct. We are getting some scary energy bills and are currently trying to manage our power usage starting with 24 hour monitoring