I. Introduction
The Internet of Things (IoT) enables the connection of billions of devices to the Internet and perform sensing, actuating, communication, and localization operations. Due to their relatively low power consumption and because of the desired use cases, these devices are often battery-powered. However, batteries are hazardous, bulky, expensive, sensitive to temperature changes, and last at most a few years, even when rechargeable. Therefore, disposing of billions of dead batteries per year is both economically and ecologically unacceptable [1]. In addition, some use cases require devices to be deployed in remote or hard-to-reach environments, which makes the replacement of batteries expensive and dangerous, if not impossible. Therefore, there has been a significant recent interest in developing batteryless and perpetual IoT devices by using energy harvesting techniques. These devices generally consist of an microcontroller unit (MCU), radio chip, one or more sensors or actuators, power management unit (PMU), and a supercapacitor. The PMU charges the capacitor using an energy source, which can be solar, kinetic, thermal, radio frequency (RF) energy, etc. As the energy source harvests energy from its environment, the type of energy source is highly dependent on this environment.