ECO: Enabling Energy-Neutral IoT Devices through Runtime Allocation of
  Harvested Energy
  Energy harvesting offers an attractive and promising mechanism to power
low-energy devices. However, it alone is insufficient to enable an
energy-neutral operation, which can eliminate tedious battery charging and
replacement requirements. Achieving an energy-neutral operation is challenging
since the uncertainties in harvested energy undermine the quality of service
requirements. To address this challenge, we present a runtime energy-allocation
framework that optimizes the utility of the target device under energy
constraints using a rollout algorithm, which is a sequential approach to solve
dynamic optimization problems. The proposed framework uses an efficient
iterative algorithm to compute initial energy allocations at the beginning of a
day. The initial allocations are then corrected at every interval to compensate
for the deviations from the expected energy harvesting pattern. We evaluate
this framework using solar and motion energy harvesting modalities and American
Time Use Survey data from 4772 different users. Compared to prior techniques,
the proposed framework achieves up to 35% higher utility even under
energy-limited scenarios. Moreover, measurements on a wearable device prototype
show that the proposed framework has 1000x smaller energy overhead than
iterative approaches with a negligible loss in utility.
