Prog Shield Barometer BMP085

Fra Holstebro HTX Wiki
Skift til: navigering, søgning
Barometer med BMP085 print

Dette elektroniske barometer kan måle lufttryk og temperatur.

Software

Softwaren er baseret på et Adafruit[1] bibliotek, der er skrevet til BMP085 og BMP180[2]. Biblioteket downloades og installeres som beskrevet under Arduinos biblioteker.

Softwaren der beskrives her er BMP085test.ino.

Anvendelsen af softwaren

Som alle andre biblioteker skal der sættes de grundlæggende ting op for at kontakte biblioteket og der defineres et objekt bmp, som indeholder forbindelsen til BMP085.

#include <Wire.h>
#include <Adafruit_BMP085.h>

Adafruit_BMP085 bmp;

Inde i setup() skal der sættes gang i objektet ved hjælp af begin-metoden, og her låses softwaren, hvis der ikke findes et modul, som vist her:

void setup() {
  Serial.begin(9600);
  if (!bmp.begin()) {
    Serial.println("Could not find a valid BMP085 sensor, check wiring!");
    while (1) {}
  }
}

I loop() læses de parametre som BMP085 understøtter:

void loop() {
    Serial.print("Temperature = ");
    Serial.print(bmp.readTemperature());
    Serial.println(" *C");
    
    Serial.print("Pressure = ");
    Serial.print(bmp.readPressure());
    Serial.println(" Pa");
    
    // Calculate altitude assuming 'standard' barometric
    // pressure of 1013.25 millibar = 101325 Pascal
    Serial.print("Altitude = ");
    Serial.print(bmp.readAltitude());
    Serial.println(" meters");

    Serial.print("Pressure at sealevel (calculated) = ");
    Serial.print(bmp.readSealevelPressure());
    Serial.println(" Pa");

  // you can get a more precise measurement of altitude
  // if you know the current sea level pressure which will
  // vary with weather and such. If it is 1015 millibars
  // that is equal to 101500 Pascals.
    Serial.print("Real altitude = ");
    Serial.print(bmp.readAltitude(101500));
    Serial.println(" meters");
    
    Serial.println();
    delay(500);
}

Dette giver følgende udskrift i Serial Monitor:

Temperature = 21.10 *C
Pressure = 100980 Pa
Altitude = 28.60 meters
Pressure at sealevel (calculated) = 100984 Pa
Real altitude = 42.73 meters

Temperature = 21.00 *C
Pressure = 100977 Pa
Altitude = 28.52 meters
Pressure at sealevel (calculated) = 100987 Pa
Real altitude = 43.23 meters

Yderligere muligheder i softwaren

Der ligger yderligere muligheder i klassen man kan anvende, hvis man ønsker andre måder at anvende BMP085 Barometeret på:

  Adafruit_BMP085();
  boolean begin(uint8_t mode = BMP085_ULTRAHIGHRES);  // by default go highres
  float readTemperature(void);
  int32_t readPressure(void);
  int32_t readSealevelPressure(float altitude_meters = 0);
  float readAltitude(float sealevelPressure = 101325); // std atmosphere
  uint16_t readRawTemperature(void);
  uint32_t readRawPressure(void);

Hardware

Princippet i hardwaren er at der anvendes I2C til kommunikation med modulet.

Layout

BMP085 Barometerets placering på programmerings-shieldet kan ses her:
Layout-BMP085-Barometer.png
Placering af BMP085 Barometer

Referencer