Smart electrical meters are easy enough to read when you want to know how much power you’re using on any given day or time. The same goes for cyclometer and dial meters as well, but what if your meter doesn’t have a discernable way to calculate wattage usage? That was the problem for project hacker Simon Aubury, who wanted a way to monitor how much power some old heaters were chewing through when temperatures dropped.
Aubury’s home is equipped with a pair of Ausgrid EM500 non-smart electrical meters, which feature a tiny red LED that blinks every time 1Wh of power is consumed (1000 pulses equals 1kWh). To calculate how much power Aubury’s old heaters were chugging through, he could either sit and count the LED pulses or he could handoff that task to a Raspberry Pi. He chose option number two.
To design his meter reader, Aubury used a pair of Light Dependent Resistors (LDRs, AKA photoresistors), which is a type of resistor that increases or decreases its resistance according to the amount of light they are exposed to. After grabbing some insight from Iotguider, he paired those LDRs with a Raspberry Pi to create a pair of circuits utilizing the Pi’s GPIO, and then placed them over the LEDs of both electrical meters LEDs.
To read the data collected from his meter reader, Aubury designed a graph-based readout using Python — every time an LED flash is detected, the number is recorded and sent to an SQL database every 15 minutes and shown in graph form.
After running his meter reader for three months, Aubury noticed a trend in power consumption: nothing happens before 5am, the lowest usage occurs in the afternoon, and the maximum draw correlated to leaving his heaters on while on vacation. For those interested in seeing a complete walkthrough of his build and the code he implemented, head over to his write-up on Medium.