Wireless systems capable of being truly 'autonomous' present the future of wireless networks and applications. Such systems have an intrinsic advantage over systems dependent on a finite power source. Harvesting energy from a device's environment has been proposed as a solution to the difficulty of providing a 'wireless' power source. The underlying theory and operating principles of electromagnetic, electrostatic and piezoelectric energy harvesters are presented. We also discuss systems developed by previous researchers and the methodologies employed. From preliminary analysis, it is evident that energy harvesters alone are typically incapable of powering large loads directly; therefore, harvesting circuits have also been investigated. Consequently, a detailed overview of harvesting circuits has been presented and details the development of circuits that manage harvested power and storage devices. This paper also relates energy harvesting to traffic monitoring applications, discussing a number of examples, as well as introducing our own novel proposed system.