Electronics

Pressure Barometric Sensor Board Module GY-68 BMP180

AED 15.00

1

Description

The BMP180 Pressure Temperature Sensor Module opens up a world of possibilities, from determining height above sea level and comparing external and internal pressures to enhancing GPS accuracy and enabling overpressure warnings. Whether you are an engineer, hobbyist, or researcher, this module is an indispensable addition to your sensing toolkit.

 

Package Includes:

  • 1x Pressure Temperature Sensor Module BMP180

Features:

  •  High Accuracy Pressure Measurement: The BMP180 module offers exceptional accuracy in pressure measurement, with a precision of 0.02 hPa (hectopascals). This high level of accuracy enables precise monitoring of atmospheric pressure changes in various environmental conditions.
  •  Wide Pressure Detection Range: The BMP180 has a wide detection range for pressure measurements, spanning from 300 hPa to 1100 hPa. This range allows the sensor to cover a vast array of atmospheric pressures, making it suitable for applications across different altitudes and weather conditions.
  •  Temperature Sensor for Compensation: Incorporated into the module is a temperature sensor that accurately measures the ambient temperature. This temperature data is crucial for compensating pressure readings, as air pressure changes with temperature variations. The compensation ensures that pressure readings remain accurate regardless of temperature fluctuations.
  •  Altitude Approximation Capability: The BMP180 can be utilized to approximate altitude based on the measured pressure. By employing altitude estimation formulas, it becomes possible to calculate the altitude above sea level, making the module valuable for applications such as altimeters and altitude-aware systems.
  •  I2C Communication Interface: The BMP180 communicates with external devices, such as microcontrollers (MCUs), using the popular I2C (Inter-Integrated Circuit) interface. I2C is widely supported by most MCUs and allows for easy integration of the BMP180 into various electronic projects.
  •  Fully Calibrated and Pre-Calibrated: The module comes fully calibrated from the manufacturer, which means it is ready to use without requiring any calibration on the user's end. Additionally, the pressure and temperature sensors are pre-calibrated, eliminating the need for extra calibration procedures, thereby simplifying the setup process.
  •  Low Power Consumption: With a low power consumption rate of just 3μA, the BMP180 is energy-efficient, making it suitable for battery-operated and low-power applications. The low power consumption ensures extended operational time while minimizing the energy footprint.
  • High Reliability and Longevity: Developed by Bosch Sensortec, a reputable manufacturer of sensors, the BMP180 module exhibits high reliability and longevity of service. It is designed to withstand various environmental conditions, making it dependable for long-term use in critical applications.
  • Portable Size and Lightweight: The BMP180 module boasts a compact form factor with dimensions of 21mm x 18mm and weighs just 1.18 grams. Its small size and lightweight design make it easily integrable into space-constrained applications, where size and weight considerations are crucial.

 

Description:

The BMP180 Pressure Temperature Sensor Module is an advanced digital pressure sensor that offers precise measurements of atmospheric pressure and temperature. With a remarkable accuracy of 0.02 hPa and a detection range spanning from 300 to 1100 hPa, this module is a powerful tool for a wide range of applications. Equipped with a temperature sensor, the BMP180 ensures that pressure readings are accurately corrected for temperature variations, ensuring reliable data in various environmental conditions. The integration of temperature readings allows for the estimation of altitude using pressure measurement, making it invaluable for altitude-related applications. Designed with ease of use and efficiency in mind, the BMP180 comes fully calibrated, eliminating the need for additional components or complicated calibration processes. Its low power consumption of only 3μA ensures prolonged operation while conserving energy resources. The module communicates through the popular I2C interface, simplifying its integration into various microcontroller-based projects. Its small form factor further enhances its versatility, making it suitable for space-constrained applications.

 

Principle of Work:

The BMP180 Pressure Temperature Sensor Module operates based on MEMS (Microelectromechanical Systems) technology. Inside the module, there are two main components: the pressure sensor and the temperature sensor.

  1. Pressure Sensor: The pressure sensor is a piezo-resistive sensor made of a semiconducting material, usually silicon. It consists of a diaphragm that flexes in response to changes in air pressure. When the diaphragm flexes, the resistance of the semiconducting material changes proportionally. This change in resistance is converted into an electrical signal, which is then processed by the internal electronics of the sensor.
  2. Temperature Sensor: The module also includes a temperature sensor that measures the ambient temperature. This temperature reading is crucial in compensating for the effect of temperature on pressure measurements. As mentioned earlier, air density changes with temperature, and to obtain accurate pressure readings, the sensor needs to adjust for these temperature variations.

