我在树莓派上使用 tca9548a 多路复用器,试图读取 3 个霍尼韦尔温度/湿度传感器(hih6021、hih8121 和 hih9121)。使用 Adafruit 提供的代码(如下所示),我确认存在 3 个传感器(全部位于地址 0x27)。
根据文档,我可以通过使用 TCA9548A 通道而不是 I2C 对象创建每个传感器的实例来读取每个传感器。问题是,我找不到任何接收 i2c 对象的传感器的库,所以我不知道如何从它们读取数据。那么,如何使用 tca9548a 从霍尼韦尔传感器读取温度和湿度?
# This example shows using TCA9548A to perform a simple scan for connected devices
import board
import adafruit_tca9548a
# Create I2C bus as normal
i2c = board.I2C() # uses board.SCL and board.SDA
# Create the TCA9548A object and give it the I2C bus
tca = adafruit_tca9548a.TCA9548A(i2c)
for channel in range(8):
if tca[channel].try_lock():
print("Channel {}:".format(channel), end="")
addresses = tca[channel].scan()
print([hex(address) for address in addresses if address != 0x70])
tca[channel].unlock()