  Profiling and minimizing the energy consumption of resource-constrained
devices is an essential step towards employing IoT in various application
domains. Due to the large size and high cost of commercial energy measurement
platforms, alternative solutions have been proposed by the research community.
However, the three main shortcomings of existing tools are complexity, limited
measurement range, and low accuracy. Specifically, these tools are not suitable
for the energy measurement of new IoT devices such as those supporting the
802.11 technology. In this paper we propose EMPIOT, an accurate, low-cost, easy
to build, and flexible power measurement platform. We present the hardware and
software components of this platform and study the effect of various design
parameters on accuracy and overhead. In particular, we analyze the effects of
driver, bus speed, input voltage, and buffering mechanism on sampling rate,
measurement accuracy and processing demand. These extensive experimental
studies enable us to configure the system in order to achieve its highest
performance. We also propose a novel calibration technique and report the
calibration parameters under various settings. Using five different IoT devices
performing four types of workloads, we evaluate the performance of EMPIOT
against the ground truth obtained from a high-accuracy industrial-grade power
measurement tool. Our results show that, for very low-power devices that
utilize 802.15.4 wireless standard, the measurement error is less than 3.5%. In
addition, for 802.11-based devices that generate short and high power spikes,
the error is less than 2.5%.
