这是我的脚本中有错误的部分:
while:
sensorIn = 8
sensorOut = 5
sensorAC = 7
blue = 0
white = 1
[tempIn, humIn] = grovepi.dht(sensorIn, 1)
print("tempIn = %.02f C humIn =%.02f%%"%(tempIn, humIn))
[tempOut, humOut] = grovepi.dht(sensorOut, 1)
print("tempOut = %.02f C humOut =%.02f%%"%(tempOut, humOut))
[tempAC, humAC] = grovepi.dht(sensorAC, 1)
print("tempAC = %.02f C humAC =%.02f%%"%(tempAC, humAC))
随机出错:
TypeError: 'int' object not iterable on the line: [tempAC, humAC] = grovepi.dht(sensorAC, 1)
这与Raspberry Pi和GrovePi板一起使用,可从温度和湿度传感器获取读数。它将循环播放,读取读数,然后用这些读数做一些事情,然后再睡15分钟再开始。
也许while循环是问题...我曾经在没有while循环的情况下运行它,并且会在crontab中将其设置为每15分钟运行一次。有时读数会出错,但是会将脚本作为0传递,脚本不会停止并输出错误,它会继续执行并只将值报告为零。
我看过很多关于这个错误的不同帖子,但是我只遇到了错误总是出现并且不允许脚本完全运行的情况,在我的情况下,它只是偶尔发生。
答案 0 :(得分:1)
看起来这是grovepi.dht函数的一个已知问题,偶尔可能是由于与设备通信问题引起的。 http://forum.dexterindustries.com/t/incorrect-readings-and-typeerror/1582/2
解决方案只是为类型错误添加异常处理,因为它只是一个间歇性问题(有关如何执行此操作的示例,请参阅链接的帖子)。