Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SFE_BMP180.h>
- #include <Wire.h>
- SFE_BMP180 pressure;
- #define ALTITUDE 1655.0 // Altitude of SparkFun's HQ in Boulder, CO. in meter
- void setup()
- {
- Serial.begin(9600);
- Serial.println("REBOOT");
- if (pressure.begin())
- Serial.println("BMP180 init success");
- else
- {
- Serial.println("BMP180 init failnn");
- while(1); // Pause forever.
- }
- }
- void loop()
- {
- char status;
- double T,P,p0,a;
- Serial.println();
- Serial.print("provided altitude: ");
- Serial.print(ALTITUDE,0);
- Serial.print(" meters, ");
- Serial.print(ALTITUDE*3.28084,0);
- Serial.println(" feet");
- status = pressure.startTemperature();
- if (status != 0)
- {
- // Wait for the measurement to complete:
- delay(status);
- status = pressure.getTemperature(T);
- if (status != 0)
- {
- // Print out the measurement:
- Serial.print("temperature: ");
- Serial.print(T,2);
- Serial.print(" deg C, ");
- Serial.print((9.0/5.0)*T+32.0,2);
- Serial.println(" deg F");
- status = pressure.startPressure(3);
- if (status != 0)
- {
- // Wait for the measurement to complete:
- delay(status);
- // Retrieve the completed pressure measurement:
- // 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, ");
- Serial.print(P*0.0295333727,2);
- Serial.println(" inHg");
- // Result: p0 = sea-level compensated pressure in mb
- p0 = pressure.sealevel(P,ALTITUDE); // we're at 1655 meters (Boulder, CO)
- Serial.print("relative (sea-level) pressure: ");
- Serial.print(p0,2);
- Serial.print(" mb, ");
- Serial.print(p0*0.0295333727,2);
- Serial.println(" inHg");
- // Result: a = altitude in m.
- a = pressure.altitude(P,p0);
- Serial.print("computed altitude: ");
- Serial.print(a,0);
- Serial.print(" meters, ");
- Serial.print(a*3.28084,0);
- Serial.println(" feet");
- }
- else Serial.println("error retrieving pressure measurementn");
- }
- else Serial.println("error starting pressure measurementn");
- }
- else Serial.println("error retrieving temperature measurementn");
- }
- else Serial.println("error starting temperature measurementn");
- delay(5000); // Pause for 5 seconds.
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement