如何导入变量(传感器输入)&将它从一个python脚本更新到另一个?

时间:2017-07-26 12:03:04

标签: python raspberry-pi sensor temperature

我目前正在使用我的覆盆子pi在python中设置一些传感器。总蟒蛇新手在这里。

每个传感器都有自己的脚本来读取传感器,还有另一个脚本驱动LCD显示器并显示传感器脚本中导入的变量。

到目前为止,我已经使用了运行传感器并生成输出的工作脚本,但是,我似乎无法将变量(温度和pH值)导入到LCD显示脚本中。此外,一旦我导入变量,我如何指示LCD脚本“刷新"并获取更新的变量?

这是我到目前为止的精简版本,我省略了每个脚本的传感器和数据记录部分。为简单起见,script_display是LCD驱动程序,pH_script用于pH,temp_script用于温度。

这是脚本的简化版本:

script_display.py

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)

temp_script.py

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")

pH_script.py

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

期待任何意见和感谢您的时间+帮助!

0 个答案:

没有答案