Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 覆盆子pi,带TCA9548A多路复用器和SI7021_Python 3.x_Raspberry Pi3 - Fatal编程技术网

Python 3.x 覆盆子pi,带TCA9548A多路复用器和SI7021

Python 3.x 覆盆子pi,带TCA9548A多路复用器和SI7021,python-3.x,raspberry-pi3,Python 3.x,Raspberry Pi3,我有两个连接到一个。我把它连接到一个树莓皮运行蟒蛇3。 代码似乎输出了正确的温度/湿度,但我发现奇怪的是,相隔几分钟的读数与最小小数点的值完全相同。见下图。这些输出相隔几分钟运行 只是看起来不太正确,它的精确值是相隔几分钟的。然而,它一整天都在变化。有时我会看到它在超过10分钟内不会改变值 下面是我使用的python代码。在我冬天在温室里使用之前,有没有人建议我把它弄得更好?这些温度输出将控制整个温室自动化,我需要锁定这一部分,这样我就不会冒失去所有植物的风险:) 任何帮助都会很好! 谢谢 #

我有两个连接到一个。我把它连接到一个树莓皮运行蟒蛇3。 代码似乎输出了正确的温度/湿度,但我发现奇怪的是,相隔几分钟的读数与最小小数点的值完全相同。见下图。这些输出相隔几分钟运行

只是看起来不太正确,它的精确值是相隔几分钟的。然而,它一整天都在变化。有时我会看到它在超过10分钟内不会改变值

下面是我使用的python代码。在我冬天在温室里使用之前,有没有人建议我把它弄得更好?这些温度输出将控制整个温室自动化,我需要锁定这一部分,这样我就不会冒失去所有植物的风险:)

任何帮助都会很好! 谢谢

#!/usr/bin/python
import smbus
import time

tempSensor = 0x40       # default SI7021 address
multiplexer = 0x70      # default TCA9548A address
bus = smbus.SMBus(1)    # Rev 2 Pi uses 1

def getHumidity(tempSensor):
  try:
    bus.write_byte(tempSensor, 0xF5)
    time.sleep(0.1)
    data0 = bus.read_byte(0x40)
    data1 = bus.read_byte(0x40)
    humidity = ((data0 * 256 + data1) * 125 / 65536.0) - 6
    return humidity
  except:
    return 0

def getTemp(tempSensor):
  try:
    bus.write_byte(tempSensor, 0xF3)
    time.sleep(0.1)
    data0 = bus.read_byte(0x40)
    data1 = bus.read_byte(0x40)
    cTemp = ((data0 * 256 + data1) * 175.72 / 65536.0) - 46.85
    return cTemp
  except:
    return 0

# get first SI7021
bus.write_byte(multiplexer, 1)
time.sleep(.1)
status = str(bus.read_byte(0x70)) # read selected channel
h = str(getHumidity(tempSensor))
t = str(getTemp(tempSensor))
print(h)
print(t)

# get second SI7021
bus.write_byte(multiplexer, 2)
time.sleep(.1)
status = str(bus.read_byte(0x70)) # read selected channel
h = str(getHumidity(tempSensor))
t = str(getTemp(tempSensor))
print(h)
print(t)