Welcome to Hong Kong Bitfoic Electronics Co., Ltd
Home > Components >BOSCH Pressure Sensor BMP085: How to use BMP085 with ESP32 to Read Pressure?

BOSCH Pressure Sensor BMP085: How to use BMP085 with ESP32 to Read Pressure?

9/5/2023

Introduction

BMP085 is an atmospheric pressure sensor with high precision and ultra-low power consumption, which is suitable for mobile devices, such as mobile phones, PDAs, GPS navigation devices, and outdoor sports equipment. In today’s post, we will share the BMP085 pinout, datasheet, features, and application, as well as BMP085 with ESP32.

 

Pressure Sensor BMP085

Catalog

 

Ⅰ BMP085 Overview

 

BMP085 is composed of a piezoresistive sensor, AD converter, and EEPROM and I2C interface control unit. BMP085 is composed of a piezoresistive sensor, AD converter, and EEPROM and I2C interface control unit. It uses a standard I2C interface, which can be easily connected and communicated with the main device (single-chip microcomputer). Of course, the air pressure and temperature values output by BMP085 are values that have not been calibrated. You need to use the calibration data in EEPROM to calibrate the air pressure and temperature values output by BMP085 before they can be used. It uses a standard I2C interface, which can be easily connected and communicated with the main device (single-chip microcomputer). Of course, the air pressure and temperature values output by BMP085 are values that have not been calibrated. You need to use the calibration data in EEPROM to calibrate the air pressure and temperature values output by BMP085 before they can be used.

 

 

Ⅱ BMP085 Pinout

Figure1-BMP085 Pinout

 

Ⅲ BMP085 Pin Configuration

 

Pin

Name

Function

1

Ground

This pin is connected to the ground

2

EOC

EOC (End Of Conversion) pin is used as an indicator to speed up conversion time 

3

Vdda

Positive power supply is connected to this pin

4

Vddd

Digital power supply pin is tied together with  Vdda pin and connected to power

5

NC

No  Connection

6

SCL

I2C interface - Serial Clock pin

7

SDA

I2C interface - Serial Data pin

8

XCLR

Master clear pin (Active low)

 

 

 BMP085 Feature

 

Low-cost device

High precision

Temperature sensor included

Robust package

Low power: 5μA at 1 sample / sec. in standard mode

I2C interface

Fully calibrated

Pb-free, halogen-free and RoHS compliant

Pressure range: 300 ... 1100hPa (+9000m ... -500m above sea level)

Operating voltage range: 1.8V to 3.6V

Operating temperature range: -40ºC to +85ºC

Conversion time temperature: 4.5ms maximum

Conversion time pressure: 25.5ms maximum

 

 

 BMP085 Applications

 

  • Indoor and outdoor navigation
  • Sports equipment
  • Weather forecast
  • Temperature sensor
  • Vertical velocity indication
  • Enhancement of GPS navigation
  • Hobby projects
  • Enhancement of GPS navigation (dead-reckoning, slope detection, etc.)
  • In- and out-door navigation.
  • Leisure and sports
  • Weather forecast
  • Vertical velocity indication (rise/sink speed)

 

 

Ⅵ How to use BMP085 with ESP32 to Read Pressure?

 

Project Introduction

This project shows you how to use the BMP180 barometric sensor with the ESP32 to read pressure, and temperature and estimate altitude. We’ll divide this project into three parts. The first one is how to wire the sensor to the ESP32, then we will introduce how to install the needed library and how to wire the sketch in the Arduino IDE.

 

BMP085 

The BMP085 is a high-accuracy, ultra-low-power barometric pressure sensor for advanced mobile applications. The BMP085 offers outstanding performance with a range of 300 hPa to 1100 hPa, absolute precision of 2.5 hPa, and noise level as low as 0.03 hPa (corresponding to a height change of only 0.25 m).

 

Figure2-BMP085 

Figure2-BMP085 

 

 

 

 

Hardware Required

 

One ESP32 NodeMCU V3 development board

One BMP085 sensor module

Panel board one

Several DuPont lines

one data line

 

6.1 How to Wire BMP180 Sensor to the ESP32?

 

The following table shows how to wire the sensor.

