我目前正在使用我的覆盆子pi在python中设置一些传感器。总蟒蛇新手在这里。
每个传感器都有自己的脚本来读取传感器,还有另一个脚本驱动LCD显示器并显示传感器脚本中导入的变量。
到目前为止,我已经使用了运行传感器并生成输出的工作脚本,但是,我似乎无法将变量(温度和pH值)导入到LCD显示脚本中。此外,一旦我导入变量,我如何指示LCD脚本“刷新"并获取更新的变量?
这是我到目前为止的精简版本,我省略了每个脚本的传感器和数据记录部分。为简单起见,script_display是LCD驱动程序,pH_script用于pH,temp_script用于温度。
这是脚本的简化版本:
import sys
sys.path.insert(0, '/home/pi/Raspberry-Pi-sample-code')
import pH_script
import temp_script
from ph_script import ph_main
from temp_script import get_temp
import time
while True:
print PH.ph_main(ph_output)
print get_temp(temp)
time.sleep(1)
from w1thermsensor import W1ThermSensor
import time
#Get Temperature
def get_temp():
global temp
sensor = W1ThermSensor(W1ThermSensor.THERM_SENSOR_DS18B20, "031683a0a4ff")
activate_temp = sensor.get_temperature()
temp = str(activate_temp)
return temp
#Read Temp Frequency
def read():
threading.Timer(0.5, read).start()
get_temp()
time.sleep(1)
try:
while True:
read()
get_temp()
print get_temp()
except KeyboardInterrupt:
print("Program Ended By User")
def ph_main():
激活PH探针和其他变量的大量代码,但变量ph_output以字符串形式返回,ph_output
try:
while True:
global ph_output
dev.send_cmd("R")
lines = dev.read_lines()
for i in range(len(lines)):
print lines[i]
if lines[i][0] != '*':
print lines[i]
ph_output = str(lines[i])
return ph_output
time.sleep(delaytime)
try:
while True:
ph_main()
except KeyboardInterrupt:
print("Continuous polling stopped")
所以,第一个问题,如何将全局变量传递回显示脚本?二,如何指示显示脚本刷新'变量?
我目前得到的错误是:
Traceback (most recent call last):
File "script_display.py", line 8, in <module>
print PH.ph_main(ph_output)
NameError: name 'ph_output' is not defined
期待任何意见和感谢您的时间+帮助!