Measure Up to Six Electrical Parameters with the DIY Multifunction Energy Meter

The Arduino-based device is capable of measuring voltage, current draw, power usage, energy, capacity, and temperature.

Evan Rust
4 years agoSensors / Displays / Productivity

Constructing projects can be a lot of fun, but what do you do when things don't work? One of the primary tools to rectify this issue is a multimeter, which is a device that can measure various aspects of an electrical current, such as resistance, voltage, and even current draw. Most cheaply-produced meters can only perform one function at a time, which can be frustrating when trying to diagnose a troubled circuit. However, Instructables user opengreenenergy has created a meter that can multitask by measuring six parameters at once. It is able to display the following: voltage, current draw, power usage, energy, capacity, and temperature.

Traditional Multimeters

Higher-end multimeters often cost well over one hundred dollars, which can put them out of reach for many makers. This DIY approach is able to implement several of the most used features while still coming in at under thirty dollars. It must be mentioned that nearly all multimeters are capable of measuring AC currents, whereas this one cannot.

Sensing Current

The Arduino Pro Micro is unable to sense current on its own since its internal circuitry doesn't support it. However, including an additional module such as an INA219 can offer that functionality at a low cost whilst being accessible via the I2C interface. It is able to measure +/- 3.2A at up to 26V at a resolution of .8mA.

Temperature Measurements

opengreenenergy chose to use the DS18B20 sensor module, which uses a single wire to communicate. The sensor contains a unique 64-bit serial code to identify the module, allowing many of them to operate on the same bus. Its resolution can also be adjusted from 9 bits (0 to 511 levels) all the way to 12 bits (0 to 4095 levels). It has +/- 5C of accuracy and can measure temperature ranging from -55C all the way to 125C, making it very versatile.

Displaying the Data

All of this information needs a way to be shown, so in order to reduce the number of pins used, the project's creator decided on a 0.96" OLED screen that communicates via the I2C bus. Values are constantly read in a loop and then calculated using simple formulas. They are then pushed to the display with the Adafruit SSD1306 and GFX libraries. opengreenenergy did design a PCB for this project, though, he was unable to order it due to the current pandemic, so it was soldered onto protoboard instead.

Evan Rust
IoT, web, and embedded systems enthusiast. Contact me for product reviews or custom project requests.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles