import machine import bme280_float as bme280 from utime import sleep_ms sid = 'BME280' BME280VCC = machine.Pin(22, machine.Pin.OUT) BME280VCC.value(1) sleep_ms(1000) SDA_PIN = machine.Pin(16) SCL_PIN = machine.Pin(17) SCL_FREQ = 100000 i2c = machine.I2C(0,sda=SDA_PIN, scl=SCL_PIN, freq=SCL_FREQ) led = machine.Pin(25, machine.Pin.OUT) led.value(0) def led_blinking(on_time, off_time, number_of_blinks): for n in range(number_of_blinks): led.toggle() sleep_ms(on_time) led.toggle() sleep_ms(off_time) def reset_bme280(): BME280VCC.value(0) led_blinking(150,350,2) BME280VCC.value(1) led_blinking(150,350,2) while True: try: BME280_I2CADDR = 0x76 bme = bme280.BME280(i2c=i2c, address=BME280_I2CADDR) break except: try: BME280_I2CADDR = 0x77 bme = bme280.BME280(i2c=i2c, address=BME280_I2CADDR) break except Exception: reset_bme280() while True: try: val = bme.values except: print(' NODATA') reset_bme280() continue if len(val) == 3: t,h,p = int(float(val[0])*1000),int(float(val[2])*1000),int(float(val[1])*1000) print(sid,t,h,p) led_blinking(700,1300,1) else: print(' BADREAD') reset_bme280()