The rapid growth of the Internet of Things (IoT) has accelerated strong interests in the development of low-power wireless sensors. Today, wireless sensors are integrated within IoT systems to gather information in a reliable and practical manner to monitor processes and control activities in areas such as transportation, energy, civil infrastructure, smart buildings, environment monitoring, healthcare, defense, manufacturing, and production. The long-term and self-sustainable operation of these IoT devices must be considered early on when they are designed and implemented. Traditionally, wireless sensors have often been powered by batteries, which, despite allowing low overall system costs, can negatively impact the lifespan and the performance of the entire network they are used in. Energy Harvesting (EH) technology is a promising environment-friendly solution that extends the lifetime of these sensors, and, in some cases completely replaces the use of battery power. In addition, energy harvesting offers economic and practical advantages through the optimal use of energy, and the provisioning of lower network maintenance costs. We review recent advances in energy harvesting techniques for IoT. We demonstrate two energy harvesting techniques using case studies. Finally, we discuss some future research challenges that must be addressed to enable the large-scale deployment of energy harvesting solutions for IoT environments.