Beschreibung:
Lieferumfang
Arduino Sketch
/* SFE_BMP180 library example sketch
This sketch shows how to use the SFE_BMP180 library to read the
Bosch BMP180 barometric pressure sensor.
Hardware connections:
- (GND) to GND
+ (VDD) to 3.3V
(WARNING: do not connect + to 5V or the sensor will be damaged!)
You will also need to connect the I2C pins (SCL and SDA) to your
Arduino. The pins are different on different Arduinos:
Any Arduino pins labeled: SDA SCL
Uno, Redboard, Pro: A4 A5
Mega2560, Due: 20 21
Leonardo: 2 3
*/
#include
#include
SFE_BMP180 pressure;
#define ALTITUDE 85.0 //Hoehe von Braunschweig
void
setup
()
{
Serial.begin(9600);
Serial.println(
"REBOOT"
);
// Initialize the sensor (it is important to get calibration values stored on the device).
if
(pressure.begin())
Serial.println(
"BMP180 init success"
);
else
{
connections.
Serial.println(
"BMP180 init fail\n\n"
);
while
(1);
// Pause forever.
}
}
void
loop
()
{
char
status;
double
T,P,p0,a;
// Loop here getting pressure readings every 10 seconds.
// If you want sea-level-compensated pressure, as used in weather reports,
// you will need to know the altitude at which your measurements are taken.
// We're using a constant called ALTITUDE in this sketch:
Serial.println();
Serial.print(
"provided altitude: "
);
Serial.print(ALTITUDE,0);
Serial.print(
" meters, "
);
status = pressure.startTemperature();
if
(status != 0)
{
// Wait for the measurement to complete:
delay
(status);
// Retrieve the completed temperature measurement:
// Note that the measurement is stored in the variable T.
// Function returns 1 if successful, 0 if failure.
status = pressure.getTemperature(T);
if
(status != 0)
{
Serial.print(
"temperature: "
);
Serial.print(T,2);
Serial.print(
" deg C, "
);
// Start a pressure measurement:
// The parameter is the oversampling setting, from 0 to 3 (highest res, longest wait).
// If request is successful, the number of ms to wait is returned.
// If request is unsuccessful, 0 is returned.
status = pressure.startPressure(3);
if
(status != 0)
{
// Wait for the measurement to complete:
delay
(status);
// Retrieve the completed pressure measurement:
// Note that the measurement is stored in the variable P.
// Note also that the function requires the previous temperature measurement (T).
// (If temperature is stable, you can do one temperature measurement for a number of pressure measurements.)
// Function returns 1 if successful, 0 if failure.
status = pressure.getPressure(P,T);
if
(status != 0)
{
// Print out the measurement:
Serial.print(
"absolute pressure: "
);
Serial.print(P,2);
Serial.print(
" mb, "
);
// The pressure sensor returns abolute pressure, which varies with altitude.
// To remove the effects of altitude, use the sealevel function and your current altitude.
// This number is commonly used in weather reports.
// Parameters: P = absolute pressure in mb, ALTITUDE = current altitude in m.
// Result: p0 = sea-level compensated pressure in mb
p0 = pressure.sealevel(P,ALTITUDE);
Serial.print(
"relative (sea-level) pressure: "
);
Serial.print(p0,2);
Serial.print(
" mb, "
);
// On the other hand, if you want to determine your altitude from the pressure reading,
// use the altitude function along with a baseline pressure (sea-level or other).
// Parameters: P = absolute pressure in mb, p0 = baseline pressure in mb.
// Result: a = altitude in m.
a = pressure.altitude(P,p0);
Serial.print(
"computed altitude: "
);
Serial.print(a,0);
Serial.print(
" meters, "
);
}
else
Serial.println(
"error retrieving pressure measurement\n"
);
}
else
Serial.println(
"error starting pressure measurement\n"
);
}
else
Serial.println(
"error retrieving temperature measurement\n"
);
}
else
Serial.println(
"error starting temperature measurement\n"
);
delay
(5000);
// Pause for 5 seconds.
}