Introduction
In this experiment, we will use the BMP180 barometric pressure sensor to measure atmospheric pressure and temperature. This sensor is ideal for weather stations and altitude detection applications.

Components Needed
- Arduino (e.g., Uno, Nano)
- BMP180 Barometric Pressure Sensor
- Jumper wires
- OLED Display (optional, for displaying the results)
Circuit Setup
- Connect the VCC pin of the BMP180 sensor to the 3.3V pin on the Arduino.
- Connect the GND pin of the BMP180 sensor to the GND pin on the Arduino.
- Connect the SCL pin to pin A5 on the Arduino.
- Connect the SDA pin to pin A4 on the Arduino.
Ensure that the sensor is connected to the correct pins and that the Arduino is powered on.

Code for BMP180 Barometric Pressure Sensor
Upload the following code to your Arduino to read the pressure and temperature data:
#include
#include
#include
Adafruit_BMP085_Unified bmp;
void setup() {
Serial.begin(9600);
if (!bmp.begin()) {
Serial.print("Couldn't find the sensor");
while (1);
}
}
void loop() {
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");
}
delay(2000);
}
Explanation
The BMP180 sensor uses I2C communication to send pressure and temperature data to the Arduino. In this code:
bmp.getEvent(&event)
: Retrieves the sensor readings for pressure and temperature.Serial.print()
: Displays the pressure and temperature on the serial monitor.- The sensor readings are updated every 2 seconds to give real-time data.
Troubleshooting
- If no data is displayed, check the wiring and ensure that the sensor is powered correctly.
- If the readings are inaccurate, ensure that the sensor is not too far from the Arduino and that the sensor's I2C address is correctly set in the code.
- Ensure that the required libraries for BMP180 are installed in the Arduino IDE.