Choose the right pressure sensor family first
| Need to measure |
Correct sensor family |
Best-fit examples on this page |
Why it fits |
What not to buy |
| Ambient weather or surrounding-air altitude |
Absolute barometric / atmospheric pressure sensor |
BME280 I2C/SPI Module, CJMCU BMP280 Module, MPL3115A2 I2C Altitude Sensor |
Absolute pressure is measured against vacuum. BME280 and BMP280 are barometric absolute sensors for the surrounding air, not differential sensors. |
Do not use a barometric module for pitot tube, duct, tank, or manifold pressure jobs. If your real goal is indoor climate sensing, start in Temperature & Humidity sensors. |
| Tiny altitude changes for drone altitude hold, variometer, or apogee detection |
High-resolution barometric sensor |
GY-63 MS5611 High-Precision Module, BMP388 High-Precision Sensor |
These fit best when relative altitude noise matters more than humidity. The MS5611 module adds a 24-bit ADC and 10 cm altitude resolution. |
Do not start with BMP180/BMP085 for a new high-resolution aircraft build. |
| Differential airflow, pitot airspeed, or HVAC duct pressure |
Differential pressure sensor |
MP3V5004DP Differential Pressure Sensor, MPS20N0040D-D 40KPa Sensor, MPS20N0040D with HX710 ADC |
Differential pressure is measured between two ports. MP3V5004DP measures 0kPa to 3.92kPa and is designed specifically for air media. The MPS20N0040D-D is a 40KPa differential sensor with analog output and 5V input voltage, while the HX710 version covers 0 to 40KPa with digital two-wire output. |
Do not buy BME280 or BMP280 for pitot or duct pressure and try to subtract readings in software. |
| Closed-system absolute pressure such as manifold or vacuum-side measurements |
Analog absolute pressure sensor |
MPXH6115AC6U Absolute Pressure Sensor |
It measures 15kPa to 115kPa absolute pressure and gives a 0.2V to 4.8V analog output, which is the right branch for manifold-style sensing. |
Do not use a 300–1100 hPa barometric module when the pressure is inside a closed system. |
| Wind speed in the field with no electronics build |
Handheld wind meter |
AR816+ Digital Anemometer |
This is the direct answer when you want an instant reading, not a sensor integration project. It reads up to 30 m/s and offers five selectable speed units. |
Do not buy a sensor board if you do not want to add wiring, code, and a microcontroller. If you want pressure plus air quality in one electronics build, step up to an environmental sensor build with BME680. |
Barometric sensor picker: BME280 vs BMP280 vs MS5611 vs BMP388 vs MPL3115A2 vs legacy BMP180/BMP085
| Sensor family |
Measures |
Interfaces |
Key spec from card/research |
Best for |
Main trade-off |
| BME280 |
Pressure, temperature, humidity |
I2C, SPI |
BME280 I2C/SPI Module supports I2C and SPI and has 0.1 μA sleep mode current |
Weather stations, low-power robotics, one-board environmental sensing |
Buy this only when humidity matters; mislabeled boards are a common close-call with BMP280 |
| BMP280 |
Pressure, temperature |
I2C, SPI |
CJMCU BMP280 Module lists 300 - 1100 hPa range, 2.7 μA at 1 Hz, and 3-5V working voltage |
Pressure-only logging, low-power battery builds, first bmp280 pressure sensor projects |
No humidity sensor included |
| MS5611 |
Pressure, temperature compensation |
I2C, SPI |
GY-63 MS5611 High-Precision Module includes a 24-bit ADC and 10 cm altitude resolution |
Variometer, rocket altimeter, altitude hold, telemetry |
No humidity, and it is chosen for precision rather than weather-station convenience |
| BMP388 |
Pressure, temperature compensation |
I2C, SPI |
BMP388 High-Precision Sensor lists 300 hPa to 1250 hPa range and ±0.08m altitude accuracy |
Newer precision Bosch builds, drones, indoor navigation, premium altitude sensor for arduino projects |
Pressure-only path, with a narrower voltage window on the sensor side at 1.2V to 3.6V VDDIO |
| MPL3115A2 |
Pressure, altitude-oriented output |
I2C |
MPL3115A2 I2C Altitude Sensor provides 20-bit pressure and altitude resolution, a 32-sample FIFO buffer, programmable events, and up to 12 days data logging |
Buffered altitude logging and projects that value altitude-focused features |
Smaller ecosystem than Bosch parts |
| BMP180 / BMP085 |
Pressure, temperature |
I2C |
GY-68 BMP180 I2C Module is a legacy 300 to 1100hPa I2C module with 1.8V to 3.6V input voltage; BMP085 I2C Barometric Module lists 0.03 hPa accuracy in high linear mode and 7.5 ms response time |
Following an older tutorial or replacing an older design |
Legacy options, not the default starting point for a new build |
| BME680 |
Pressure, temperature, humidity, VOC gas |
I2C, SPI |
MCU-680 BME680 Environmental Sensor adds VOC detection to the usual environmental channels |
Broader environmental monitoring where pressure is only one input |
Choose it when gas/VOC matters, not for pressure-only value |
For BME280 vs BMP280, the decision is straightforward: BME280 adds humidity, while BMP280 is pressure plus temperature only. Among BME280, BMP280, BMP180, MS5611, BMP388, and MPL3115A2, only BME280 includes humidity in the core group. If you want a low-power weather node on a native 3.3 V platform, pairing one of these modules with an ESP32 board is a clean fit. Want to sanity-check a pressure-only beginner build first? See a simple Arduino BMP280 setup. The BMP280/BME280 Breakout with Humidity is also useful when you need a selectable I2C address jumper and ±1 meter altimeter accuracy in one barometric sensor breakout.
Compatibility checks before you buy a pressure sensor: 5 V Arduino, I2C address, and interface choice
- A 5 V Arduino Uno is only safe with a module that has an onboard regulator and level shifter; bare 3.3 V modules can be damaged by 5 V logic. If you are still choosing the controller, browse Arduino boards for a Uno-based build.
- For Uno-friendly shopping, use modules that explicitly state their voltage range. The GY-BME280 5V Sensor Module lists a 1.8V to 5V DC supply range, and the CJMCU BMP280 barometric module lists 3-5V working voltage.
- ESP32, ESP8266, and Raspberry Pi use native 3.3 V logic, so these sensors fit them naturally.
- Wrong I2C address is one of the most common causes of “Could not find a valid sensor, check wiring.” The two common addresses are 0x76 and 0x77.
- Two identical sensors can share one microcontroller by setting one to 0x76 and one to 0x77 through the SDO pin or a solder jumper. The breakout with selectable I2C address jumper is the straightforward choice when you already know you need two sensors.
- I2C uses 2 wires and is enough for most weather projects. SPI uses more wires but is the better fit for high-rate logging in rockets and varios.
- Practical I2C distance is about 0.5–1 m before you need lower clock speed, pull-up changes, or buffers such as RS-485 adapters.
- Most modules already include pull-up resistors. Problems usually appear when several modules’ pull-ups stack together, or when pull-ups are tied to 5 V on a 3.3 V sensor bus.
- If you are comparing BME280 boards specifically, a humidity test on first power-up is the fastest way to catch a mislabeled “BME280” that is really a BMP280. For Arduino setup depth after you choose, see wiring and code for a BME280 on Arduino.
What altitude numbers really mean
These modules measure pressure; altitude is calculated from pressure using a sea level reference. Relative altitude changes are far more trustworthy than absolute altitude unless you supply current sea level pressure, also called QNH. A BMP280-class sensor is about ±1 m for relative altitude, while MS5611 is about ±0.1–0.3 m, and the GY-63 MS5611 module states 10 cm altitude resolution. The BMP388 High-Precision Sensor is the higher-precision Bosch option when you want tighter relative tracking.
Most starter sketches assume 1013.25 hPa for sea level pressure, which is why a first reading can be negative or tens of meters off. A 1 hPa error causes about 8.5 m of altitude error. You can set sea level pressure from a nearby weather station or METAR, or derive it from a known local altitude. If altitude-oriented output is the goal, an altitude-focused Arduino example shows the workflow.
No module here is waterproof. Outdoor use needs a vented enclosure such as a Stevenson screen or a PTFE/Gore membrane vent so the sensor can exchange air without taking on water. Also, on-chip temperature often reads 1–3 °C high because of self-heating and PCB heat coupling, so if your real priority is accurate room temperature or humidity, a dedicated option in Temperature & Humidity sensors is the better purchase.
Best pressure sensor fits by project
| Project |
Best fit on this page |
Why |
When to step up or sideways |
| DIY weather station / Home Assistant |
BME280 I2C/SPI Module |
Start with BME280 when humidity matters. It combines pressure, temperature, and humidity in one module and is a common fit for ESPHome-style builds. |
If humidity is unnecessary, save cost and power with the CJMCU BMP280 Module. If you also want gas/VOC data, move to the MCU-680 BME680 Environmental Sensor. For a low-cost 3.3 V controller, pair it with an ESP8266 board. |
| First Arduino pressure project |
CJMCU BMP280 Module or GY-BME280 5V Sensor Module |
These are the safer starting points for Uno users because they explicitly list 3–5V or 1.8–5V support. |
Choose the BME280 path if you need humidity; choose BMP280 if you only need pressure and temperature. |
| Drone altitude hold / telemetry |
GY-63 MS5611 High-Precision Module or BMP388 High-Precision Sensor |
MS5611 is the established high-resolution choice for varios and rockets, with 10 cm altitude resolution on the card. BMP388 is the newer precision Bosch option with ±0.08m altitude accuracy. |
Skip BMP180/BMP085 for a new aircraft build. If you lean Bosch and want a modern high-precision Arduino route, see a high-precision Arduino pressure build. |
| Rocket altimeter / logging |
GY-63 MS5611 module or MPL3115A2 I2C Altitude Sensor |
MS5611 suits apogee-sensitive work; MPL3115A2 adds a 32-sample FIFO and up to 12 days data logging for buffered altitude-oriented projects. |
If you want the newer Bosch precision tier, move to the BMP388 sensor. |
| Differential pitot / HVAC |
MP3V5004DP Differential Pressure Sensor |
Differential airspeed and duct jobs belong here, not on BME280/BMP280. The 0kPa to 3.92kPa range is aimed at low-pressure air measurements. |
For a higher differential range, use the MPS20N0040D-D 40KPa Sensor or the MPS20N0040D with HX710 ADC if you want onboard digital conversion. |
| Automotive manifold absolute pressure |
MPXH6115AC6U Absolute Pressure Sensor |
This is the correct absolute pressure sensor branch for manifold-style measurement, with 15kPa to 115kPa range and 0.2V to 4.8V analog output. |
Do not sidestep to barometric modules for closed-system pressure. |
| Handheld field wind checks |
AR816+ Digital Anemometer |
This is the better fit when you want an instant wind reading with no microcontroller, code, or wiring. |
Choose a sensor module only if you are building a logger or integrating airflow into a larger system. |
| Broader environmental sensing |
MCU-680 BME680 Environmental Sensor |
It is the step-up when the project needs VOC/gas sensing in addition to pressure, humidity, and temperature. |
Stay with BME280 if gas sensing is unnecessary. |
| Legacy tutorial-following build |
GY-68 BMP180 I2C Module or BMP085 I2C Barometric Module |
These still make sense when you are matching an older guide or replacing an existing design. |
For a new build, they are legacy choices rather than the default recommendation. |
FAQs on Pressure & Altitude
What’s the difference between BME280 and BMP280?
BME280 measures pressure, temperature, and humidity, while BMP280 measures pressure and temperature only. That single difference decides most purchases: choose BME280 for weather stations and indoor climate logging, and choose BMP280 when you want pressure only and do not need humidity. Because the names and boards are so similar, a mislabeled module is a common problem; if humidity never reports, the board may actually be a BMP280.
Will this work with my 5V Arduino Uno?
A 5 V Arduino Uno is only safe if the module has an onboard regulator and level shifter, and bare 3.3 V modules can be damaged by 5 V logic. The chip name alone does not tell you that. Check the module’s stated supply range before you buy, and treat clearly labeled 3–5 V or 1.8–5 V boards as the safer Uno path.
Why does my altitude show negative or far from my real elevation?
If your code is still using 1013.25 hPa instead of current sea level pressure, altitude can be far off because a 1 hPa error is about 8.5 m of altitude error. These sensors do not know your true elevation on their own; they convert pressure into altitude using a sea level reference. Update that value from a nearby weather station or METAR, or derive it from a known local altitude.
Can I connect two BME280 or BMP280 sensors to one microcontroller?
Yes — use 0x76 and 0x77 by changing the SDO pin or solder jumper so each sensor has a different I2C address. That is the normal two-sensor plan for these chip families. If both boards are fixed to the same address, you will need separate buses or an I2C multiplexer.
Which sensor is better for a drone or rocket altimeter?
MS5611 and BMP388 are the better high-resolution choices here, with the MS5611 card listing 10 cm altitude resolution, while BMP180 is a legacy option rather than the default for new builds. MS5611 is the established choice when low noise and responsive relative altitude matter most, and BMP388 is the newer Bosch path when you want a modern precision part. Also keep the pressure-range ceiling in mind: consumer barometric sensors in the 300–1100 hPa class are not the right choice for very high-altitude balloon work, and aircraft installs need protection from prop wash and direct sun.
Are these modules waterproof for outdoor weather stations?
No, bare modules are not waterproof, and outdoor use needs a vented enclosure such as a Stevenson screen or a PTFE/Gore membrane vent. A sealed box blocks the air exchange the sensor needs, while an open board will fail from water or condensation. Plan the enclosure as part of the sensor purchase, not as an afterthought.
Why does the built-in temperature read a little high?
On-chip temperature often reads 1–3 °C high because of self-heating and PCB heat coupling, and the temperature channel mainly exists for pressure compensation. That does not mean the pressure reading is wrong. If accurate ambient temperature is the main requirement, add a separate temperature sensor rather than judging the barometer by its on-board temperature number.
Glossary
- Sea level pressure (QNH/SLP)
- The local pressure value corrected to sea level, used as the reference that makes calculated altitude readings line up with reality.
- Absolute pressure
- Pressure measured against a vacuum reference, which is why barometric modules and the MPXH6115AC6U suit ambient-air or closed-system absolute measurements.
- Differential pressure
- Pressure measured between two ports, which is the correct method for pitot tubes, ducts, filters, and similar airflow jobs.
- I2C address (0x76 / 0x77)
- The device ID on a shared I2C bus, and the reason two identical sensors can usually coexist only when one is set to 0x76 and the other to 0x77.
- Level shifter
- A small interface circuit that safely translates 5 V microcontroller logic to 3.3 V sensor logic.
- Oversampling
- Internal averaging that reduces pressure noise but lowers measurement speed, which is why weather nodes and rocket altimeters do not always want the same settings.
Please complete your information below to login.
Sign In
Create New Account