The BMP180 combines the pressure and temperature readings to provide accurate pressure measurements that are temperature-compensated.

Working with MCU (Microcontroller Unit):

The BMP180 Pressure Temperature Sensor Module communicates with the MCU using the I2C (Inter-Integrated Circuit) protocol, which is a popular and widely used communication interface in the world of electronics. Here's a general outline of how the module works with the MCU:

  • Initialization: The first step is to initialize the I2C communication between the MCU and the BMP180 module. The MCU sends the necessary initialization commands and settings to configure the module properly.
  • Reading Temperature: To obtain temperature readings, the MCU sends a command to the BMP180 module to start temperature measurement. The module measures the ambient temperature using its built-in temperature sensor and converts it into a digital value. Once the measurement is complete, the module sends the temperature data back to the MCU.
  • Reading Pressure: To measure pressure, the MCU sends a command to the BMP180 module to start pressure measurement. The module utilizes its pressure sensor to measure the air pressure and converts it into a digital value. Similar to the temperature reading, the module then sends the pressure data back to the MCU.
  • Temperature Compensation: The MCU uses the temperature data received from the module to compensate for the effect of temperature on pressure readings. By applying the appropriate compensation algorithms, the MCU ensures that the pressure readings are accurate, even in varying temperature conditions.
  • Altitude Calculation: As an additional feature, the MCU can use the pressure data to approximate the altitude. Pressure changes with altitude, and by applying suitable mathematical formulas, the MCU can estimate the altitude based on the pressure measurement.
  • Data Processing and Output: The MCU processes the temperature, pressure, and altitude data as required by the application. Depending on the application's purpose, the MCU can display the data, log it, transmit it to other devices, or perform further calculations.

 

Pinout of the Board:

  • VCC is the power supply for the module which can be anywhere between 3.3V to 5V.
  • GND should be connected to the ground of Arduino.
  • SCL is a serial clock pin for the I2C interface.
  • SDA is a serial data pin for the I2C interface.

 

Applications:

  • Weather Monitoring: The BMP180 module is commonly used in weather monitoring stations to measure atmospheric pressure and temperature. It enables the creation of barometers and weather prediction systems, allowing users to track changes in weather patterns and atmospheric conditions.
  • Altimeters and Altitude Measurement: The BMP180 is an essential component in altimeter devices, used to measure altitude above sea level. By calculating altitude based on pressure changes, it aids in applications like aviation, mountaineering, drones, and any system requiring altitude awareness.
  • GPS Enhancement: In GPS devices, the module enhances location accuracy by providing altitude data that complements latitude and longitude information. This leads to improved positioning and navigation precision, especially in three-dimensional tracking scenarios.
  • Industrial Automation: The BMP180 is utilized in various industrial automation applications, such as industrial process monitoring, where pressure and temperature readings are crucial for controlling and optimizing processes.
  • Robotics: In robotics, the module can be used for altitude-aware navigation, terrain mapping, and obstacle avoidance. Robots can leverage its altitude estimation capabilities to adapt their behavior based on varying terrains.
  • Smart Agriculture: The module is employed in precision agriculture for monitoring weather conditions and managing irrigation systems. By tracking atmospheric pressure and temperature, farmers can optimize crop growth and resource usage.
  • HVAC Systems: In Heating, Ventilation, and Air Conditioning (HVAC) systems, the BMP180 is used for monitoring indoor air pressure and temperature to regulate climate control, ensuring optimal comfort and energy efficiency.
  • Automotive Applications: In the automotive industry, the module is utilized in tire pressure monitoring systems (TPMS) to measure tire pressure accurately, enhancing safety and fuel efficiency.
  • Home Automation: The BMP180 can be integrated into smart home systems to monitor indoor climate conditions and adjust heating or cooling systems accordingly.
  • Drones and UAVs: Drones and Unmanned Aerial Vehicles (UAVs) use the module for altitude control, flight stabilization, and GPS enhancement, enabling precise positioning during flight.
  • Weather Balloons: The module is used in weather balloons to track atmospheric conditions at high altitudes, gathering data for meteorological research and forecasting.
  • Environmental Monitoring: The BMP180 is employed in environmental monitoring systems to measure changes in atmospheric pressure and temperature in remote or sensitive regions.
  • Research and Education: Due to its accuracy and ease of use, the module is widely used in research and educational projects to introduce students and researchers to concepts related to atmospheric pressure, altitude, and temperature.

 

