A humidity sensor senses relative humidity. This means that it measures both air temperature and moisture. Relative humidity, expressed as a percent, is the ratio of actual moisture in the air to the highest amount of moisture air at that temperature can hold.

MetaEnvironment and MTR boards have a Bosch BME280 integrated environmental unit.

Humidity functionality of that sensor are controlled by the functions in the humidity.h header file.


The humidity sensing portion of the BME280 chip only has 1 configurable parameter which is the oversampling mode. This is set by calling mbl_mw_humidity_bme280_set_oversampling. Unlike other configuration functions, this function will immediately write the change to the sensor.

libmetawear.mbl_mw_humidity_bme280_set_oversampling(board, HumidityBme280Oversampling._16X)

Humidity Measurement

Measuring humidity is manually triggered by calling mbl_mw_datasignal_read with a humidity data signal. Humidity data is percetange from 0 to 100 represented as a float.

def data_handler(self, ctx, data):
    print("%s -> %s" % (self.device.address, parse_value(data)))

callback = FnVoid_VoidP_DataP(data_handler)

signal = libmetawear.mbl_mw_humidity_bme280_get_percentage_data_signal(board)
libmetawear.mbl_mw_datasignal_subscribe(signal, None, sensor_data_handler)