Multi-sensor IoT devices often rely on renewable energy and batteries to support diverse field deployments. A device’s sensors use significant energy, so careful energy management is needed to maximize its operating time while meeting application requirements. Model Predictive Control (MPC), a successful energy management technique for other application domains, requires significant computational resources usually not available in typical IoT sensing devices. We develop and evaluate a low-complexity approximation to MPC for IoT device operations powered by renewable (solar) energy, where the approximation is guided by the charging characteristics of real batteries. The complex MPC optimization problem is solved by decomposing it into a time-dependent energy allocation problem, and a task-dependent sensor scheduling problem, each of which is solvable with cubic time complexity. We utilize a novel combination of an incremental max-min fair allocation method and a recursive dynamic programming-like procedure. This low-complexity predictive optimization step is integrated with a very simple parabola-based adaptive solar prediction to provide a full system solution, termed
Predictive EneRgy Management for IoT (PERMIT)
, that can be implemented in lightweight IoT devices. PERMIT is evaluated through experiments on a solar-powered Raspberry Pi device with multiple sensors. We also complement our evaluations with simulations based on real device data traces. Results show that PERMIT’s low-complexity algorithm approximates the exact MPC solution very closely. PERMIT also performs significantly better than Signpost, a comparable IoT energy management solution.