Skip to content
Home > Components > Sensors > BMP180 Barometric Sensor

BMP180 Pressure Sensor Breakout

An I2C barometric pressure and temperature sensor that can measure pressure (300–1100 hPa) and calculate altitude.

Component Preview

BMP180 BreakoutBMP180 Breakout

The BMP180 is a high-precision digital pressure sensor that can measure atmospheric pressure and temperature. Because atmospheric pressure changes with altitude, you can also use it as an altimeter.

SensorsI2CEnvironmental

Overview

The BMP180 uses the standard barometric formula to derive altitude from pressure. Sea level pressure (101325 Pa) gives altitude = 0m. At the top of Mount Everest (~30000 Pa), altitude is approximately 8848m.

Pin Reference

PinTypeDescription
VINpowerPower supply. Connect to Arduino 3.3V (preferred) or 5V.
GNDpowerGround. Connect to Arduino GND.
SCLinputI2C Clock. Connect to Arduino A5.
SDAdigitalI2C Data. Connect to Arduino A4.

Configurable Attributes

AttributeTypeDefaultDescription
temperaturenumber25.0Temperature in °C (-40 to 85). Adjustable live.
pressurenumber1013.25Pressure in hPa. Sea level = 1013.25 hPa. Adjustable live.

Working Principle

The BMP180 communicates over the I2C bus using fixed address 0x77. If another I2C device on your bus also uses 0x77, there will be a conflict.

Wiring Diagram

  1. Connect VIN to 3.3V (or 5V if the breakout has a regulator).
  2. Connect GND to Ground.
  3. Connect SCL to the Arduino's SCL pin (A5).
  4. Connect SDA to the Arduino's SDA pin (A4).

Wiring Diagram

Example Arduino Code

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

Adafruit_BMP085 bmp;

void setup() {
  Serial.begin(9600);
  if (!bmp.begin()) {
    Serial.println("BMP180 not found!");
    while (1) {}
  }
  Serial.println("BMP180 Ready");
}

void loop() {
  float temp     = bmp.readTemperature();
  long  pressure = bmp.readPressure();
  float altitude = bmp.readAltitude();

  Serial.print("Temp: ");     Serial.print(temp);     Serial.println(" °C");
  Serial.print("Pressure: "); Serial.print(pressure); Serial.println(" Pa");
  Serial.print("Altitude: "); Serial.print(altitude); Serial.println(" m");
  Serial.println("---");

  delay(1000);
}

Simulation Notes

  • Right-click the BMP180 during simulation to change temperature and pressure. The altitude is calculated automatically using the barometric formula.

Released under the MIT License.