Skip to content

Hardware

Will Buchanan edited this page Mar 15, 2019 · 29 revisions

Hardware Iteration 1

Iteration 1 image

To begin measuring voltage, we started the project from scratch using the OpenEnergyMonitor documentation, using a Raspberry Pi, an analog-digital converter, and a plug-in AC-AC adapter. Along the way we learned the fundamentals of AC power, and encountered numerous challenges related to sampling rate, aliasing, and noise. We discovered that this path would consume too much time, so we made the decision to transition to an open-source energy monitor, EmonPi. Below the rationale for our decision:

Ground-Up Hardware: EmonPi
PROS PROS
Deep-dive into hardware development Accelerated schedule
Learn signal-processing fundamentals Integrated Voltage & Current pi shield w/ dedicated ATMega328 & 10-bit ADC
Build custom ADC firmware to suit our sampling needs Build atop existing development & learn from others
Extensible, open-source platform
More time on ML and less bit-banging
CONS CONS
Reinvent the wheel Firmware modifications
Moving slowly Conversion from EU to US power standards
More time on hardware, less on ML Modifying a complex product ecosystem
Less conceptual value-added
More time on hardware, less on ML

Hardware Iteration 2

Iteration 2

We used an EmonPi which is an open-hardware Raspberry Pi and Arduino based energy monitoring unit, 1 clip-on current sensor to monitor a single-phase circuit, and a plug-in AC-AC adapter to measure RMS voltage. The EmonPi offers a ATMega328 shield that allowed us to build atop a significantly developed arduino firmware library, EmonLib, enabling the increase in both sampling rate and accuracy to produce more calibrated feature sets to be used for ML classification.
We trained on several common household devices which include:

  • Hair dryer
  • Induction cooktop
  • Laptop
  • Cell phone
  • Hot water kettle
  • LED digital picture frame

Hardware Iteration 3 (Final)

We chose to keep the hardware unchanged for our third milestone for the following reasons:

  • Simplicity keeps the product extensible for future development in the open-source community
  • Little room for improvement in the product design, given we are building atop an existing product
  • Hardware is not customer-facing, as it resides in a circuit breaker

Clone this wiki locally