前回の記事で、ラズパイのCPU温度を取得できることが分かったので、
これをいろいろ計測モニターに表示させるところまでやっていきたいと思います。
PythonでLinuxコマンドを実行し、結果を得るには以下の様にプログラミングします。
import subprocess
args = ['vcgencmd', 'measure_temp']
res = ""
try:
res = subprocess.run(args, stdout=subprocess.PIPE)
except:
print("Error.")
print(res.stdout)
参考記事
https://qiita.com/tdrk/items/9b23ad6a58ac4032bb3b
これを実行すると出力はこうなります。
これを色々と加工して、Windows側に渡すパラメータにします。
実際に組み込んだコード。
def getCPUTemp():
args = ['vcgencmd', 'measure_temp']
res = ""
try:
res = subprocess.run(args, stdout=subprocess.PIPE)
except:
return "Error."
return res.stdout.decode().split('=')[1].strip().replace('\'C', '℃')
data = {
'datetime' : datetime.datetime.now().strftime('%Y:%m:%d %H:%M:%S'),
'temperature': Temperature,
'humidity': Humidity,
'cputemp' : getCPUTemp()
}
えっと、何をしているかというと、
まずは、res.stdoutの値はバイト文字なので、これをdecode()で文字列に変換します。
その後、split(‘=’)で=で文字列を分割し、後方の文字列([1])を取得します。
しかし、その文字列の中には不要な改行文字(\n)が入っているので、strip()で削除。
そして、「’C」と表示させているところをreplace()で「℃」に置き換えています。
これをJsonのパラメータに追加します。
ここまで出来ればWindows側は表示するだけなので、Windows側コードは割愛。
「【ラズパイ】【いろいろ計測モニター】CPU温度をWindows側で表示する」への1件のフィードバック