

The BMP180 is a digital barometric pressure sensor designed for high-precision atmospheric pressure and temperature measurements. It is widely used in applications such as weather stations, altimeters, GPS navigation systems, and environmental monitoring devices. The BMP180 is compact, energy-efficient, and communicates via I2C or SPI interfaces, making it easy to integrate into microcontroller-based projects.
The GY-68 breakout board simplifies the use of the BMP180 by providing necessary supporting components, such as pull-up resistors and a voltage regulator, allowing it to operate with a wide range of microcontrollers, including the Arduino UNO.








The GY-68 breakout board has 4 pins for easy interfacing:
| Pin | Name | Description |
|---|---|---|
| 1 | VIN | Power input (3.3V or 5V). The onboard regulator steps down 5V to 3.3V for BMP180. |
| 2 | GND | Ground connection. |
| 3 | SCL | I2C clock line. Connect to the microcontroller's I2C clock pin. |
| 4 | SDA | I2C data line. Connect to the microcontroller's I2C data pin. |
Note: The BMP180's I2C address is
0x77by default.
Wiring:
Install Required Libraries:
Arduino Code Example: Below is an example code to read pressure and temperature data from the BMP180:
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP085_U.h>
// Create an instance of the BMP180 sensor
Adafruit_BMP085_Unified bmp = Adafruit_BMP085_Unified(10085);
void setup() {
Serial.begin(9600);
// Initialize the BMP180 sensor
if (!bmp.begin()) {
Serial.println("Could not find a valid BMP180 sensor, check wiring!");
while (1); // Halt the program if the sensor is not detected
}
}
void loop() {
sensors_event_t event;
bmp.getEvent(&event);
if (event.pressure) {
// Display pressure in hPa
Serial.print("Pressure: ");
Serial.print(event.pressure);
Serial.println(" hPa");
// Calculate and display altitude (assuming sea level pressure = 1013.25 hPa)
float seaLevelPressure = 1013.25;
Serial.print("Altitude: ");
Serial.print(bmp.pressureToAltitude(seaLevelPressure, event.pressure));
Serial.println(" m");
// Display temperature
float temperature;
bmp.getTemperature(&temperature);
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" °C");
}
delay(2000); // Wait 2 seconds before the next reading
}
Sensor Not Detected:
0x77.Inaccurate Readings:
Temperature Readings Seem Off:
No Output on Serial Monitor:
Serial.begin(9600); is called in the setup() function and the Serial Monitor is set to 9600 baud.Can the BMP180 measure altitude directly?
What is the maximum cable length for I2C communication?
Can I use the BMP180 with a 5V microcontroller?
By following this documentation, you can successfully integrate the BMP180 sensor into your projects for accurate pressure and temperature measurements.