在我的小项目的这个阶段,我想让web.py显示从连接到我的Raspberry Pi的一些传感器中恢复的一些信息。我希望定期检索信息,所以我在我的代码底部放了一个循环,用我的库刷新传感器,将读数粘在一个字典中,然后睡10秒钟。
while True:
onewiretemp.refreshSensor()
temperatures = onewiretemp.sensorTemp
time.sleep(10)
不幸的是,这样做的副作用是当我运行程序并尝试加载页面时,我的循环运行并且页面永远不会加载。我还必须手动杀死进程以阻止它。我认为这是因为循环无限期地运行。
我的其余代码基本上是web.py网站上的教程和一些模板内容。当我禁用循环并手动添加格式与我的onewiretemp模块的输出相同的数据时,该部分有效。
有没有更好的方法来做到这一点并没有破坏一切?
答案 0 :(得分:1)
在单独的线程中运行传感器轮询循环。读取或写入时,请用锁定保护温度。您的主web.py脚本可以获取锁定并获取最新数据。