The barometric pressure sensor is a device used to measure atmospheric pressure to provide critical data for altitude measurement, environmental monitoring, and weather forecasting applications. So, these sensors in meteorology help predict weather changes by noticing shifts within atmospheric pressure that indicate fair weather or incoming storms. These sensors play a major role in different industrial processes wherever accurate pressure measurements are essential for maintaining security and efficiency. Thus, examples of barometric pressure sensors are BMP585, BMP180, BMP581, BMP580, BMP390, BMP388, BMP384, BMP380, BMP280, etc. So this article elaborates on the BMP180 sensor, how it works, and its applications.
What is the BMP180 Sensor?
MP180 is a high-precision barometric pressure sensor from BMP XXX series which is designed to measure atmospheric pressure or barometric pressure and also consumer applications. So the main function of the BMP180 sensor is to find out & record changes in air pressure within the atmosphere.
Even though air is invisible, it has some mass that can change based on nearby factors like altitude and temperature. So, this barometric sensor measures the weight of air molecules at a particular point on Earth. Thus, whenever the temperature in the environment is high, then the air will turn into lighter. Similarly, the air will turn heavier when the temperature drops.
BMP180 Sensor Working
The BMP180 atmospheric pressure sensor works on the base of the air weight principle. Generally, the air in our surroundings has some weight with specific pressure. Thus, this air pressure can be detected by this atmospheric pressure sensor. Typically, this sensor includes four significant components; piezoresistive sensor, ADC, and control unit with E2PROM & 12C serial interface. So, whenever the air weight (or) pressure is altered then the piezoresistive sensor’s resistance can be changed. Thus, this is an analog value that can be changed to a digital value with ADC. After that, this value can be controlled through a control unit and finally, it is transmitted to any kind of controller using a 12C serial interface.
BMP180 Sensor Pin Configuration:
This sensor is accessible in two modules where the first module includes four pins and the second module includes five pins with an additional 3.3V pin. So these two modules function nearly the same. The pin configuration of the BMP180 sensor is shown below. Thus, this sensor includes five pins which are discussed below.
- Pin-1 (VCC): This is a power pin of the sensor module which is connected to 3.3Volts to a 5V DC source.
- Pin-2 (SDA): This is a serial data pin of the module that is utilized for serial communication.
- Pin -3 (SCL): This is the serial CLK pin of the sensor which is used for CLK pulse.
- Pin-4 (3.3V): This is a power supply pin of the module, used whenever 5V DC is not accessible.
- Pin -5 (GND): This is the ground pin of the module which is connected to the source GND.
Features & Specifications:
The features and specifications of the BMP180 sensor include the following.
- BMP180 sensor is available in two modules 4-pin & 5-pin where the pin module has an additional +3.3V pin.
- This module works at low voltages which range from 1.8V – 3.6V.
- It has a wide pressure range from 300 to above 1,000 hectares.
- These are accurate with less or above 0.15hPa deviation.
- Pressure conversion can be done in 5 milliseconds.
- It is compatible with I2C devices like real-time clocks and memories.
- It can work as a temperature sensor and an altimeter.
- Data protection courtesy with EEPROM.
- This sensor communicates with the I2C standard.
- It measures temperature & altitude.
- Its pressure range is from 300 to 1100hPa.
- High relative accuracy is ±0.12hPa
- It works on low voltages
- Its power consumption is low like 3uA.
- These are portable.
- Input voltage ranges from 3.3V to 5.5V.
- Its peak current is 1000uA.
- Maximum voltage is + 0.3V at SCL, SDA.
- Its operating temperature ranges from -40ºC to +80ºC.
Equivalents & Alternatives
Equivalent to BMP180 sensors are; BMP085, BMP280, etc. So alternatives to BMP180 sensors are; MPL115A2, Adafruit BME280, MPL3115A2, Adafruit BMP280, Adafruit BMP390, etc.
BMP180 Sensor Interfacing with Arduino UNO Board
The BMP180 sensor interfacing with Arduino UNO is shown below. So this interfacing accesses the temperature & pressure readings from the barometric pressure sensor and displays them on the serial monitor. Thus, this sensor is used to measure pressure, altitude, and temperature.
Thus, the required components to make this interfacing mainly include the bmp180 sensor, Arduino Uno board, and connecting wires. So, follow the below connections between the two devices to connect them accordingly.
The connections of this interfacing follow as;
- The VCC pin of the sensor is connected to the 5Volts pin from the Arduino board.
- The GND of the sensor is connected to the Arduino’s GND pin.
- The SDA pin of the sensor is connected to the A4 pin of the Arduino.
- The SCL pin of the sensor is connected to the A5 pin of the Arduino. Here, A4 and A5 pins are Arduino’s default I2C pins.
In the BMP180 sensor pin diagram; there are two pins only available to communicate with the module with an I2C interface. So the data can be sent to the module (or) received through this interface. In the following interfacing, the module can work with +5V regulated power. To establish this I2C interface, the SDA PIN of this module can be connected to ARDUINO’s SDA PIN whereas the SCL PIN can be connected to the SCL PIN of the ARDUINO board.
The data exchange between the ARDUINO controller & module is complex. So to transmit or receive data, we have to use libraries that are pre-written for the sensor module is perfect. Thus, these libraries can be used to make communication simple. For that, libraries need to be downloaded.
Code
The required code for the BMP180 sensor interfacing with the Arduino UNO board is shown below.
#include <Wire.h>
#include <Adafruit_BMP085.h>
#define seaLevelPressure_hPa 1013.25
Adafruit_BMP085 bmp;
void setup() {
Serial.begin(115200);
if (!bmp.begin()) {
Serial.println(“BMP180 Not Found. CHECK CIRCUIT!”);
while (1) {}
}
}
void loop() {
Serial.print(“Temperature = “);
Serial.print(bmp.readTemperature());
Serial.println(” *C”);
Serial.print(“Pressure = “);
Serial.print(bmp.readPressure());
Serial.println(” Pa”);
Serial.print(“Pressure at sealevel (calculated) = “);
Serial.print(bmp.readSealevelPressure());
Serial.println(” Pa”);
Serial.print(“Altitude = “);
Serial.print(bmp.readAltitude());
Serial.println(” meters”);
Serial.print(“Real altitude = “);
Serial.print(bmp.readAltitude(seaLevelPressure_hPa * 100));
Serial.println(” meters”);
Serial.println();
delay(1000);
Working
First, we need to include all the required libraries like Wire & Adafruit_BMP085. So here, Wire. h is necessary because we are utilizing the I2C protocol to make communication between the sensor & the Arduino board.
After that, the Adafruit_BMP085 object needs to be defined which is named ‘bmp’ by setting it on the Arduino UNO’s default I2C GPIO pins. In addition, we will classify the pressure of sea level within hPa.
In the setup() function above, we have to start the serial connection at a 115200 baud rate. After that, we initialize the sensor. If the connection between the Arduino module and the BMP180 sensor is wrong then it prints that message on the serial monitor.
Thus, in the loop() function, the sensor readings are printed which are acquired from the sensor within the serial monitor after each second.
First, the temperature reading can be displayed in degrees Celsius. We will make use of the BMP object on readTemperature() to allow the temperature reading within degrees Celsius.
Similarly, to access pressure at sea level then altitude & real altitude we utilize the bmp object on readPressure(), readSealevelPressure(), readAltitude() & readAltitude(seaLevelPressure_hPa * 100) equally.
Open your Arduino IDE & open File > New then e new file will be opened. After that, the above code needs to be copied in that file & save it. Once the code is uploaded then it displays the temperature in degrees Celsius, sea level pressure within Pa, atmospheric pressure within Pa, altitude, and real altitude within meters on the Serial Monitor.
Difference between BMP180 and BMP280
The difference between BMP180 vs BMP280 sensors includes the following.
BMP180 Sensor |
BMP280 Sensor |
BMP180 is a barometric pressure altitude or temperature sensor. | BMP280 is an absolute barometric pressure sensor. |
This sensor is used to measure atmospheric pressure accurately where atmospheric pressure changes with both altitude and weather. | This sensor is used to measure air pressure & temperature. |
BMP180 Sensor is available in 4-pin and 5-pin modules. | The BMP280 sensor is available in a 6-pin module. |
This sensor’s operating voltage ranges from 1.8 to 3.6 volts | This sensor’s operating voltage ranges from 1.71 to 3.6 volts. |
BMP180 uses an I²C digital interface of up to 3.4 MHz | BMP280 uses I²C up to 3.4 MHz & SPI up to 10 MHz digital interfaces. |
Its peak current is 1000 uA. | This sensor’s peak current is 1.12mA. |
Its absolute accuracy is 0.02 hPa. | Its absolute accuracy is ±1 hPa. |
BMP180 temperature accuracy is ±2°C | Its temperature accuracy is ±1.0°C. |
The current consumption of the BMP180 sensor is 5 µA only. | The current consumption of the BMP280 sensor is 2.7µA. |
Advantages & Disadvantages
The advantages of the BMP180 sensor include the following.
- It has a high range of accuracy.
- It uses less power handles low voltage and maintains data integrity when power loss occurs.
- BMP180 is very small which is suitable mainly for mobile devices.
- This sensor includes a temperature sensor that combines the pressure and temperature readings to measure a temperature-compensated pressure measurement.
- This sensor module communicates with a microcontroller through SPI or I2C.
- This sensor comes completely calibrated and is easy to use.
- It is the best choice for electronic projects that need precise atmospheric pressure & temperature measurements like weather stations, environmental monitoring, and altitude measurement.
- This sensor module has low latency within data transmission because of its two-wire bus.
- It has a temperature sensor, thus it can compensate for mainly temperature changes whenever taking the readings of pressure.
- This sensor is based on piezo-resistive MEMS technology, which provides EMC robustness.
This sensor module has long-term stability.
The disadvantages of the BMP180 sensor include the following.
- This sensor can be damaged if it is used outside of its pressure or temperature range.
- This sensor cannot measure altitudes < 3,000 meters (or) 30,000 feet, or > 500 feet under sea level.
- This sensor output can be uncompensated, thus it cannot corrected for mainly resistance errors.
- Using extra current throughout the breakout board can burn up the sensor.
- The BMP180 sensor can be destroyed by overpressure, so weather changes may affect the precision of altitude readings.
Applications
The applications of the BMP180 sensor include the following.
- The BMP180 high-precision sensor measures atmospheric pressure & temperature.
- This sensor has a temperature sensor to compensate for the temperature effect on pressure measurements.
- This sensor is used in GPS, Indoor navigation, computer peripherals, sports devices, hobby projects, weather forecasts, determining & forecasting weather patterns, vertical velocity indication, navigating indoors, particularly places within higher altitudes, predicting (or) planning the finest time to raise particular crops, etc.
- It improves the GPS performance & sports devices by equipping them with altimeters and barometers.
- The BMP180 barometric pressure sensor is used in different applications like; weather forecasting, navigation, crop planning, altimeter, machine efficiency, health care, home automation, drone flying, etc.
- It is used to guide aerial activity like drone flying
- It improves the efficiency and productivity of pressure-dependent equipment or machines.
- BMP180 is used mainly for indoor & outdoor navigation which improves the GPS device’s performance.
- It can be used as an altimeter to decide the height of a plane, projectile, or robot.
- It is used to forecast the best time to grow crops.
- This sensor can be used for personal health monitoring, wellness monitoring, and health care applications.
- This sensor module can be utilized for home automation.
Please refer to this link for the BMP180 Sensor Datasheet.
Thus, this is an overview of the BMP180 sensor module, and is preferred mostly in different applications over other types of modules. So, these sensors are essential for exactly measuring atmospheric pressure changes within a variety of applications. Thus, these sensor modules are used where precise atmospheric pressure and high-speed communication are needed. This module works by using very little power, thus it can be utilized on systems that function on batteries like mobile phones and smartwatches. Thus, here is a question for you, what is BMP085 IC?