An increasing number of objects (things) are being connected to the Internet as they become more advanced, compact, and affordable. These Internet-connected objects are paving the way toward the emergence of the Internet of Things (IoT). The IoT is a distributed network of low-powered, low-storage, light-weight and scalable nodes. Most low-power IoT sensors and embedded IoT devices are powered by batteries with limited lifespans, which need replacement every few years. This replacement process is costly, so smart energy management could play a vital role in enabling energy efficiency for communicating IoT objects. For example, harvesting of energy from naturally or artificially available environmental resources removes IoT networks’ dependence on batteries. Scavenging unlimited amounts of energy in contrast to battery-powered solutions makes IoT systems long-lasting. Thus, here we present energy-harvesting and sub-systems for IoT networks. After surveying the options for harvesting systems, distribution approaches, storage devices and control units, we highlight future design challenges of IoT energy harvesters that must be addressed to continuously and reliably deliver energy.