Skip to main content

Barometer

I2C
input
Medium RAM
0.4.1

#Description

This sensor is able to read the pressure in the air. You could use this, for example, to get the altitude in which your project is running.

#Units

  • Celsius°C
  • Fahrenheit°F
  • KelvinK
  • KilopascalkPa
  • HectopascalhPa
  • Metersm
  • Feetft

#Aliases

  • Air Pressure Sensor

#Functions



#JavaScript / Node.js

ClassBarometerextends I2cComponentBase

Barometer component for reading pressure and temperature from BMP280 sensor. This is an I2C component that emits change events when values change.

#Value type

TypeScript
interface BarometerValue {
  pressure: number;  // in hPa
  temperature: number;  // in °C
  altitude: number;  // in m
}

#Constructor options

OptionTypeRequiredDescriptionInherited from
frequencynumberoptional
pinI2CPinIDrequiredI2cComponentBase

#Events

EventParametersDescription
changevalue: BarometerValue

#Methods

get pressurenumber

Get current pressure in hPa.

get temperaturenumber

Get current temperature in °C.

get altitudenumber

Get current altitude in meters.

get i2cIdI2CPinIDfrom I2cComponentBase

The resolved I2C pin ID (e.g. "i2c-0"). Useful for logging or passing back to the Arduino sketch.

#Example

JavaScript
import { Board, Barometer } from "@blokdots/components";

const board = new Board("/dev/ttyACM0");
await board.open();

const barometer = new Barometer({ board, pin: "example", frequency: 1000 });

barometer.on("change", (value) => {
  console.log("Barometer changed:", value);
});


#C++ (Arduino)

ClassBarometerextends ComponentBase

Barometric pressure + temperature sensor using Adafruit_BMP280 Emits ONE event when temp/pressure/altitude change significantly (atomic snapshot)

#Required libraries

#Setup

C++
#include "blokdots.h"

Barometer myComponent(eventBus, MY_EVENT);

#Constructor

Barometer(bus, evtChange, i2cAddress, seaLevelhPa, tempThresholdC, pressureThresholdPa, altitudeThresholdM, sampleIntervalMs, minEmitIntervalMs)
ParameterTypeDefault
busEventBusrequired
evtChangeuint8_trequired
i2cAddressuint8_t0x77
seaLevelhPafloat1013.25f
tempThresholdCfloat0.2f
pressureThresholdPafloat50.0f
altitudeThresholdMfloat0.5f
sampleIntervalMsuint16_t50
minEmitIntervalMsuint16_t200

#Methods

temperatureC()float
pressurePa()float
pressurehPa()float
altitudeM()float
rawTemperatureC()float

Optional: most recent sample (may be newer than last event)

rawPressurePa()float
rawPressurehPa()float
rawAltitudeM()float
address()uint8_t

Optional debug helper (non-breaking addition)

setSeaLevelhPa(v)

Optional: update sea level reference at runtime (no event emitted automatically)

ParameterTypeDefault
vfloatrequired
emittedValue()const char*

NOTE: Uses dtostrf — AVR snprintf does not support %f