What is Pressure Sensor BMP180

BMP-180 based digital barometric pressure sensor module. BMP180 is designed to be connected directly to a microcontroller of a mobile device via the I2C bus. The pressure and temperature data has to be compensated by the calibration data of the E2PROM of the BMP180.

Working

The BMP180 consists of a piezo-resistive sensor, an analog to digital converter and a control unit with E2PROM and a serial I2C interface. The BMP180 delivers the uncompensated value of pressure and temperature. The E2PROM has stored 176 bit of individual calibration data. This is used to compensate offset, temperature dependence and other parameters of the sensor.

Specifications

Supply Voltage: 1.8V to 3.6V
Low power consumption:0.5uA at 1Hz
Interface: I2C
Max I2C Speed: 3.5Mhz
Very low noise: up to 0.02hPa (17cm)
Pressure Range: 300hPa to 1100hPa (+9000m to -500m)

How to use BMP180 with Arduino?

Hardware and Software Required

BMP180 Pressure sensor

Arduino Uno

Arduino IDE LINK

Hardware Connections
The BMP180 sensor has to be connected to Uno as follows:
Vcc to 3.3V
Gnd to Gnd
SDA to A4
SCL to A5

bmp180_circuit
bmp180_circuit
bmp180 GY-68
bmp180 GY-68

You need to download the library files from GitHub link here: BMP085 Library.
Now add this library into the Arduino IDE and upload the program the given below to the Uno board.The result will be shown in the serial monitor.

Library Understanding

Define Library Wire.h and Adafruit_BMP085.h
Making Object with : Adafruit_BMP085 bmp; After Write this text in code bmp is object
bmp.begin(mode);
There are Four Modes
BMP085_ULTRALOWPOWER
BMP085_STANDARD
BMP085_HIGHRES
BMP085_ULTRAHIGHRES is By default set not need to define in function.

Mode depend on Power or Accuracy
BMP085_ULTRALOWPOWER save power but not accurate
BMP085_ULTRAHIGHRES accurate but not save power

FUNCTIONS

  • bmp.readTemperature(); // For read Temperature
  • bmp.readPressure(); // For read Pressure
  • bmp.readAltitude(); // For read Altitude
  • bmp.readSealevelPressure(); // For read Sea level Pressure
  • bmp.readAltitude(101500); //more precise measurement of altitude set inside the function 101500
    it all return Function

Programing Code

#include <Wire.h>
#include <Adafruit_BMP085.h>
Adafruit_BMP085 bmp;  
void setup() {
  Serial.begin(9600);
  if (!bmp.begin()) {
    Serial.println("Could not find a valid BMP085 sensor, check wiring!");
  while (1) {}
  }
}
  
void loop() {
    Serial.print("Temperature = ");
    Serial.print(bmp.readTemperature());
    Serial.println(" *C");
    
    Serial.print("Pressure = ");
    Serial.print(bmp.readPressure());
    Serial.println(" Pa");
 
    Serial.print("Altitude = ");
    Serial.print(bmp.readAltitude(101500));
    Serial.println(" meters");

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

    Serial.println();
    delay(500);
}

Result Output

BMP180-Result
BMP180-Result
(Visited 186 times, 1 visits today)
Understanding BMP180 Pressure Sensor

Tagged on:         

Leave a Reply

Your email address will not be published. Required fields are marked *

Translate »