The Altimeter Barometric Pressure Sensor, Temperature Sensor Module 29124, manufactured by Parallax Inc., is a versatile sensor module designed to measure atmospheric pressure, altitude, and temperature. This module is based on the Bosch BMP280 sensor, which provides high precision and low power consumption, making it ideal for a wide range of applications.
The following table outlines the key technical details of the Altimeter Barometric Pressure Sensor, Temperature Sensor Module 29124:
Parameter | Value |
---|---|
Operating Voltage | 3.3V to 5V |
Operating Current | 2.7 µA (typical) |
Pressure Measurement Range | 300 hPa to 1100 hPa |
Altitude Measurement Range | -500 m to 9000 m |
Temperature Range | -40°C to +85°C |
Communication Interface | I2C and SPI |
I2C Address | 0x76 (default) or 0x77 (configurable) |
Dimensions | 15 mm x 13 mm x 2 mm |
The module has a total of 6 pins, as described in the table below:
Pin | Name | Description |
---|---|---|
1 | VIN | Power supply input (3.3V to 5V) |
2 | GND | Ground connection |
3 | SCL | I2C clock line (or SPI clock in SPI mode) |
4 | SDA | I2C data line (or SPI data in SPI mode) |
5 | CS | Chip select for SPI communication (connect to GND for I2C mode) |
6 | SDO | SPI data output (or I2C address selection: connect to GND for 0x76, VCC for 0x77) |
Below is an example Arduino sketch to read pressure, altitude, and temperature data using the I2C interface:
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>
// Create an instance of the BMP280 sensor
Adafruit_BMP280 bmp; // I2C interface by default
void setup() {
Serial.begin(9600);
while (!Serial); // Wait for Serial Monitor to open
// Initialize the BMP280 sensor
if (!bmp.begin(0x76)) { // Use 0x77 if SDO is connected to VIN
Serial.println("Could not find a valid BMP280 sensor, check wiring!");
while (1); // Halt execution if sensor initialization fails
}
// Configure the sensor
bmp.setSampling(Adafruit_BMP280::MODE_NORMAL,
Adafruit_BMP280::SAMPLING_X2, // Temperature oversampling
Adafruit_BMP280::SAMPLING_X16, // Pressure oversampling
Adafruit_BMP280::FILTER_X16, // Filtering
Adafruit_BMP280::STANDBY_MS_500); // Standby time
}
void loop() {
// Read and print temperature, pressure, and altitude
Serial.print("Temperature = ");
Serial.print(bmp.readTemperature());
Serial.println(" *C");
Serial.print("Pressure = ");
Serial.print(bmp.readPressure() / 100.0F); // Convert Pa to hPa
Serial.println(" hPa");
Serial.print("Approx. Altitude = ");
Serial.print(bmp.readAltitude(1013.25)); // Adjust sea level pressure as needed
Serial.println(" m");
delay(2000); // Wait 2 seconds before the next reading
}
Sensor Not Detected:
Incorrect Readings:
Communication Errors:
Q: Can this sensor be used with a 5V microcontroller?
A: Yes, the module is compatible with both 3.3V and 5V systems.
Q: How do I calculate altitude from pressure readings?
A: The sensor library provides a readAltitude()
function, but you can also use the barometric formula if you need custom calculations.
Q: Can I use this sensor outdoors?
A: While the sensor can operate in a wide temperature range, it is not waterproof or dustproof. Use a protective enclosure for outdoor applications.