BMP180 Pressure Sensor Breakout
An I2C barometric pressure and temperature sensor that can measure pressure (300–1100 hPa) and calculate altitude.
Component Preview
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
| Pin | Type | Description |
|---|---|---|
| VIN | power | Power supply. Connect to Arduino 3.3V (preferred) or 5V. |
| GND | power | Ground. Connect to Arduino GND. |
| SCL | input | I2C Clock. Connect to Arduino A5. |
| SDA | digital | I2C Data. Connect to Arduino A4. |
Configurable Attributes
| Attribute | Type | Default | Description |
|---|---|---|---|
| temperature | number | 25.0 | Temperature in °C (-40 to 85). Adjustable live. |
| pressure | number | 1013.25 | Pressure 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
- Connect VIN to 3.3V (or 5V if the breakout has a regulator).
- Connect GND to Ground.
- Connect SCL to the Arduino's SCL pin (A5).
- Connect SDA to the Arduino's SDA pin (A4).

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.
