ds18b20 temp センサーを読み取る Python の関数があります。センサーは、読み取り時間の約 5% で誤った値 (-0.062) を返します。これは問題ではありませんが、グラフでは見栄えが悪いため、値をログに記録したくありません。
if ステートメントの値を「キャッチ」して「#error」に置き換えることができません。以下のコードは問題なく動作しますが、if ステートメントに問題があり、動作していないようです。else の下ですべてが実行されるだけです。
1000 から 1500 までのすべての値 (1000 で割る前の現在の温度の読み取り値) を「キャッチ」して、任意の温度で機能するかどうかを確認しましたが、機能しませんでした。
私のifステートメントが機能しない理由を誰かが知っていますか?
def readtwo():
tfile = open("/sys/bus/w1/devices/28-0000040de8fc/w1_slave")
text = tfile.read()
tfile.close()
secondline = text.split("\n")[1]
temperaturedata = secondline.split(" ")[9]
temperature = float(temperaturedata[2:])
temperature = temperature / 1000
if temperature == -0.062:
return("#error")
else:
return(temperature)