I think you'd be hard pressed to get the required 150mW or so, although it isn't impossible.
Looking into piezo-based energy harvesting systems, one product claims about 7mW constant power. I would assume this scales reasonable well though. This is using a 3x7cm bendable piezo element and some electronics to store and convert the energy. There's a lot of info on piezo.com.
Using the device above you'd need 20-25 of these elements. As they flex quite a bit and obviously should not touch each other, you end up needing quite a large box.
If, however, you are able to design the radio so it only transmits at a low duty-cycle and goes into some deep-sleep power saving state if it doesn't transmit, this seems feasible.
Although he isn't using XBees (but RFM12B radios), have a look at the jeelabs.net website - there's some examples on low-power use of microcontroller driven radios.
With the added detail that the frequency of the vibration will be between 80-260Hz, have a look at this device. The specs state it can generate 7mW at 50Hz - they're not cheap though at $600 for a kit. And you'll be needing something in the order of 25 of them.
Two bonus links: Linear has done some research on this (you've probably seen this already), using this sensor.
Quote:
energy
harvesting can produce about 1mW–10mW,
where the active sensor-transmitter
combination may need 100mW–250mW.
First, the annual solar irradiance is calculated by taking the power incident on a square meter when perpendicular to the sun, and multiplying by 24 hours and then by 365 days. Since the irradiance is typically about 1.366 kW/sq m, when you multiply it out you get 11.9 kW-hr/sq m, which is your number.
But you might have noticed a problem. This assumes the sun is shining 24 hours per day, which is hardly proper.
Second, your second calculation also assumes 24 hours per day sunlight, which is not right. Since the average length of day is about 12 hours, your 25.6 Wh should be divided by 2, giving 12.8 Wh per day.
Finally, this number tells you how much power is falling on the solar cell, not how much the cell puts out. It also assumes the cell will be perpendicular to the sun at all times, and that the atmosphere does not attenuate sunlight. The first may be true, the second is not. Consider that the sun is much dimmer at sunset than at noon.
Let's take the case of noon sunlight. Assuming the air is very clear and you are getting the nominal irradiance, the power falling on the cell will be 1366 w/sq m x .0078, or about 10 watts. Since you have a solar cell rated for 1 watt, this says that you can assume the cell has an efficiency of about 10%, which is about right.
For a 1-watt solar cell which is fixed in position, and is perpendicular to the sun at noon, you can figure on a total output of 4-6 Wh on a clear day. On the one hand, as the sun moves away from the noon position, the effective area decreases (reaching zero at sunrise and sunset when the cell is edge-on to the sun). Also, sunlight gets attenuated by the atmosphere at lower angles, and finally the cells themselves will typically become less efficient at lower intensities.
Best Answer
To answer the question, it's called energy harvesting because in most systems the rate of collection (input power) is very different from the rate of use (output power).
Most such systems run intermittently, so a key parameter is how much energy the the application consumes each time it runs (output power times run time). This then determines how often the application can run, because it takes a certain amount of time to collect at least that much energy (input power times collection time) in the energy storage device (capacitor or battery).