2.6 KiB
BME68X
Getting Started
Construct new PimoroniI2C and BreakoutBME68X instances:
from breakout_bme68x import BreakoutBME68X
from pimoroni_i2c import PimoroniI2C
PINS_BREAKOUT_GARDEN = {"sda": 4, "scl": 5}
PINS_PICO_EXPLORER = {"sda": 20, "scl": 21}
i2c = PimoroniI2C(**PINS_PICO_EXPLORER)
bme = BreakoutBME68X(i2c)
The breakout_bme68x module includes constants for the possible I2C addresses:
ADDRESS_DEFAULTADDRESS_ALT
Reading Data From The Sensor
The read method will return a tuple containing Temperature (degrees C), Pressure (Pa), relative humidity (%rH), and gas resistance (Ω) values, plus the status code and gas/measurement indexes:
temperature, pressure, humidity, gas_resistance, status, gas_index, meas_index = bme.read()
In all cases gas_index and meas_index will be zero, since these refer to the measurement profile used to gather the current readings. The MicroPython bindings currently only support a single measurement profile with a default of 300c for 100ms.
You can pass a custom temperature and duration into read:
temperature, pressure, humidity, gas_resistance, status, gas_index, meas_index = bme.read(heater_temp=250, heater_duration=50)
Configuring The Sensor
The configure method allows you to set up the oversampling, filtering and operation mode.
bme.configure(filter, standby_time, os_pressure, os_temp, os_humidity)
The breakout_bme68x module includes constants for these:
Filter Settings
FILTER_COEFF_OFFFILTER_COEFF_1FILTER_COEFF_3FILTER_COEFF_8FILTER_COEFF_15FILTER_COEFF_31FILTER_COEFF_63FILTER_COEFF_127
Oversampling Settings
NO_OVERSAMPLINGOVERSAMPLING_1XOVERSAMPLING_2XOVERSAMPLING_4XOVERSAMPLING_8XOVERSAMPLING_16X
Mode Settings
SLEEP_MODEFORCED_MODENORMAL_MODE
Standby/Output Data Rate Settings
STANDBY_TIME_0_59_MSSTANDBY_TIME_62_5_MSSTANDBY_TIME_125_MSSTANDBY_TIME_250_MSSTANDBY_TIME_500_MSSTANDBY_TIME_1000_MSSTANDBY_TIME_10_MSSTANDBY_TIME_20_MS
Defaults
bme.configure(FILTER_COEFF_3, STANDBY_TIME_1000_MS, OVERSAMPLING_16X, OVERSAMPLING_2X, OVERSAMPLING_1X)