Circuit:

When working with the BMP180 module and an Arduino board, you'll need to use the I2C communication pins on the Arduino to connect with the module. These pins are labeled SDA (data line) and SCL (clock line). Different Arduino boards have these pins located in slightly different places. For Arduino boards with the R3 layout (which is common for newer boards), the SDA and SCL pins are found close to the AREF pin.

A table that shows the correct connections between the BMP180 module and various Arduino boards:

Arduino Board SCL (clock line) Connection SDA (data line) Connection
Arduino Uno A5 A4
Arduino Nano A5 A4
Arduino Mega Pin 21 Pin 20
Arduino Leonardo/Micro Pin 3 Pin 2

By connecting the BMP180 module to the correct I2C pins on your Arduino board, you'll be able to communicate with the module and obtain accurate pressure and temperature measurements for your projects.

 

Library: 

  1. Download the Library:

    • Visit the Adafruit BMP180 library page on GitHub:
    • Adafruit BMP180
    • Click the green "Code" button and then select "Download ZIP" to download the library to your computer.
  2. Install the Library in Arduino IDE:

    • Open the Arduino IDE on your computer.
    • Go to "Sketch" menu and choose "Include Library" > "Add .ZIP Library..."
    • Navigate to the location where you downloaded the ZIP file in step 1, select it, and click "Open."
  3. Verify Installation:

    • To verify that the library was installed correctly, you can go to "Sketch" > "Include Library" and see if "Adafruit BMP085 Library" is listed there.

 

Code:

Reading Temperature and Barometric Pressure with the BMP180 module

// Include the necessary libraries
#include "Wire.h"
#include "Adafruit_BMP085.h"

// Define the standard sea-level pressure (in hPa) for altitude calculation
#define seaLevelPressure_hPa 1013.25

// Create an instance of the Adafruit BMP085 library
Adafruit_BMP085 bmp;

// Setup function runs once when the Arduino starts
void setup() {
  // Start communication with the computer at a baud rate of 9600
  Serial.begin(9600);
  
  // Check if the BMP085 sensor is connected and working
  if (!bmp.begin()) {
    // If the sensor is not detected, print an error message and pause the program
    Serial.println("Could not find a valid BMP085 sensor, check wiring!");
    while (1) {}
  }
}

// Loop function runs repeatedly after setup()
void loop() {
    // Print the temperature reading in degrees Celsius
    Serial.print("Temperature = ");
    Serial.print(bmp.readTemperature());
    Serial.println(" *C");
    
    // Print the pressure reading in Pascals (Pa)
    Serial.print("Pressure = ");
    Serial.print(bmp.readPressure());
    Serial.println(" Pa");

    // Print the altitude reading in meters, calculated based on pressure
    Serial.print("Altitude = ");
    Serial.print(bmp.readAltitude());
    Serial.println(" meters");

    // Print the pressure reading at sea level (calculated) in Pascals (Pa)
    Serial.print("Pressure at sealevel (calculated) = ");
    Serial.print(bmp.readSealevelPressure());
    Serial.println(" Pa");

    // Print the real altitude reading in meters, based on the standard sea-level pressure
    Serial.print("Real altitude = ");
    Serial.print(bmp.readAltitude(seaLevelPressure_hPa * 100));
    Serial.println(" meters");
    
    // Add a new line for spacing between readings
    Serial.println();
    
    // Delay the loop for 500 milliseconds (half a second)
    delay(500);
}

  1. We include the necessary libraries, "Wire.h" for I2C communication and "Adafruit_BMP085.h" for the BMP180 sensor functionality.
  2. We define a constant seaLevelPressure_hPa with a value of 1013.25, which represents the standard sea-level pressure in hPa (hectopascals). This constant will be used to calculate the real altitude based on pressure readings.
  3. We create an instance bmp of the Adafruit_BMP085 class to interact with the BMP180 sensor.
  4. In the setup() function, we start serial communication with the computer at a baud rate of 9600 using Serial.begin(9600). We then check if the BMP085 sensor is connected and working by using the bmp.begin() function. If the sensor is not detected, we print an error message and pause the program with a while loop.
  5. In the loop() function, we continuously read and print the temperature, pressure, and altitude readings from the BMP180 sensor.
  6. The temperature is printed in degrees Celsius using bmp.readTemperature().
  7. The pressure is printed in Pascals (Pa) using bmp.readPressure().
  8. The altitude is printed in meters using bmp.readAltitude().
  9. We also calculate and print the pressure at sea level (calculated) and the real altitude based on the standard sea-level pressure using bmp.readSealevelPressure() and bmp.readAltitude(seaLevelPressure_hPa * 100), respectively.
  10. To add a spacing between readings, we print an empty line with Serial.println().
  11. We add a delay of 500 milliseconds (half a second) using delay(500) to slow down the loop and avoid overwhelming the serial monitor with continuous readings.

 

