Я строю потолочную консоль для своей машины.Я хочу отобразить температуру снаружи, используя средние показания двух датчиков температуры.В настоящее время я использую библиотеку Тимо и могу получать информацию о температуре от каждого датчика.Когда я пытаюсь усреднить или преобразовать временные значения, при запуске кода ничего не происходит, кроме мигающего курсора.Я новичок в Python.
Я попытался изменить мои определения, порядок, в котором вводятся операторы, я изменил расположение операторов изнутри операторов if в снаружи.Надеюсь, это то, что я пропустил.Я заранее прошу прощения, если мой вопрос не отформатирован правильно.
import os
import time
import serial
from w1thermsensor import W1ThermSensor
os.system('modprobe w1-gpio')
os.system('modprobe w1-therm')
#---------------------------------------------------------
# Define the function to convert Celsius to Fahrenheit
#---------------------------------------------------------
def CelsiusToFahrenheit(TempCelsius):
TempFahrenheit = ((TempCelsius*9)/5) + 32
return TempFahrenheit
#----------------------------------------------------------
# Define function to Average Outside Temperature in Fahrenheit
#----------------------------------------------------------
def OutsideTempAvg(A, B):
OutsideTemp = (A + B)/2
return OutsideTemp
#----------------------------------------------------------
# Set Pointer to W1ThermSensor object
#----------------------------------------------------------
TmpSensor = W1ThermSensor()
#----------------------------------------------------------
# Define Sensors by ID
#----------------------------------------------------------
Fsensor = '03079779c963'
Rsensor = '03159779fe5a'
Isensor = '030797799182'
#----------------------------------------------------------
# Loop Through Available Sensors Identify and Assign
#----------------------------------------------------------
while True:
for TmpSensor in W1ThermSensor.get_available_sensors():
CurSensorID = TmpSensor.id
CurTempC = round(float(TmpSensor.get_temperature()),1)
if CurSensorID == Fsensor:
FtempC = CurTempC
elif CurSensorID == Rsensor:
RtempC = CurTempC
elif CurSensorID == Isensor:
ItempC = CurTempC
else:
print("Unexpected Sensor = " + CurSensorID)
print("Temp = " + str(FtempC))
print("Temp = " + str(RtempC))
print("Temp = " + str(ItempC))
#----------------------------------------------------------------
# Average and Convert Celsius to Fahrenheit
#----------------------------------------------------------------
OtempC = round(float(OutsideTempAvg(FtempC, RtempC)))
OtempF = round(float(CelsiusToFahrenheit(OtempC)))
FtempF = round(float(CelsiusToFahrenheit(FtempC)))
RtempF = round(float(CelsiusToFahrenheit(RtempC)))
ItempF = round(float(CelsiusToFahrenheit(ItempC)))
#-----------------------------------------------------------------
# Print for testing - Final will be sent to HMI display over Serial
#------------------------------------------------------------------
print("Outside Temperature = " + str(OtempF) + " Fahrenheit")
print("Inside Temperature = " + str(ItempF) + " Fahrenheit")
#---------------------------------------------------------------------
# Reset time - Final will be 5 minutes
#----------------------------------------------------------------------
time.sleep(5.0)
Я хочу иметь возможность печатать показания, как на C, так и на F, с каждого датчика и среднее значение по двум из них (Fsensorи Rsensor).В конце концов я отправлю результаты из последовательного интерфейса Pi на ЖК-дисплей HMI.