BMP180 sensor with Arduino code | BMP180 pressure sensor tutorial [Step by step instruction]

BMP180 sensor with Arduino code | BMP180 pressure sensor tutorial  [Step by step instruction]

Hello guys, welcome back. In this tutorial, we will learn how to work the BMP 180 pressure sensor with Arduino code. This sensor has a very small shape through which the atmospheric pressure can be measured. Also, as this pressure decreases as it rises above sea level, it can also be used to get altitude and monitor weather changes. We can use this sensor mainly to make things like weather monitoring systems and drones etc.

BMP180 sensor with Arduino code

BMP180 sensor structure

This is a very small sensor and includes a chip called BMP180. This chip measures both pressure and temperature. Also, this chip can measure barometric pressures between 300 hPa and 1100 hPa and temperatures between -40C and 85C. Next, if we talk about the power required by this sensor, it works with a potential of 3.3v. But because of the LM6206 voltage regulator included here, even a 5v potential can be used. That is, a potential of 3.3 to 5 can be used for this. We can also get the values of this sensor through I2C communication. Through this, we can get the values of all three factors namely temperature, pressure, and altitude.

The PIN structure of this BMP180 sensor

BMP180 sensor with Arduino code

Okay, now we will learn how to use this sensor with Arduino. The required components are as follows.

Disclosure: These Amazon links are Affiliate links. As an Amazon Associate, I earn from qualifying purchases.

Step 1

Firstly, identify these components.

Step 2

Secondly, connect these components. To do this, use the circuit diagram below.

BMP180 sensor circuit diagram

Step 3

Thirdly, let’s create the necessary program for this. It is as follows. Also, you need to download and install the BMP180 library and I2C library files.

/*BMP-180 Pressure sensor tutorial.
   Created by the SriTu Hobby team.
   
Home Page
*/ #include <LiquidCrystal_I2C.h> #include <SFE_BMP180.h> #include <Wire.h> #define ALTITUDE 390.0 //Enter your country evalution LiquidCrystal_I2C lcd(0x27, 16, 2); SFE_BMP180 bmp; double T, P, S, A; char status; void setup() { Serial.begin(9600); bmp.begin(); lcd.init(); lcd.backlight(); } void loop() { Serial.println(); Serial.print(“provided altitude: “); Serial.print(ALTITUDE, 0); Serial.print(” meters, “); Serial.print(ALTITUDE * 3.28084, 0); Serial.println(” feet”); status = bmp.startTemperature(); if (status != 0) { delay(status); status = bmp.getTemperature(T); if (status != 0) { Serial.print(“Temperature :”); lcd.setCursor(0, 0); lcd.print(“Temp :”); lcd.print(T, 2); lcd.print(“C”); lcd.print(” “); Serial.print(T, 2); Serial.println(“*c”); } status = bmp.startPressure(3);// 0 to 3 if (status != 0) { delay(status); status = bmp.getPressure(P, T); if (status != 0) { Serial.print(“absolute pressure: “); lcd.setCursor(0, 1); lcd.print(“Pres :”); lcd.print(P, 2); lcd.print(“mb”); lcd.print(” “); Serial.print(P, 2); Serial.println(“mb”); } S = bmp.sealevel(P, ALTITUDE); Serial.print(“relative (sea-level) pressure: “); Serial.print(S); Serial.println(“mb”); A = bmp.altitude(P, S); Serial.print(“computed altitude: “); Serial.print(A, 0); Serial.print(” meters, “); Serial.print(A * 3.28084, 0); Serial.println(” feet”); delay(3000); } } }

Code explanation

Firstly, three libraries are included. They are I2C, BMP180, and wire.

#include <LiquidCrystal_I2C.h>
#include <SFE_BMP180.h>
#include <Wire.h>

Secondly, you need to include your city evaluation. Use the search browser to find this.

#define ALTITUDE 390.0 //Enter your country evalution

Next, create objects for the I2C library and BMP180 library. Afterward, several variables were created to help the program.

LiquidCrystal_I2C lcd(0x27, 16, 2);
SFE_BMP180 bmp;
double T, P, S, A;
char status;

In the setup function, the library and serial monitor are started.

void setup() {
  Serial.begin(9600);
  bmp.begin();
  lcd.init();
  lcd.backlight();
}

In the loop function, temperature, pressure, and altitude factors are print on the serial monitor and LCD. These codes are included in the library file. Please study it.

void loop() {
The provided altitude is displayed on the serial monitor.
  Serial.println();
  Serial.print(“provided altitude: “);
  Serial.print(ALTITUDE, 0);
  Serial.print(” meters, “);
  Serial.print(ALTITUDE * 3.28084, 0);
  Serial.println(” feet”);
 
The temperature value is displayed on the serial monitor and LCD.
  status =  bmp.startTemperature();
  if (status != 0) {
    delay(status);
    status = bmp.getTemperature(T);
    if (status != 0) {
      Serial.print(“Temperature :”);
      lcd.setCursor(0, 0);
      lcd.print(“Temp :”);
      lcd.print(T, 2);
      lcd.print(“C”);
      lcd.print(” “);
      Serial.print(T, 2);
      Serial.println(“*c”);
    }
 
The pressure value is displayed on the serial monitor and LCD.
    status = bmp.startPressure(3);// 0 to 3
    if (status != 0) {
      delay(status);
      status = bmp.getPressure(P, T);
      if (status != 0) {
        Serial.print(“absolute pressure: “);
        lcd.setCursor(0, 1);
        lcd.print(“Pres :”);
        lcd.print(P, 2);
        lcd.print(“mb”);
        lcd.print(” “);
        Serial.print(P, 2);
        Serial.println(“mb”);
      }
 
The relative pressure is displayed on the serial monitor.
      S = bmp.sealevel(P, ALTITUDE);
      Serial.print(“relative (sea-level) pressure: “);
      Serial.print(S);
      Serial.println(“mb”);
 
The computed altitude displayed on the serial monitor.
      A = bmp.altitude(P, S);
      Serial.print(“computed altitude: “);
      Serial.print(A, 0);
      Serial.print(” meters, “);
      Serial.print(A * 3.28084, 0);
      Serial.println(” feet”);
 
      delay(3000);
 
    }
  }
}

Step 4

OK, finally select board and port. Afterward, upload this code to the Arduino board.

Now you can test this sensor. The full video guide is below. So, we hope to see you in the next tutorial. have a good day.

BMP180 sensor with Arduino code | BMP180 pressure sensor tutorial [Step by step instruction]

Similar Posts

2 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *