Networked AC current monitor
Noninvasively monitors the current flowing in four AC circuits using current-transformers, as well as an onboard temperature sensor. We use these in datacenters to watch current use by circuit to monitor compliance with contracts and to test new hardware.
The current transformer is a transformer in which one leg of the circuit to be measured is the primary, and the CT coil itself is the secondary. It is a high-ratio transformer (secondary is ~2000 turns) and the output is loaded by a fixed "burden" resistor. The voltage drop across the burden resistor is proportional to the magnitude of the current flowing in the primary circuit and is quite linear over a fairly large range of conditions.
This device samples the AC waveform at the burden resistor at around 8KHz and (in software) computes various data about it, such as minimum, maximum, peak-to-peak value, and root-mean-square value. We're mostly interested in the RMS value, but use the min/max, for example, to detect fault conditions such as overrange. The burden resistor and onboard voltage reference are selected so as to place the full expected range of inputs within the input range of the A/D converter.
Once the wave is sampled and measured, the processed result is made available over a serial port, which is also used for calibration and configuration, and over the network via ethernet. It can be configured to transmit a periodic measurement via UDP packet to a designated internet host, and also responds to HTTP requests for current readings and board temperature, as well as configuration. Configuration and calibration can also be managed via HTTP.
It uses an Atmel AVR CPU (atmega328p) and Microchip ENC28J60 ethernet controller.