BMP085 ESP32
Vin 5v
Gnd Gnd
SCL 22
SDA 21

 

 

Circuit Diagram

 

Circuit Diagram

Figure3-Circuit Diagram

 

 

 

 

 

6.2 Preparing the ESP32 board in Arduino IDE

In order to upload code to your ESP32 using Arduino IDE, you should install an add-on for the Arduino IDE that allows you to program the ESP32 using the Arduino IDE and its programming language. You need to download one library associated with the BMP180 Sensor so that ESP32 will properly communicate with the Sensor. Go to Tools -> Manage Libraries… in Arduino IDE. 

 

Installing the BMP_085 Library

Using the BMP_085 library from Adafruit is one of the simplest ways to read pressure, temperature, and altitude with the BMP180 sensor. The BMP085 and BMP180 sensors are both compatible with this library. To install the library in your Arduino IDE, follow these steps:

  1. Open your Arduino IDE and go to Sketch Include Library > Manage Libraries. The Library Manager should open.
  2. Install the BMP085 library from Adafruit by typing "BMP085" into the search box.

 

https://github.com/adafruit/Adafruit-BMP085-Library

 

Figure4-BMP_085 Library

Figure4-BMP_085 Library

 

After installing, restart your Arduino IDE.

 

6.3 How to Read Temperature, Pressure, And Altitude?

Code

 

Figure5-Code

 

Figure6-Code

Figure6-Code

 

 

6.4 How the Code Works?

The provided Arduino sketch initializes the BMP085 sensor, reads temperature, pressure, and altitude data, and displays it on the serial monitor. The key components of the code include:

Initialization: In the setup() function, the BMP085 sensor is initialized and communication is established.

Data Readings: In the loop() function, temperature, pressure, and altitude data are read from the sensor using bmp.readTemperature(), bmp.readPressure(), and bmp.readAltitude() functions, respectively.

Display: You can view the acquired data on the serial monitor to keep track of the most recent sensor readings.

Delay: A delay of 500 milliseconds between readings ensures that data is not retrieved too rapidly.

With this code, you can effectively interface the BMP180 barometric sensor with the ESP32 and gather valuable environmental data for various applications.

 

Results:

You can check the temperature, pressure, and altitude values by opening the serial monitor after you upload the code to your ESP32.

Applications like weather monitoring, altimeter projects, or environmental data logging can all benefit from these readings.

 

 

Figure7-sensor readings

 

 

 

 

Ⅶ BMP085 PDF

 

BMP085 Datasheet

 

Frequently Asked Questions
How accurate is the BMP085?
What is the difference between BMP180 and BMP085?
How high can a bmp085 be measured?
What is a weather prophet bmp085?
logo
Bitfoic is a professional electronic components distributor founded in 2013. Adhering to our business philosophy of customer first and people-oriented, we have won the favor of our customers and established an excellent reputation in international Partner.
Related Articles
Bosch Sensortec
In Stock: N/A
Popular parts number
  • 4307
    4307

    Pololu Corporation

    QTRX-HD-07RC REF ARRAY 7CHNL

  • SLI-2000 FMK
    SLI-2000 FMK

    Sensirion AG

    FLOW METER KIT FOR SLI-2000

  • 2763
    2763

    Pololu Corporation

    UM7-LT ORIENTATION SENSOR

  • 961
    961

    Pololu Corporation

    QTR-8RC REFLECTANCE SENSOR ARRAY

  • 430BOOST-SENSE1
    430BOOST-SENSE1

    Texas Instruments

    CAP TOUCH BOOSTER FOR LAUNCH PAD

  • SLI-0430 FMK
    SLI-0430 FMK

    Sensirion AG

    FLOW METER KIT FOR SLI-0430

  • 4301
    4301

    Pololu Corporation

    QTRX-HD-01RC REF SENSOR 1CHNL

  • 2457
    2457

    Pololu Corporation

    QTR-3RC REFLECTANCE SENSOR ARRAY

  • 4141
    4141

    Pololu Corporation

    QTR-MD-01RC REF SENSOR 1CHNL

  • 4501
    4501

    Pololu Corporation

    QTRXL-HD-01RC REF SENSOR 1CHNL