AC Power Monitor: A Golioth Reference Design

Power monitoring is a common Internet of Things (IoT) application. Whether it’s to track the health of manufacturing tools (“Do I have a motor bearing about to give out?”) or to provide consumer insight (“Can I save money by running the clothes dryer during off-peak hours?”), gaining granular feedback on your electricity usage is a valuable tool. This concept inspired Golioth’s latest reference design: an AC power monitor that records reading to the Internet.

The AC Power Monitor

With Golioth, it’s quite easy to add IoT power monitoring to any electrical device. We utilize non-contact current clamps that can be added to a machine tool’s power supply, or at the breaker in an electrical box. The current sensor clamps around a wire, detecting the magnetic field generated when current is flowing to the device being monitored. The readings are uploaded to Golioth where they can be visualized and acted upon.

In this application, two channels stream readings back to Golioth where they are stored along with their timestamp. The power monitor tracks “run” time—how long the device being monitored has been running without a break. The system also records the cumulative “run” time so that you can track the service life of your equipment. This data is invaluable in planning maintenance and identifying the most used equipment to inform future investment in your production abilities.


Starting from a reference design helps get your proof-of-concept up and running. With that in mind, we like to use off-the-shelf hardware as much as possible.

Power Monitor with two ADCs and an AC current sensor ("current clamp")

Power Monitor with two ADCs and an AC current sensor (“current clamp”)

The full parts list is on our Golioth Projects page, but the key components involved are the Nordic Semiconductor nRF9160 cellular system-in-package (SIP) and a pair of MCP3201 analog-to-digital converters (ADCs) which read signals from the 30A-to-1v AC current sensors.

The cellular modem (nRF9160) is one of our best supported parts on Golioth and is powered from both a local power supply and a lithium battery so that power outages can be remotely detected.

Power Monitor reference design block diagram

Power Monitor reference design block diagram


The firmware for the Power Monitor reference design uses the Golioth Settings Service. This service can update a single device’s settings, and also provides fleet-wide control via our web console (and our REST API if you need it).

Golioth Settings Service for the Power Monitor reference design

Golioth Settings Service for the Power Monitor reference design

Here you can see the loop delay which indicates how long the device should sleep between sensor readings (in seconds). There is also an ADC “floor” setting available for each channel. This accommodates equipment that has some current draw when in standby mode, allowing you to configure the threshold at which the machine is consider to be running.

Golioth’s LightDB state system is used to report the live “run” time. It’s one way to monitor if a machine has been left on, or is simply in constant use and may represent a bottleneck in your shop’s workflow. The cumulative “run” time is also reported here, serving as an odometer for the operating life of the equipment.

All of the Golioth reference designs include Over-the-Air (OTA) firmware updates so changes to how the firmware works don’t require an on-site visit.

Cloud Software / Dashboard

The Golioth Zephyr SDK takes care of the cloud connection for all of your devices. When writing firmware, just use the API to set/get/observe your data and Golioth handles the rest:

  • Sensor readings are stored as time-series data on LightDB Stream
  • Device settings are monitored in real-time, with the device reacting to your changes as soon as you make them.
  • The Golioth Console tracks the latest device state, including device health
  • Current firmware version is monitored, with the ability to rollout new OTA updates, and one-click rollback if you need it
  • Golioth’s convenient REST API delivers easy access to the data for visualization or export to any of your favorite cloud server platforms.

We’ve set up a dashboard on Grafana, one of our favorite visualization tools. It queries the Golioth REST API for device data and presents it as a handsome web interface.

Grafana dashboard to visualize data from the Power Monitor reference design

Grafana dashboard to visualize data from the Power Monitor reference design

The dashboard collects both the persistent data stored in LightDB State (live runtime as well as cumulative) and the time-series data stored in LightDB Stream (the periodic sensor readings). We push the ADC readings as raw values and they are converted to Amps for display on the dashboard. You could just as easily display current power consumption which would be about 600 Watts for the toaster oven readings being shown above on Channel 0.

More Golioth Reference Designs

Our reference designs are like a business in a box. Using Golioth as your device management cloud, your first prototype will be running within hours, not weeks. These designs are built to scale, with the same infrastructure in place on day one that you need on the day you deploy your 1000th device.

We’re always working on more reference material for you to take and customize for your business needs. Check out the Industries section of the Golioth website, which discusses areas we are targeting and Reference Designs we are building. If any of them interest you, click the “Schedule Demo” button for the one that best matches your needs. You can also drop a note on our Forum or on our Discord if you have ideas of other IoT prototypes you need help with or would like to see us build.

Talk with an Expert

Implementing an IoT project takes a team of people, and we want to help out as part of your team. If you want to troubleshoot a current problem or talk through a new project idea, we're here for you.

Start the discussion at