How to connect a BMP085 pressure sensor to Arduino
Contents
Introduction
This is a simple breakout board for the BMP085 high-precision, low-power barometric pressure sensor. The BMP085 offers a measuring range of 300 to 1100 hPa with an absolute accuracy of down to 0.03 hPa. It's based on piezo-resistive technology for EMC robustness, high accuracy and linearity as well as long term stability. This sensor supports a voltage supply between 1.8 and 3.6VDC. It is designed to be connected directly to a micro-controller via the I²C bus This breadboard-friendly board breaks out all pins of the BMP085 to a 6-pin 0.1" pitch header. The analog and digital supplies (VDDD and VDDA) of the BMP085 are tied together into a single pin. We've also put two 4.7k pull-up resistors on the I2C lines.
Specification
- Pressure sensing range: 300-1100 hPa (9000m to -500m above sea level)
- Up to 0.03hPa / 0.25m resolution
- -40 to +85°C operational range, +-2°C temperature accuracy
- 2-pin i2c interface on chip
- V1 of the breakout uses 3.3V power and logic level only
- V2 of the breakout uses 3.3-5V power and logic level for more flexible usage
- Digital two wire (I2C) interface
- Wide barometric pressure range
- Flexible supply voltage range
- Ultra-low power consumption
- Low noise measurement
- Fully calibrated
- Temperature measurement included
- Ultra-flat, small footprint
- 0.65 x 0.65" (16.5 x 16.5 mm)
Wiring
You can see, there are 4 pins you have to use to connect the BMP085 pressure sensor to Arduino. Follow this guide:
Arduino Pin | BMP085 Pin |
A4 | SDA |
A5 | SCL |
3,3V | VCC |
Gnd | GND |
- Connect GND to the ground pin.
- Connect the SCL clock pin to Analog pin #5
- Connect the SDA data pin to Analog pin #4
- Connect the VCC pin to a 3.3V power source.
The V1 of the sensor breakout cannot be used with anything higher than 3.3V so don't use a 5V supply! V2 of the sensor board has a 3.3V regulator so you can connect it to either 3.3V or 5V if you do not have 3V available.
You don’t need to connect the XCLR (reset) or EOC (end-of-conversion) pins.
Code Example
Download the following library and unzip it under the libraries directory of the Arduino IDE folder. For example, for my computer’s setup, the directory is: C:\Users\MyUserName\Documents\Arduino\libraries\ Create a folder for this example, then start the Arduino IDE. You will find the premade library in the file-> examples menu. Open it then run the example.
Download: BMP085 Arduino Library.zip
If you wish to exploit more information eg. temperatue, altitude from your sensor just update the void loop() function in the following way:
void loop(void) { sensors_event_t event; bmp.getEvent(&event); if (event.pressure) { Serial.print("Pressure: "); Serial.print(event.pressure); Serial.println(" hPa"); float temperature; bmp.getTemperature(&temperature); Serial.print("Temperature: "); Serial.print(temperature); Serial.println(" C"); float seaLevelPressure = SENSORS_PRESSURE_SEALEVELHPA; Serial.print("Altitude: "); Serial.print(bmp.pressureToAltitude(seaLevelPressure, event.pressure, temperature)); Serial.println(" m"); Serial.println(""); } else { Serial.println("Sensor error"); } delay(1000); }
References
- https://learn.adafruit.com/bmp085
- http://bildr.org/2011/06/bmp085-arduino/
- https://www.sparkfun.com/tutorials/253
More information
- Connecting DHT11 temperature and humidity sensor
- How to connect an NFC reader to the Arduino
- How to connect a soil moisture sensor to your Arduino
- How to connect TMP36 temperature sensor to the Arduino
- Connecting US1881 Hall sensor to the Arduino
- How to connect a BMP085 pressure sensor to Arduino
- How to connect a TSL2561 luminosity sensor to Arduino
- How to connect a YL-83 Raindrop sensor to Arduino
- How to connect a Modern Device Wind Sensor to Arudino
- How to connect a SI1145 UV sensor to Arduino
- How to connect an Infrared Remote