This sensor has been part of the home automation system for several years. It’s mounted to the wall, and the main AC sump pump is plugged into it. It senses current to the pump, converting it to a logic level a PIC node can read. Connection to the PIC is via the RCA jack on the side of the box.
The main component is a toroid with many turns of red and green magnet wire. I hooked the red and green windings in series to get more output. It might be an 88 mH choke from some telephone equipment, but I have no confidence that’s true. I ran a couple of turns of the wire from the plug to the outlet through the toroid.
I didn’t get enough output even with the several amps the sump pump draws to get a good logic level, so I crudely ran the output of the toroid through a little 12VAC power transformer – backwards – to step it up. That did give me enough to run a (silicon) bridge rectifier and get something an input bit on a PIC node could read. Since the PIC reads the level several times/second, there’s a resistor to drain the cap down to get more accurate timing info on how long the pump actually runs each time. For the next current sensor I build, I’ll certainly use Shottky diodes, and probably a little amplifier to sense much lower voltages. And I wouldn’t run something like this into an input bit without a zener to ensure not exceeding the bit’s max input voltage.
The accurate run timing turns out not to be very valuable information. The cycle rate provides about all the info I need.
Sourcing the current sensors – perhaps more accurately current transformers – for such uses is a problem. Real current transformers are $10 or more on Ebay. That’s not a deal-breaker for an important project, but I wanted a cheaper alternative. I have an idea about how to wind many-turn toroidal coils for this application that I’d really like to explore. If it’s successful, I hope it will become an Instructable, or maybe a little article in Make.
Update 8/9/11: In another attempt to monitor a sump pump, I tried to get a dry contact closure with a reed switch. It had about 20 turns of #14 wire around a C-shaped steel rod, with the reed switch completing the magnetic circuit. (There’s a similar switch posing next to the heat-shrink that hides the real one.)
Using 2 handshake lines on an RS-232 port on an old laptop, some perl sensed the contact closures. The reed switch was fast enough to bounce a lot – probably at 120 Hz – but a little perl can work around most anything.
It logged enough time-stamped data to show that the ejector pump I thought I heard more than expected really was cycling regularly and way too often. Fixing the leaky toilet made a huge (and quantifiable) difference!