Ich versuche, die Temperatur von einem Temperatursensor auf einem 7-Segment-Display anzuzeigen. Beide sind mit meinem Raspberry Pi verbunden. Ich muss die aktuelle Temperatur in einer Variablen speichern, und natürlich ändert sich das ständig.Konstante Aktualisierung globale Variable nur Drucken ersten Wert
Mein Problem ist, dass die Variable nur druckt, was die Temperatur an dem Punkt ist, an dem das Skript ausgeführt wird. Es ändert sich nicht, wenn sich die Temperatur ändert.
import os
import time
os.system('modprobe wl-gpio')
os.system('modprobe wl-therm')
temp_sensor = '/sys/bus/w1/devices/28-0316201553ff/w1_slave'
temp_f = 0
def temp_raw():
f = open(temp_sensor, 'r')
lines = f.readlines()
f.close()
return lines
def read_temp():
lines = temp_raw()
while lines[0].strip()[-3:] != 'YES':
time.sleep(0.2)
lines = temp_raw()
temp_output = lines[1].find('t=')
if temp_output != -1:
temp_string = lines[1].strip()[temp_output + 2:]
temp_c = float(temp_string)/1000.0
temp_f = temp_c * 9.0 // 5.0 + 32.0
global temp_f
temp_f = int(temp_f)
read_temp()
while True:
print(temp_f)
time.sleep(1)
# Below is what I will eventually need to run in order to display the digits on my 7-segment display.
'''
while True:
print(map(int,str(temp_f)))
time.sleep(1)
'''