
, which is the force that the air around you is exerting on everything. The weight of the gasses in the atmosphere creates
atmospheric pressure. One doesn’t normally notice that air weighs anything, but if you took a one inch wide column of air
from sea level to the top of the atmosphere, it would weigh about 14.7 pounds. (A 1 cm wide column of air would weigh
about 1 kg.) This weight, pressing down on the footprint of that column, creates the atmospheric pressure that we can
measure with sensors like the BMP180.
Because that inch-wide column of air weighs about 14.7 pounds, and is pressing on one square inch, it follows that the
average sea level pressure is about 14.7 pounds per square inch (psi), or 101325 pascals. This will drop about 4% for each
1000 feet (or 300 meters) you ascend. The higher you get, the less pressure you’ll see, because the column to the top of the
atmosphere is that much shorter and therefore weighs less. This is useful to know, because by measuring the pressure and
doing some math, you can determine your altitude.
Fun fact: The air pressure at 12,500 feet (3810 meters) is only half of that at sea level. In other words, half of the mass of
the atmosphere is below 12,500 feet, and the air at 12,500 feet is half as dense as that at sea level. No wonder you have a
harder time breathing up there.
The BMP180 outputs absolute pressure in pascals (Pa). One pascal is a very small amount of pressure, approximately the
amount that a sheet of paper will exert resting on a table. You will more often see measurements in hectopascals (1 hPa =
100 Pa) or kilopascals (1 kPa = 1000 Pa). The Arduino library we’ve provided outputs floating-point values in hPa, which
also happens to equal one millibar (mbar).
Here are some conversions to other pressure units:
1 hPa = 100 Pa = 1 mbar = 0.001 bar
1 hPa = 0.75006168 Torr
1 hPa = 0.01450377 psi (pounds per square inch)
1 hPa = 0.02953337 inHg (inches of mercury)
1 hpa = 0.00098692 atm (standard atmospheres)
Temperature Effects
Because temperature affects the density of a gas, and density affects the mass of a gas, and mass affects the pressure
(whew), atmospheric pressure will change dramatically with temperature. Pilots know this as “density altitude”, which makes
it easier to take off on a cold day than a hot one because the air is more dense and has a greater aerodynamic effect.
To compensate for temperature, the BMP180 includes a rather good temperature sensor as well as a pressure sensor. To
perform a pressure reading, you first take a temperature reading, then combine that with a raw pressure reading to come up
with a final temperature-compensated pressure measurement. (Don’t worry, the Arduino library makes all of this very easy.)
Measuring Absolute Pressure
As we just mentioned, if your application requires measuring absolute pressure, all you have to do is get a temperature
reading, then perform a pressure reading (see the example sketch for details). The final pressure reading will be in hPa =
mbar. If you wish, you can convert this to a different unit using the above conversion factors.
Note that the absolute pressure of the atmosphere will vary with both your altitude and the current weather patterns, both of
which are useful things to measure.