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
[amazon_link asins=’B01L26WRO2,B00SFPE9U4′ template=’ProductCarousel’ store=’diamondrock0a-21′ marketplace=’IN’ link_id=’6239ac3c-7825-11e8-8ee1-f17fa1e5ffbb’]
Arduino Uno
[amazon_link asins=’B014YUY3RC,B00H1HR576′ template=’ProductCarousel’ store=’diamondrock0a-21′ marketplace=’IN’ link_id=’7ccdb8ae-7825-11e8-8341-cdd9ecb13dbb’]
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
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); }