Documentation ¶
Overview ¶
Package bme280 provides a driver for the BME280 digital combined humidity and pressure sensor by Bosch.
Datasheet: https://cdn-shop.adafruit.com/datasheets/BST-BME280_DS001-10.pdf
Index ¶
- Constants
- type Config
- type Device
- func (d *Device) Configure()
- func (d *Device) ConfigureWithSettings(config Config)
- func (d *Device) Connected() bool
- func (d *Device) ReadAltitude() (alt int32, err error)
- func (d *Device) ReadHumidity() (int32, error)
- func (d *Device) ReadPressure() (int32, error)
- func (d *Device) ReadTemperature() (int32, error)
- func (d *Device) Reset()
- func (d *Device) SetMode(mode Mode)
- type FilterCoefficient
- type Mode
- type Oversampling
- type Period
Constants ¶
const ( CTRL_MEAS_ADDR = 0xF4 CTRL_HUMIDITY_ADDR = 0xF2 CTRL_CONFIG = 0xF5 REG_PRESSURE = 0xF7 REG_CALIBRATION = 0x88 REG_CALIBRATION_H1 = 0xA1 REG_CALIBRATION_H2LSB = 0xE1 CMD_RESET = 0xE0 WHO_AM_I = 0xD0 CHIP_ID = 0x60 )
Registers. Names, addresses and comments copied from the datasheet.
const ( Period0_5ms Period = 0b000 Period62_5ms = 0b001 Period125ms = 0b010 Period250ms = 0b011 Period500ms = 0b100 Period1000ms = 0b101 Period10ms = 0b110 Period20ms = 0b111 )
Period of standby in normal mode which controls how often measurements are taken
Note Period10ms and Period20ms are out of sequence, but are per the datasheet
const Address = 0x76
The I2C address which this device listens to.
const (
SEALEVEL_PRESSURE float32 = 1013.25 // in hPa
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { Pressure Oversampling Temperature Oversampling Humidity Oversampling Period Period Mode Mode IIR FilterCoefficient }
Config contains settings for filtering, sampling, and modes of operation
type Device ¶
Device wraps an I2C connection to a BME280 device.
func New ¶
New creates a new BME280 connection. The I2C bus must already be configured.
This function only creates the Device object, it does not touch the device.
func (*Device) Configure ¶
func (d *Device) Configure()
ConfigureWithSettings sets up the device for communication and read the calibration coefficients.
The default configuration is the Indoor Navigation settings from the BME280 datasheet.
func (*Device) ConfigureWithSettings ¶
ConfigureWithSettings sets up the device for communication and read the calibration coefficients.
The default configuration if config is left at defaults is the Indoor Navigation settings from the BME280 datasheet.
func (*Device) Connected ¶
Connected returns whether a BME280 has been found. It does a "who am I" request and checks the response.
func (*Device) ReadAltitude ¶
ReadAltitude returns the current altitude in meters based on the current barometric pressure and estimated pressure at sea level. Calculation is based on code from Adafruit BME280 library
https://github.com/adafruit/Adafruit_BME280_Library
func (*Device) ReadHumidity ¶
ReadHumidity returns the relative humidity in hundredths of a percent
func (*Device) ReadPressure ¶
ReadPressure returns the pressure in milli pascals mPa
func (*Device) ReadTemperature ¶
ReadTemperature returns the temperature in celsius milli degrees (°C/1000)
type FilterCoefficient ¶
type FilterCoefficient byte
const ( Coeff0 FilterCoefficient = iota Coeff2 Coeff4 Coeff8 Coeff16 )
IIR filter coefficients, higher values means steadier measurements but slower reaction times
type Oversampling ¶
type Oversampling byte
const ( SamplingOff Oversampling = iota Sampling1X Sampling2X Sampling4X Sampling8X Sampling16X )
Increasing sampling rate increases precision but also the wait time for measurements. The datasheet has a table of suggested values for oversampling, output data rates, and iir filter coefficients by use case.