Technical Details:

  • Supply Voltage: 1.8V to 3.6V
  • Low power consumption: 0.5μA at 1Hz
  • I2C interface with a maximum speed of 3.5 MHz
  • Pressure Range: 300 hPa to 1100 hPa (+9000 m to -500 m)
  • Weight: 1.18g
  • Size: 21mm x 18mm

 

Resources:

Comparisons:

the choice between the BMP180 and BME280 depends on the specific needs of the application. If only pressure and temperature measurements are required, the BMP180 can be a cost-effective and accurate choice. On the other hand, if humidity sensing and a broader temperature range are essential, the BME280 offers additional features and greater flexibility. Additionally, the BME280's ability to communicate through both I2C and SPI expands its compatibility with different microcontrollers and systems:

1. Temperature and Humidity Sensing:

  • BMP180: The BMP180 sensor solely measures atmospheric pressure and temperature. It does not have a humidity sensor, so it cannot provide humidity readings.
  • BME280: In addition to measuring atmospheric pressure and temperature, the BME280 also includes a humidity sensor. This allows it to provide accurate humidity readings, making it suitable for applications where humidity data is essential, such as weather monitoring and environmental sensing.

2. Temperature Range:

  • BMP180: The BMP180 can measure temperatures within the range of 0°C to 65°C. While this range is suitable for many indoor and moderate climate conditions, it might not be ideal for extreme environments with very low or high temperatures.
  • BME280: The BME280 has a broader temperature measurement range, spanning from -40°C to 85°C. This extended range enables the sensor to be used in a more extensive range of applications, including outdoor and industrial settings, where temperature fluctuations can be substantial.

3. Self-Heating Effect:

  • BMP180: The BMP180 module has a low self-heating effect, which means its temperature measurements are not significantly affected by internal heating during operation. This ensures accurate temperature readings.
  • BME280: The BME280 sensor may experience a slight self-heating effect, resulting in temperature measurements that can be a degree or two higher than the actual ambient temperature. This effect is usually considered when precise temperature data is required.

4. Communication Interfaces:

  • BMP180: The BMP180 module supports communication via the I2C (Inter-Integrated Circuit) interface only. This is a widely used and straightforward communication protocol, making it easy to interface with various microcontrollers, including Arduino and Raspberry Pi.
  • BME280: The BME280 is more versatile in terms of communication options. It supports both the I2C interface, like the BMP180, as well as the SPI (Serial Peripheral Interface) communication protocol. This feature allows users to choose the most suitable communication mode for their specific project requirements.

for more comparisons with other sensors look the following table:

Sensor DHT11 DHT22 (AM2302) LM35 DS18B20 BME280 BMP180
Measures Temperature
Humidity
Temperature
Humidity
Temperature Temperature Temperature
Humidity
Pressure
Temperature
Pressure
Communication
protocol
One-wire One-wire Analog One-wire I2C
SPI
I2C
Supply
voltage
3 to 5.5V DC 3 to 6V DC 4 to 30 V DC 3 to 5.5V DC 1.7 to 3.6V (for the chip) 3.3 to 5V for the board
1.8 to 3.6V (for the chip) 3.3 to 5V for the board
Temperature
range
0 to 50ºC -40 to 80ºC -55 to 150ºC -55 to 125ºC -40 to 85ºC 0 to 65ºC