from struct import unpack as unp from time import sleep_ms # SHT20 default address SHT20_I2CADDR = 64 # SHT20 Command TRI_T_MEASURE_NO_HOLD = b"\xf3" TRI_RH_MEASURE_NO_HOLD = b"\xf5" READ_USER_REG = b"\xe7" WRITE_USER_REG = b"\xe6" SOFT_RESET = b"\xfe" class SHT20(object): def __init__(self, i2c_bus): self._address = SHT20_I2CADDR self._bus = i2c_bus def get_SHT_temperature(self): self._bus.writeto(self._address, TRI_T_MEASURE_NO_HOLD) sleep_ms(150) origin_data = self._bus.readfrom(self._address, 2) origin_value = unp(">h", origin_data)[0] value = -46.85 + 175.72 * (origin_value / 65536) return value def get_SHT_relative_humidity(self): self._bus.writeto(self._address, TRI_RH_MEASURE_NO_HOLD) sleep_ms(150) origin_data = self._bus.readfrom(self._address, 2) origin_value = unp(">H", origin_data)[0] value = -6 + 125 * (origin_value / 65536) return value # sht=SHT20(I2C(scl = Pin(22), sda = Pin(21), freq = 100000))