Umbrelを動かしているRaspberry Pi のCPU温度をブラウザから簡単に確認する

Umbrelを動かしているRaspberry Pi のCPU温度をブラウザから簡単に確認する

ラズパイでUmbrelを動かしていると、CPU温度が気になりますよね! 特に自分はファン無しで運用しているので非常に気になります。1分おきにでも確認したいぐらいです。

sshでログインして下のコマンドを打ち込めば確認出来るのですが、それではあまりにも面倒なので、ブラウザから簡単に確認出来るようにしたいと思います。

vcgencmd measure_temp

一応、Umbrelダッシュボードで「Settings」→ 「Troubleshoot」→「START」と選択すればログ情報の一部としてCPU温度が表示されてはいるのですが、これもちょっと確認するのが面倒です。

ここでは自分でPythonを使ってCPU温度表示専用のWebページを作成する方法を紹介します。

まず、sshでログイン後、任意のディレクトリに下のファイルを作成します。
ファイル名は「app.py」としておきます。

from flask import *
import subprocess

app = Flask(__name__)

@app.route('/')
def main():
    out = subprocess.Popen(['vcgencmd', 'measure_temp'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    stdout,stderr = out.communicate()
    temperature = stdout.decode()

    refresh = request.args.get('refresh', '10')
    html = "<html><head>{}{}{}</head><body><h1>{}</h1></body></html>"
    title = "<title>CPU Temperature</title>"
    meta1 = "<meta name='viewport' content='width=device-width, initial-scale=1'>"
    meta2 = "<meta http-equiv='refresh' content='{}'>".format(refresh)
    return html.format(title, meta1, meta2, temperature)

if __name__ == "__main__":
    app.run()

次に下のコマンドを実行しFlaskをインストールします。

pip3 install flask

その後、下記を実行すれば簡易Webサーバーが5000番ポートで立ち上がります。

python3 app.py

ブラウザから http://umbrel.local:5000 を開くとCPU温度が表示されるはずです。

デフォルトで自動的に10秒おきにリフレッシュされるようになっていますが、URLの末尾に「?refresh=3」などとすれば指定の秒数でリフレッシュするようになります。

さて、ここまで動けば次にラズパイの再起動後も自動的にWebサーバーが立ち上がるようにしたいですよね。

それにはもうひと手間かかりますが、そんなに大変ではありません。下の通りapp.pyと同じディレクトリ内に2つのファイルを作成しましょう。

(start.sh)

#!/bin/sh
cd `dirname $0`
export FLASK_APP=app.py
export FLASK_ENV=production
flask run -h 0.0.0.0 -p 8082

ここではポート番号として8082を使うように指定しています。

Umbrel App Storeからアプリをインストールしている場合は、既存のアプリとポート番号がかぶらないように調整してください。

(viewtemp.service)

[Unit]
Description=View CPU Temperature

[Service]
WorkingDirectory=/home/umbrel/myapp
ExecStart=/home/umbrel/myapp/start.sh
User=umbrel

[Install]
WantedBy=default.target

上は /home/umbrel/myapp/ というディレクトリにファイルを作成した場合の例です。

start.shおよびviewtemp.serviceが作成出来たら、下のコマンドを実行して再起動時に自動起動されるように設定します。

chmod +x start.sh
sudo cp viewtemp.service /etc/systemd/system/
sudo chmod 664 /etc/systemd/system/viewtemp.service 
sudo systemctl daemon-reload
sudo systemctl enable viewtemp
sudo systemctl start viewtemp

以上です!

この方法を使えばブラウザからPython経由でさまざまなコマンドを実行することが出来るので、いろいろと応用が効きそうですね。

Remaining : 0 characters / 0 images
100

Sign up / Continue after login

Related stories

Writer

Share

Popular stories

UmbrelをWiFi接続で運用する方法

337

UmbrelのダッシュボードでBTCの入金アドレスが表示されない現象への対処方法メモ

184

Umbrelのダッシュボードに表示される名前を変更する方法

104