diff options
| author | Yuval Adam <_@yuv.al> | 2024-09-23 15:53:46 +0200 |
|---|---|---|
| committer | Yuval Adam <_@yuv.al> | 2024-09-23 15:53:46 +0200 |
| commit | 021f1a48f71b16449ed499099e894d23b7f45a99 (patch) | |
| tree | 4b80ffb6338c0e211b020ef404190e716c8e8d9f /BME280.py | |
| parent | 356fee40992fbb47bd2813a241033cd8f1b3ee48 (diff) | |
Formatting and cleanup lints
Diffstat (limited to 'BME280.py')
| -rw-r--r-- | BME280.py | 299 |
1 files changed, 163 insertions, 136 deletions
@@ -1,86 +1,93 @@ import time import smbus -to_s16 = lambda x: (x + 2**15) % 2**16 - 2**15 -to_u16 = lambda x: x % 2**16 + +def to_s16(x): + return (x + 2**15) % 2**16 - 2**15 + + +def to_u16(x): + return x % 2**16 + BME280_I2C_ADDR = 0x76 BME280_CHIP_ID = 0x60 power_mode = { - "BME280_SLEEP_MODE" : 0x00, - "BME280_FORCED_MODE" : 0x01, - "BME280_NORMAL_MODE" : 0x03, - "BME280_SOFT_RESET_CODE" : 0xB6, + "BME280_SLEEP_MODE": 0x00, + "BME280_FORCED_MODE": 0x01, + "BME280_NORMAL_MODE": 0x03, + "BME280_SOFT_RESET_CODE": 0xB6, } oversampl = { - "BME280_OVERSAMP_SKIPPED" : 0x00, - "BME280_OVERSAMP_1X" : 0x01, - "BME280_OVERSAMP_2X" : 0x02, - "BME280_OVERSAMP_4X" : 0x03, - "BME280_OVERSAMP_8X" : 0x04, - "BME280_OVERSAMP_16X" : 0x05, + "BME280_OVERSAMP_SKIPPED": 0x00, + "BME280_OVERSAMP_1X": 0x01, + "BME280_OVERSAMP_2X": 0x02, + "BME280_OVERSAMP_4X": 0x03, + "BME280_OVERSAMP_8X": 0x04, + "BME280_OVERSAMP_16X": 0x05, } regs = { - "BME280_CHIP_ID_REG" : 0xD0, - "BME280_RST_REG" : 0xE0, - "BME280_STAT_REG" : 0xF3, - "BME280_CTRL_MEAS_REG" : 0xF4, - "BME280_CTRL_HUMIDITY_REG" : 0xF2, - "BME280_CONFIG_REG" : 0xF5, - "BME280_PRESSURE_MSB_REG" : 0xF7, - "BME280_PRESSURE_LSB_REG" : 0xF8, - "BME280_PRESSURE_XLSB_REG" : 0xF9, - "BME280_TEMPERATURE_MSB_REG" : 0xFA, - "BME280_TEMPERATURE_LSB_REG" : 0xFB, - "BME280_TEMPERATURE_XLSB_REG" : 0xFC, - "BME280_HUMIDITY_MSB_REG" : 0xFD, - "BME280_HUMIDITY_LSB_REG" : 0xFE, + "BME280_CHIP_ID_REG": 0xD0, + "BME280_RST_REG": 0xE0, + "BME280_STAT_REG": 0xF3, + "BME280_CTRL_MEAS_REG": 0xF4, + "BME280_CTRL_HUMIDITY_REG": 0xF2, + "BME280_CONFIG_REG": 0xF5, + "BME280_PRESSURE_MSB_REG": 0xF7, + "BME280_PRESSURE_LSB_REG": 0xF8, + "BME280_PRESSURE_XLSB_REG": 0xF9, + "BME280_TEMPERATURE_MSB_REG": 0xFA, + "BME280_TEMPERATURE_LSB_REG": 0xFB, + "BME280_TEMPERATURE_XLSB_REG": 0xFC, + "BME280_HUMIDITY_MSB_REG": 0xFD, + "BME280_HUMIDITY_LSB_REG": 0xFE, } cali_regs = { - "BME280_TEMPERATURE_CALIB_DIG_T1_LSB_REG" : 0x88, - "BME280_TEMPERATURE_CALIB_DIG_T1_MSB_REG" : 0x89, - "BME280_TEMPERATURE_CALIB_DIG_T2_LSB_REG" : 0x8A, - "BME280_TEMPERATURE_CALIB_DIG_T2_MSB_REG" : 0x8B, - "BME280_TEMPERATURE_CALIB_DIG_T3_LSB_REG" : 0x8C, - "BME280_TEMPERATURE_CALIB_DIG_T3_MSB_REG" : 0x8D, - "BME280_PRESSURE_CALIB_DIG_P1_LSB_REG" : 0x8E, - "BME280_PRESSURE_CALIB_DIG_P1_MSB_REG" : 0x8F, - "BME280_PRESSURE_CALIB_DIG_P2_LSB_REG" : 0x90, - "BME280_PRESSURE_CALIB_DIG_P2_MSB_REG" : 0x91, - "BME280_PRESSURE_CALIB_DIG_P3_LSB_REG" : 0x92, - "BME280_PRESSURE_CALIB_DIG_P3_MSB_REG" : 0x93, - "BME280_PRESSURE_CALIB_DIG_P4_LSB_REG" : 0x94, - "BME280_PRESSURE_CALIB_DIG_P4_MSB_REG" : 0x95, - "BME280_PRESSURE_CALIB_DIG_P5_LSB_REG" : 0x96, - "BME280_PRESSURE_CALIB_DIG_P5_MSB_REG" : 0x97, - "BME280_PRESSURE_CALIB_DIG_P6_LSB_REG" : 0x98, - "BME280_PRESSURE_CALIB_DIG_P6_MSB_REG" : 0x99, - "BME280_PRESSURE_CALIB_DIG_P7_LSB_REG" : 0x9A, - "BME280_PRESSURE_CALIB_DIG_P7_MSB_REG" : 0x9B, - "BME280_PRESSURE_CALIB_DIG_P8_LSB_REG" : 0x9C, - "BME280_PRESSURE_CALIB_DIG_P8_MSB_REG" : 0x9D, - "BME280_PRESSURE_CALIB_DIG_P9_LSB_REG" : 0x9E, - "BME280_PRESSURE_CALIB_DIG_P9_MSB_REG" : 0x9F, - "BME280_HUMIDITY_CALIB_DIG_H1_REG" : 0xA1, - "BME280_HUMIDITY_CALIB_DIG_H2_LSB_REG" : 0xE1, - "BME280_HUMIDITY_CALIB_DIG_H2_MSB_REG" : 0xE2, - "BME280_HUMIDITY_CALIB_DIG_H3_REG" : 0xE3, - "BME280_HUMIDITY_CALIB_DIG_H4_MSB_REG" : 0xE4, - "BME280_HUMIDITY_CALIB_DIG_H4_LSB_REG" : 0xE5, - "BME280_HUMIDITY_CALIB_DIG_H5_MSB_REG" : 0xE6, - "BME280_HUMIDITY_CALIB_DIG_H6_REG" : 0xE7, + "BME280_TEMPERATURE_CALIB_DIG_T1_LSB_REG": 0x88, + "BME280_TEMPERATURE_CALIB_DIG_T1_MSB_REG": 0x89, + "BME280_TEMPERATURE_CALIB_DIG_T2_LSB_REG": 0x8A, + "BME280_TEMPERATURE_CALIB_DIG_T2_MSB_REG": 0x8B, + "BME280_TEMPERATURE_CALIB_DIG_T3_LSB_REG": 0x8C, + "BME280_TEMPERATURE_CALIB_DIG_T3_MSB_REG": 0x8D, + "BME280_PRESSURE_CALIB_DIG_P1_LSB_REG": 0x8E, + "BME280_PRESSURE_CALIB_DIG_P1_MSB_REG": 0x8F, + "BME280_PRESSURE_CALIB_DIG_P2_LSB_REG": 0x90, + "BME280_PRESSURE_CALIB_DIG_P2_MSB_REG": 0x91, + "BME280_PRESSURE_CALIB_DIG_P3_LSB_REG": 0x92, + "BME280_PRESSURE_CALIB_DIG_P3_MSB_REG": 0x93, + "BME280_PRESSURE_CALIB_DIG_P4_LSB_REG": 0x94, + "BME280_PRESSURE_CALIB_DIG_P4_MSB_REG": 0x95, + "BME280_PRESSURE_CALIB_DIG_P5_LSB_REG": 0x96, + "BME280_PRESSURE_CALIB_DIG_P5_MSB_REG": 0x97, + "BME280_PRESSURE_CALIB_DIG_P6_LSB_REG": 0x98, + "BME280_PRESSURE_CALIB_DIG_P6_MSB_REG": 0x99, + "BME280_PRESSURE_CALIB_DIG_P7_LSB_REG": 0x9A, + "BME280_PRESSURE_CALIB_DIG_P7_MSB_REG": 0x9B, + "BME280_PRESSURE_CALIB_DIG_P8_LSB_REG": 0x9C, + "BME280_PRESSURE_CALIB_DIG_P8_MSB_REG": 0x9D, + "BME280_PRESSURE_CALIB_DIG_P9_LSB_REG": 0x9E, + "BME280_PRESSURE_CALIB_DIG_P9_MSB_REG": 0x9F, + "BME280_HUMIDITY_CALIB_DIG_H1_REG": 0xA1, + "BME280_HUMIDITY_CALIB_DIG_H2_LSB_REG": 0xE1, + "BME280_HUMIDITY_CALIB_DIG_H2_MSB_REG": 0xE2, + "BME280_HUMIDITY_CALIB_DIG_H3_REG": 0xE3, + "BME280_HUMIDITY_CALIB_DIG_H4_MSB_REG": 0xE4, + "BME280_HUMIDITY_CALIB_DIG_H4_LSB_REG": 0xE5, + "BME280_HUMIDITY_CALIB_DIG_H5_MSB_REG": 0xE6, + "BME280_HUMIDITY_CALIB_DIG_H6_REG": 0xE7, } + class BME280: param = {} def __init__(self, i2c_dev, p_mode, h_samp, p_samp, t_samp): - self.bus = smbus.SMBus(int(i2c_dev.split('-')[-1])) - self.chip_id = self.read(regs['BME280_CHIP_ID_REG'], 1)[0] + self.bus = smbus.SMBus(int(i2c_dev.split("-")[-1])) + self.chip_id = self.read(regs["BME280_CHIP_ID_REG"], 1)[0] if self.chip_id != BME280_CHIP_ID: print("Wrong Device ID [", hex(self.chip_id), "]") exit() @@ -110,108 +117,108 @@ class BME280: self.bus.write_byte_data(BME280_I2C_ADDR, reg + i, val[i]) def get_cal_param(self): - params = self.read(cali_regs['BME280_TEMPERATURE_CALIB_DIG_T1_LSB_REG'], 26) - self.param['dig_T1'] = to_u16((params[1] << 8) | params[0]) - self.param['dig_T2'] = to_s16((params[3] << 8) | params[2]) - self.param['dig_T3'] = to_s16((params[5] << 8) | params[4]) - self.param['dig_P1'] = to_u16((params[7] << 8) | params[6]) - self.param['dig_P2'] = to_s16((params[9] << 8) | params[8]) - self.param['dig_P3'] = to_s16((params[11] << 8) | params[10]) - self.param['dig_P4'] = to_s16((params[13] << 8) | params[12]) - self.param['dig_P5'] = to_s16((params[15] << 8) | params[14]) - self.param['dig_P6'] = to_s16((params[17] << 8) | params[16]) - self.param['dig_P7'] = to_s16((params[19] << 8) | params[18]) - self.param['dig_P8'] = to_s16((params[21] << 8) | params[20]) - self.param['dig_P9'] = to_s16((params[23] << 8) | params[22]) - self.param['dig_H1'] = params[25] + params = self.read(cali_regs["BME280_TEMPERATURE_CALIB_DIG_T1_LSB_REG"], 26) + self.param["dig_T1"] = to_u16((params[1] << 8) | params[0]) + self.param["dig_T2"] = to_s16((params[3] << 8) | params[2]) + self.param["dig_T3"] = to_s16((params[5] << 8) | params[4]) + self.param["dig_P1"] = to_u16((params[7] << 8) | params[6]) + self.param["dig_P2"] = to_s16((params[9] << 8) | params[8]) + self.param["dig_P3"] = to_s16((params[11] << 8) | params[10]) + self.param["dig_P4"] = to_s16((params[13] << 8) | params[12]) + self.param["dig_P5"] = to_s16((params[15] << 8) | params[14]) + self.param["dig_P6"] = to_s16((params[17] << 8) | params[16]) + self.param["dig_P7"] = to_s16((params[19] << 8) | params[18]) + self.param["dig_P8"] = to_s16((params[21] << 8) | params[20]) + self.param["dig_P9"] = to_s16((params[23] << 8) | params[22]) + self.param["dig_H1"] = params[25] - params = self.read(cali_regs['BME280_HUMIDITY_CALIB_DIG_H2_LSB_REG'], 7) - self.param['dig_H2'] = to_s16((params[1] << 8) | params[0]) - self.param['dig_H3'] = params[2] - self.param['dig_H4'] = to_s16((params[3] << 4) | (params[4] & 0x0f)) - self.param['dig_H5'] = to_s16((params[5] << 4) | (params[4] >> 4)) - self.param['dig_H6'] = params[6] + params = self.read(cali_regs["BME280_HUMIDITY_CALIB_DIG_H2_LSB_REG"], 7) + self.param["dig_H2"] = to_s16((params[1] << 8) | params[0]) + self.param["dig_H3"] = params[2] + self.param["dig_H4"] = to_s16((params[3] << 4) | (params[4] & 0x0F)) + self.param["dig_H5"] = to_s16((params[5] << 4) | (params[4] >> 4)) + self.param["dig_H6"] = params[6] def get_power_mode(self): - return self.read(regs['BME280_CTRL_MEAS_REG'], 1)[0] & 0x03 + return self.read(regs["BME280_CTRL_MEAS_REG"], 1)[0] & 0x03 def set_power_mode(self, p_mode): - if p_mode <= power_mode['BME280_NORMAL_MODE']: + if p_mode <= power_mode["BME280_NORMAL_MODE"]: v_mode = (self.ctrl_meas_reg & ~0x03) | (p_mode & 0x03) - if self.get_power_mode() != power_mode['BME280_SLEEP_MODE']: + if self.get_power_mode() != power_mode["BME280_SLEEP_MODE"]: self.soft_rst() time.sleep(0.003) - self.write(regs['BME280_CONFIG_REG'], [self.config_reg]) - self.write(regs['BME280_CTRL_HUMIDITY_REG'], [self.ctrl_hum_reg]) - self.write(regs['BME280_CTRL_MEAS_REG'], [v_mode]) + self.write(regs["BME280_CONFIG_REG"], [self.config_reg]) + self.write(regs["BME280_CTRL_HUMIDITY_REG"], [self.ctrl_hum_reg]) + self.write(regs["BME280_CTRL_MEAS_REG"], [v_mode]) else: - self.write(regs['BME280_CTRL_MEAS_REG'], [v_mode]) + self.write(regs["BME280_CTRL_MEAS_REG"], [v_mode]) - self.ctrl_meas_reg = self.read(regs['BME280_CTRL_MEAS_REG'], 1)[0] - self.ctrl_hum_reg = self.read(regs['BME280_CTRL_HUMIDITY_REG'], 1)[0] - self.config_reg = self.read(regs['BME280_CONFIG_REG'], 1)[0] + self.ctrl_meas_reg = self.read(regs["BME280_CTRL_MEAS_REG"], 1)[0] + self.ctrl_hum_reg = self.read(regs["BME280_CTRL_HUMIDITY_REG"], 1)[0] + self.config_reg = self.read(regs["BME280_CONFIG_REG"], 1)[0] else: print("Wrong Power Mode [", hex(p_mode), "]") exit() def soft_rst(self): - self.write(regs['BME280_RST_REG'], [power_mode['BME280_SOFT_RESET_CODE']]) + self.write(regs["BME280_RST_REG"], [power_mode["BME280_SOFT_RESET_CODE"]]) def set_oversamp_humidity(self, sampling): v_data = (self.ctrl_hum_reg & ~0x07) | (sampling & 0x07) - if self.get_power_mode() != power_mode['BME280_SLEEP_MODE']: + if self.get_power_mode() != power_mode["BME280_SLEEP_MODE"]: self.soft_rst() time.sleep(0.003) - self.write(regs['BME280_CONFIG_REG'], [self.config_reg]) - self.write(regs['BME280_CTRL_HUMIDITY_REG'], [v_data]) - self.write(regs['BME280_CTRL_MEAS_REG'], [self.ctrl_meas_reg]) + self.write(regs["BME280_CONFIG_REG"], [self.config_reg]) + self.write(regs["BME280_CTRL_HUMIDITY_REG"], [v_data]) + self.write(regs["BME280_CTRL_MEAS_REG"], [self.ctrl_meas_reg]) else: - self.write(regs['BME280_CTRL_HUMIDITY_REG'], [v_data]) - self.write(regs['BME280_CTRL_MEAS_REG'], [self.ctrl_hum_reg]) + self.write(regs["BME280_CTRL_HUMIDITY_REG"], [v_data]) + self.write(regs["BME280_CTRL_MEAS_REG"], [self.ctrl_hum_reg]) self.oversamp_humidity = sampling - self.ctrl_meas_reg = self.read(regs['BME280_CTRL_MEAS_REG'], 1)[0] - self.ctrl_hum_reg = self.read(regs['BME280_CTRL_HUMIDITY_REG'], 1)[0] - self.config_reg = self.read(regs['BME280_CONFIG_REG'], 1)[0] + self.ctrl_meas_reg = self.read(regs["BME280_CTRL_MEAS_REG"], 1)[0] + self.ctrl_hum_reg = self.read(regs["BME280_CTRL_HUMIDITY_REG"], 1)[0] + self.config_reg = self.read(regs["BME280_CONFIG_REG"], 1)[0] def set_oversamp_pressure(self, sampling): - v_data = (self.ctrl_meas_reg & ~0x1c) | ((sampling << 2) & 0x1c) + v_data = (self.ctrl_meas_reg & ~0x1C) | ((sampling << 2) & 0x1C) - if self.get_power_mode != power_mode['BME280_SLEEP_MODE']: + if self.get_power_mode != power_mode["BME280_SLEEP_MODE"]: self.soft_rst() time.sleep(0.003) - self.write(regs['BME280_CONFIG_REG'], [self.config_reg]) - self.write(regs['BME280_CTRL_HUMIDITY_REG'], [self.ctrl_hum_reg]) - self.write(regs['BME280_CTRL_MEAS_REG'], [v_data]) + self.write(regs["BME280_CONFIG_REG"], [self.config_reg]) + self.write(regs["BME280_CTRL_HUMIDITY_REG"], [self.ctrl_hum_reg]) + self.write(regs["BME280_CTRL_MEAS_REG"], [v_data]) else: - self.write(regs['BME280_CTRL_MEAS_REG'], [v_data]) + self.write(regs["BME280_CTRL_MEAS_REG"], [v_data]) self.oversamp_pressure = sampling - self.ctrl_meas_reg = self.read(regs['BME280_CTRL_MEAS_REG'], 1)[0] - self.ctrl_hum_reg = self.read(regs['BME280_CTRL_HUMIDITY_REG'], 1)[0] - self.config_reg = self.read(regs['BME280_CONFIG_REG'], 1)[0] + self.ctrl_meas_reg = self.read(regs["BME280_CTRL_MEAS_REG"], 1)[0] + self.ctrl_hum_reg = self.read(regs["BME280_CTRL_HUMIDITY_REG"], 1)[0] + self.config_reg = self.read(regs["BME280_CONFIG_REG"], 1)[0] def set_oversamp_temperature(self, sampling): - v_data = (self.ctrl_meas_reg & ~0xe0) | ((sampling << 5) & 0xe0) + v_data = (self.ctrl_meas_reg & ~0xE0) | ((sampling << 5) & 0xE0) - if self.get_power_mode != power_mode['BME280_SLEEP_MODE']: + if self.get_power_mode != power_mode["BME280_SLEEP_MODE"]: self.soft_rst() time.sleep(0.003) - self.write(regs['BME280_CONFIG_REG'], [self.config_reg]) - self.write(regs['BME280_CTRL_HUMIDITY_REG'], [self.ctrl_hum_reg]) - self.write(regs['BME280_CTRL_MEAS_REG'], [v_data]) + self.write(regs["BME280_CONFIG_REG"], [self.config_reg]) + self.write(regs["BME280_CTRL_HUMIDITY_REG"], [self.ctrl_hum_reg]) + self.write(regs["BME280_CTRL_MEAS_REG"], [v_data]) else: - self.write(regs['BME280_CTRL_MEAS_REG'], [v_data]) + self.write(regs["BME280_CTRL_MEAS_REG"], [v_data]) self.oversamp_temperature = sampling - self.ctrl_meas_reg = self.read(regs['BME280_CTRL_MEAS_REG'], 1)[0] - self.ctrl_hum_reg = self.read(regs['BME280_CTRL_HUMIDITY_REG'], 1)[0] - self.config_reg = self.read(regs['BME280_CONFIG_REG'], 1)[0] + self.ctrl_meas_reg = self.read(regs["BME280_CTRL_MEAS_REG"], 1)[0] + self.ctrl_hum_reg = self.read(regs["BME280_CTRL_HUMIDITY_REG"], 1)[0] + self.config_reg = self.read(regs["BME280_CONFIG_REG"], 1)[0] def read_humidity(self): - vals = self.read(regs['BME280_PRESSURE_MSB_REG'], 8) + vals = self.read(regs["BME280_PRESSURE_MSB_REG"], 8) raw_val = float((vals[6] << 8) | vals[7]) """ x1 = self.t_fine - 76800 @@ -227,10 +234,24 @@ class BME280: return (x1 >> 12) / 1024.0 """ h = float(self.t_fine) - 76800.0 - h = (raw_val - (float(self.param['dig_H4']) * 64.0 + float(self.param['dig_H5']) / 16384.0 * h)) * ( - float(self.param['dig_H2']) / 65536.0 * (1.0 + float(self.param['dig_H6']) / 67108864.0 * h * ( - 1.0 + float(self.param['dig_H3']) / 67108864.0 * h))) - h = h * (1.0 - float(self.param['dig_H1']) * h / 524288.0) + h = ( + raw_val + - ( + float(self.param["dig_H4"]) * 64.0 + + float(self.param["dig_H5"]) / 16384.0 * h + ) + ) * ( + float(self.param["dig_H2"]) + / 65536.0 + * ( + 1.0 + + float(self.param["dig_H6"]) + / 67108864.0 + * h + * (1.0 + float(self.param["dig_H3"]) / 67108864.0 * h) + ) + ) + h = h * (1.0 - float(self.param["dig_H1"]) * h / 524288.0) if h > 100: h = 100 elif h < 0: @@ -238,7 +259,7 @@ class BME280: return h def read_pressure(self): - vals = self.read(regs['BME280_PRESSURE_MSB_REG'], 8) + vals = self.read(regs["BME280_PRESSURE_MSB_REG"], 8) raw_val = float((vals[0] << 12) | (vals[1] << 4) | (vals[2] >> 4)) """ x1 = (self.t_fine >> 1) - 64000 @@ -262,23 +283,25 @@ class BME280: return p / 100.0 """ var1 = float(self.t_fine) / 2.0 - 64000.0 - var2 = var1 * var1 * float(self.param['dig_P6']) / 32768.0 - var2 = var2 + var1 * float(self.param['dig_P5']) * 2.0 - var2 = var2 / 4.0 + float(self.param['dig_P4']) * 65536.0 + var2 = var1 * var1 * float(self.param["dig_P6"]) / 32768.0 + var2 = var2 + var1 * float(self.param["dig_P5"]) * 2.0 + var2 = var2 / 4.0 + float(self.param["dig_P4"]) * 65536.0 var1 = ( - float(self.param['dig_P3']) * var1 * var1 / 524288.0 + float(self.param['dig_P2']) * var1) / 524288.0 - var1 = (1.0 + var1 / 32768.0) * float(self.param['dig_P1']) + float(self.param["dig_P3"]) * var1 * var1 / 524288.0 + + float(self.param["dig_P2"]) * var1 + ) / 524288.0 + var1 = (1.0 + var1 / 32768.0) * float(self.param["dig_P1"]) if var1 == 0: return 0 p = 1048576.0 - raw_val p = ((p - var2 / 4096.0) * 6250.0) / var1 - var1 = float(self.param['dig_P9']) * p * p / 2147483648.0 - var2 = p * float(self.param['dig_P8']) / 32768.0 - p = p + (var1 + var2 + float(self.param['dig_P7'])) / 16.0 + var1 = float(self.param["dig_P9"]) * p * p / 2147483648.0 + var2 = p * float(self.param["dig_P8"]) / 32768.0 + p = p + (var1 + var2 + float(self.param["dig_P7"])) / 16.0 return p def read_temperature(self): - vals = self.read(regs['BME280_PRESSURE_MSB_REG'], 8) + vals = self.read(regs["BME280_PRESSURE_MSB_REG"], 8) raw_val = float((vals[3] << 12) | (vals[4] << 4) | (vals[5] >> 4)) """ x1 = (((raw_val >> 3) - (self.param['dig_T1'] << 1)) * self.param['dig_T2']) >> 11 @@ -288,9 +311,13 @@ class BME280: return temp / 100.0 """ - var1 = (raw_val / 16384.0 - float(self.param['dig_T1']) / 1024.0) * float(self.param['dig_T2']) - var2 = ((raw_val / 131072.0 - float(self.param['dig_T1']) / 8192.0) * ( - raw_val / 131072.0 - float(self.param['dig_T1']) / 8192.0)) * float(self.param['dig_T3']) + var1 = (raw_val / 16384.0 - float(self.param["dig_T1"]) / 1024.0) * float( + self.param["dig_T2"] + ) + var2 = ( + (raw_val / 131072.0 - float(self.param["dig_T1"]) / 8192.0) + * (raw_val / 131072.0 - float(self.param["dig_T1"]) / 8192.0) + ) * float(self.param["dig_T3"]) self.t_fine = int(var1 + var2) temp = (var1 + var2) / 5120.0 return temp |
