本文へスキップ
からだにいいもの

Rのトピックスを中心に『まだ、まだ、知らない、役に立つ情報?』を発信します。

3.5インチIPSディスプレイでパソコン情報をモニタリング!!「turing-smart-screen-python」の設定と新規Themeの作成方法

「3.5インチIPSディスプレイ」は、パソコンのCPUやメモリ、GPUなどの使用状況をリアルタイムに表示できる小型ガジェットです。デスクの上に置いておくだけで、タスクマネージャーをいちいち開かなくてもパソコンの状態を一目で確認できるようになります。

このガジェットは付属のオリジナルソフトウェアでも動作しますが、配布元がGoogleドライブであることが多く、作成者の情報もはっきりしないため、セキュリティ面で少し不安が残ります。

そこで代わりの方法を調査したところ、Pythonを使ったオープンソースの「turing-smart-screen-python」であれば、同じディスプレイを安心して、しかも自分好みにカスタマイズしながら動作させられることがわかりました。

本記事では、Windows 11環境での導入手順と、オリジナルThemeの作成方法をあわせて紹介します。Theme作成には少し手間がかかりますが、その分だけ自分だけのモニタリング画面に仕上げられるのが魅力です。

【ワンポイント】既存のThemeでモニタリングできれば十分という方は、turing-smart-screen-pythonはWindows用インストーラーも用意されており、そちらを使えばPythonの導入なしに手軽に始められます。本記事は、オリジナルThemeを自作したい方向けに、これまで通りソースコードから導入する方法を解説します。

それでは、早速導入方法から見ていきましょう。

「turing-smart-screen-python」のURL

最新情報は下記より確認してください。

・turing-smart-screen-python

https://github.com/mathoudebine/turing-smart-screen-python

スポンサーリンク

検証に使用した3.5インチIPSディスプレイ

turing-smart-screen-pythonの公式サイトに対応機種の一覧が掲載されているので、購入前に確認しておくと安心です。5インチモデルは価格が上昇傾向にあるようですが、常時表示させる用途であれば3.5インチで十分だと個人的には感じています。

・検証に使用したディスプレイ

Amazonモバイルモニター 小型 コンピューター温度モニター 3.5インチ 多機能 IPS USBミニスクリーン ネットワーク速度エレクトロニクス¥5,300www.amazon.co.jpAmazonで見る

もしかすると興味が湧くかもしれないデバイスの紹介

必要ソフトウェアの準備

必要なソフトウェアを以下のリンクからダウンロードします。

【turing-smart-screen-pythonのダウンロード】

リンク先から「Source code (zip)」をダウンロードします。本記事の検証ではRelease 3.3.3を使用していますが、現在はテーマの追加や対応ディスプレイの拡大など多くの改良が加えられていますので、基本的には最新版をダウンロードすることをおすすめします。以降の手順では例として「turing-smart-screen-python-3.3.3」というフォルダ名で説明しますので、最新版を使う場合はご自身が導入したバージョン名に読み替えてください。

Amazonモバイルモニター 小型 コンピューター温度モニター 3.5インチ 多機能 IPS USBミニスクリーン ネットワーク速度エレクトロニクス¥5,300www.amazon.co.jpAmazonで見る

【Python 3.11.6のダウンロード】

turing-smart-screen-pythonが対応するPythonのバージョンには上限・下限があります。対応バージョン外のPythonを使うと、ライブラリの導入時にエラーが発生して先に進めません。正確な対応バージョンは公式リポジトリのREADMEで確認するのが確実ですが、本記事では動作実績のあるPython 3.11.6を使用します。

https://www.python.org/downloads

【M PLUS 1フォントのダウンロード】

作成するThemeで日本語を表示する場合は、あらかじめフォントを準備しておく必要があります。オープンソースで利用可能なM PLUS 1フォントがGoogle Fontsから無料でダウンロードできます。可読性も高く、モニター表示用途にもおすすめです。

https://fonts.google.com/specimen/M+PLUS+1

【favicon.pngの保存】

下記のからだにいいもの「favicon.png」ファイルを右クリックで保存します。

turing-smart-screen-pythonとPythonインストール時注意

【turing-smart-screen-python-3.3.3について】

turing-smart-screen-python-3.3.3の「Source code (zip)」を適切な場所へ解凍します。解凍後のフォルダの保存場所はCドライブの直下でも構いません。保存場所は必ずメモ帳などに記録しておきましょう。

解凍後、ファイルのプロパティでセキュリティを確認します。大抵は写真で赤枠で囲ったセキュリティのように「このファイルは他のコンピューターから取得したものです。・・・」と表示されています。

これは、インターネット経由でダウンロードしたファイルに付与される「ゾーン情報(マーク・オブ・ザ・ウェブ)」が原因です。これが残ったままだと、turing-smart-screen-pythonの構築時にエラーが発生することがあります。

解消方法は2つあります。

  • 簡単な方法:ダウンロードしたzipファイルを右クリックして「プロパティ」を開き、全般タブ下部の「許可する」にチェックを入れて「OK」をクリックしてから解凍する。
  • 確実な方法:一度解凍したフォルダをzipファイルに再圧縮し、あらためて解凍し直す。手間はかかりますが、フォルダ内のすべてのファイルからブロック情報を確実に取り除けます。

いずれかの方法でブロックを解除してから、次のPythonインストールに進んでください。

【Python 3.11.6のインストールについて】

Pythonのインストールで注意する点は、赤枠で囲った「パスの設定(Add python.exe to PATH)」にチェックを入れることだけです。インストールファイルを実行すると下記写真の画面がすぐに表示されます。

turing-smart-screen-pythonの導入

コマンドプロンプトを管理者として実行します。個人的には「スタート」を右クリックして「ファイル名を指定して実行」をクリック、「cmd」と入力後に「Shift+Ctrl+Enter」を同時押しして起動するのが簡単だと思います。

その他の方法としては、「すべてのアプリ」から「Windowsツール」をクリックし、表示されるフォルダから「コマンドプロンプト」を右クリックして「管理者として実行」で起動することもできます。

コマンドプロンプトで以下を順番に実行します。

1.【Pythonのインストール先を確認】

コマンドプロンプトに「where pythonw.exe」を入力して実行します。表示されたパスは後で使用するので、必ずメモ帳などにコピーして保存しておきます。

2.【turing-smart-screen-python-3.3.3の導入コマンド】

先ほど準備した「turing-smart-screen-python-3.3.3」のフォルダへ移動し、フォルダ内の「requirements.txt」から必要なPythonライブラリを導入します。以降のコマンドは環境によっては「python.exe」の部分を「python3」や「py -3」に変更する必要があるかもしれません。適宜、修正してください。

: 「turing-smart-screen-python-3.3.3」のフォルダへ移動
cd C:\turing-smart-screen-python-3.3.3
: 「requirements.txt」から必要なPythonライブラリを導入
python.exe -m pip install -r requirements.txt

3.【turing-smart-screen-pythonの動作を確認】

上記作業が完了したら、コマンドプロンプトで下記コマンドを実行します。

: Turing System Monitor configurationの起動
python.exe .\configure.py

下記の写真のように「Turing System Monitor configuration」が起動します。Themeの表示が異なりますが作業に問題はありません。

なお、例ではSmart screen modelとして「Turing Smart Screen」を選択しています。購入先によりモデルが異なりますので、動作しない場合はモデルを変更して試してみてください。モデルの選択が適切でないと、「Save and run」をクリックしてもコマンドプロンプトにCOM portエラーが表示され、動作しません。

「Turing System Monitor configuration」からはThemeの編集や表示設定を調整できます。「Edit theme」をクリックするとThemeの「config.yaml」が開き、リアルタイムにThemeを編集可能です。「Save and run」をクリックすると3.5インチIPSディスプレイにThemeが表示されます。

以上で「turing-smart-screen-python」の導入は完了です。

新規Themeの作成方法

Theme作成で必須なファイルは、表示設定を記述する「config.yaml」と「ベース画像」です。「ベース画像」は3.5インチモニタであれば「横表示:480×320」もしくは「縦表示:320×480」のサイズで用意します。例ではRの「aRtsy」パッケージを使用して「横表示:480×320」の画像を作成しました。下記がそのコマンドです。

# Rで解析:Rでアート「aRtsy」パッケージ:https://www.karada-good.net/analyticsr/r-644/
# パッケージのインストール
install.packages("aRtsy")
# パッケージの読み込み
library(aRtsy)
# 画像作成
set.seed(19800328)
canvas_collatz(colors = c("#deb7a0", "pink", "yellow", "#4b61ba", "white"),
               background = "black", n = 550,
               angle.even = 0.0079, angle.odd = 0.01459, side = FALSE) 

以下の手順を実行することで新規Themeを作成できます。また、記事冒頭写真のTheme「KARADA-GOOD」の「config.yaml」を記事最後に紹介していますので、記述の参考としてください。

【新規Themeの作成方法】

  1. 自身で作成するTheme名のフォルダをデスクトップなどに作成します。例えば「KARADA-GOOD」とします。
  2. 「turing-smart-screen-python-3.3.3」フォルダの「res\themes」にある「theme_example.yaml」を「KARADA-GOOD」フォルダにコピーし、「theme.yaml」に名前を変更します。
  3. 「theme.yaml」をメモ帳で開き、「display:」内の「DISPLAY_ORIENTATION: portrait」を「DISPLAY_ORIENTATION: landscape」に変更します。あわせて「static_images:」の「BACKGROUND:」を「WIDTH: 480, HEIGHT: 320」に変更します。
  4. ファイル名「background.png」でpng画像を作成し、「KARADA-GOOD」フォルダに保存します。サイズなどは先ほどの手順を参考にしてください。あわせて、ダウンロードした「favicon.png」もこのフォルダに保存します。
  5. 「KARADA-GOOD」フォルダを「turing-smart-screen-python-3.3.3」フォルダの「res\themes」に移動します。
  6. Theme「KARADA-GOOD」は一部で日本語を表示するため、「turing-smart-screen-python-3.3.3」フォルダの「res\fonts」に「MPLUS1」フォルダを作成し、準備した「MPLUS1-Bold.ttf」をコピーします(config.yamlのフォント指定パスと合わせるため、フォルダ名は必ず「MPLUS1」にしてください)。
  7. コマンドプロンプトを管理者として実行し、以下のコマンドを実行します。
: 「turing-smart-screen-python-3.3.3」のフォルダへ移動
cd C:\turing-smart-screen-python-3.3.3
: 「KARADA-GOOD」のThemeを「theme-editor」で編集する
python.exe theme-editor.py KARADA-GOOD

Windows起動時に自動でプログラムを開始する方法

いちいちコマンドプロンプトからモニターを起動するのは面倒なので、タスクスケジューラーで自動的にモニタリングを開始するように設定します。手順は多いですが、作業自体は簡単です。

  1. 「スタート」、「Windows管理ツール」から「タスクスケジューラ」を起動します。
  2. 上部メニューの「操作」から「基本タスクの作成」を選択します。
  3. 基本タスクの作成ウィザードのダイアログが表示されます。
  4. 名前は仮に「turing-smart-screen-python」として、次へをクリックします。名前は好きに設定してかまいません。
  5. トリガーは「コンピューターの起動時」を選択します。
  6. 操作は「ログオン時」を選択します。
  7. 「プログラム/スクリプト」には「turing-smart-screen-pythonの導入」の「where pythonw.exe」で確認したパスを入力します。
  8. 引数の追加(オプション)には「main.py」と入力します。
  9. 開始(オプション)には「Source code(zip)を解凍したフォルダの場所」を入力します。記事の例では「C:\turing-smart-screen-python-3.3.3\」です。必ず末尾に「\」を加えてください。
  10. 次へをクリックすると完了のダイアログが表示されます。
  11. 下部の「完了」をクリックしたときに、このタスクの【プロパティ】ダイアログを開くにチェックします。
  12. 完了をクリックします。
  13. プロパティが表示されるので「セキュリティオプション」内の「最上位の特権で実行する」にチェックを入れて「OK」をクリックします。

ここで管理者権限(最上位の特権)が必要になるのは、温度やファン回転数などのハードウェアセンサー情報を取得するためです。この権限を付与し忘れると、一部の項目が表示されないことがあるので注意してください。

なお、各種エラーは「turing-smart-screen-python-3.3.3」フォルダの「log.log」ファイルで確認できます。うまく表示されないときは、まずこのログを確認するのがおすすめです。

Theme「KARADA-GOOD」の「config.yaml」

実行環境によっては、すべての情報が表示されるとは限りません。例えば、インテルN100搭載のCHUWI LarkBox X 2023ではGPU Infometionは表示されません。

author: "KARADA-GOOD https://www.karada-good.net/"
display:
  DISPLAY_SIZE: 3.5"
  DISPLAY_ORIENTATION: landscape
static_images:
  BACKGROUND:
    PATH: background.png 
    Y: 0
    X: 0
    WIDTH: 480
    HEIGHT: 320
  KARADA_LOGO:
    PATH: favicon.png
    Y: 225
    X: 437
    WIDTH: 32
    HEIGHT: 32
static_text:
  TEXT_CPU:
   TEXT: CPU Infometion
   Y: 20
   X: 10
   FONT: roboto-mono\RobotoMono-Bold.ttf
   FONT_SIZE: 20
   FONT_COLOR: 168, 121, 99
   BACKGROUND_IMAGE: background.png
 
  TEXT_Memory:
   TEXT: Memory Infometion
   Y: 115
   X: 10
   FONT: roboto-mono\RobotoMono-Bold.ttf
   FONT_SIZE: 20
   FONT_COLOR: 75, 97, 186
   #BACKGROUND_COLOR: 255, 255, 255
   BACKGROUND_IMAGE: background.png
  TEXT_GPU:
   TEXT: GPU Infometion
   Y: 210
   X: 10
   FONT: roboto-mono\RobotoMono-Bold.ttf
   FONT_SIZE: 20
   FONT_COLOR: 210, 217, 114
   #BACKGROUND_COLOR: 255, 255, 255
   BACKGROUND_IMAGE: background.png
  TEXT_DISK:
   TEXT: DISK Infometion
   Y: 20
   X: 300
   FONT: roboto-mono\RobotoMono-Bold.ttf
   FONT_SIZE: 20
   FONT_COLOR: 214, 195, 225
   #BACKGROUND_COLOR: 255, 255, 255
   BACKGROUND_IMAGE: background.png
STATS:
  CPU:
    PERCENTAGE:
      INTERVAL: 1
      TEXT:
        SHOW: true
        SHOW_UNIT: true
        Y: 52.5
        X: 98
        FONT: roboto-mono\RobotoMono-Bold.ttf
        FONT_SIZE: 18
        FONT_COLOR: 168, 121, 99
        BACKGROUND_IMAGE: background.png
      GRAPH:
        SHOW: True
        Y: 40
        X: 12
        WIDTH: 155
        HEIGHT: 6
        MIN_VALUE: 0
        MAX_VALUE: 100
        BAR_COLOR: 168, 121, 99
        BAR_OUTLINE: True
        BACKGROUND_IMAGE: background.png
      RADIAL:
        SHOW: True
        Y: 82
        X: 42
        RADIUS: 30
        WIDTH: 10
        MIN_VALUE: 0
        MAX_VALUE: 100
        ANGLE_START: 120
        ANGLE_END: 60
        ANGLE_STEPS: 20
        ANGLE_SEP: 5
        CLOCKWISE: True
        BAR_COLOR: 168, 121, 99
        SHOW_TEXT: True
        SHOW_UNIT: True
        FONT: roboto-mono\RobotoMono-Bold.ttf
        FONT_SIZE: 13
        FONT_COLOR: 168, 121, 99
        BACKGROUND_IMAGE: background.png
    FREQUENCY:
      INTERVAL: 5
      TEXT:
        SHOW: True
        SHOW_UNIT: True
        Y: 73
        X: 87
        FONT: roboto-mono\RobotoMono-Bold.ttf
        FONT_SIZE: 18
        FONT_COLOR: 168, 121, 99
        BACKGROUND_IMAGE: background.png
    TEMPERATURE:
      INTERVAL: 5
      TEXT:
        SHOW: True
        SHOW_UNIT: True
        Y: 95
        X: 90
        FONT: roboto-mono\RobotoMono-Bold.ttf
        FONT_SIZE: 18
        FONT_COLOR: 168, 121, 99
        #BACKGROUND_COLOR: 0, 0, 0
        BACKGROUND_IMAGE: background.png
  MEMORY:
    INTERVAL: 5
    VIRTUAL:
      GRAPH:
        SHOW: True
        Y: 135
        X: 11
        WIDTH: 155
        HEIGHT: 6
        MIN_VALUE: 0
        MAX_VALUE: 100
        BAR_COLOR: 75, 97, 186
        BAR_OUTLINE: True
        # BACKGROUND_COLOR: 0, 0, 0
        BACKGROUND_IMAGE: background.png
      RADIAL:
        SHOW: True
        Y: 177
        X: 42
        RADIUS: 30
        WIDTH: 8
        MIN_VALUE: 0
        MAX_VALUE: 100
        ANGLE_START: 120
        ANGLE_END: 70
        ANGLE_STEPS: 20
        ANGLE_SEP: 5
        CLOCKWISE: True
        BAR_COLOR: 75, 97, 186
        SHOW_TEXT: True
        SHOW_UNIT: True
        FONT: roboto-mono\RobotoMono-Bold.ttf
        FONT_SIZE: 13
        FONT_COLOR: 75, 97, 186
        BACKGROUND_IMAGE: background.png
      USED:
        SHOW: True
        SHOW_UNIT: True
        Y: 148
        X: 87
        FONT: roboto-mono\RobotoMono-Bold.ttf
        FONT_SIZE: 18
        FONT_COLOR: 75, 97, 186
        BACKGROUND_IMAGE: background.png
      FREE:
        SHOW: True
        SHOW_UNIT: True
        Y: 169
        X: 87
        FONT: roboto-mono\RobotoMono-Bold.ttf
        FONT_SIZE: 18
        FONT_COLOR: 75, 97, 186
        BACKGROUND_IMAGE: background.png
      PERCENT_TEXT:
        SHOW: True
        SHOW_UNIT: True
        Y: 190
        X: 87
        FONT: roboto-mono\RobotoMono-Bold.ttf
        FONT_SIZE: 18
        FONT_COLOR: 75, 97, 186
        BACKGROUND_IMAGE: background.png
  GPU:
    INTERVAL: 1
    PERCENTAGE:
      GRAPH:
        SHOW: true
        Y: 229
        X: 11
        WIDTH: 155
        HEIGHT: 6
        MIN_VALUE: 0
        MAX_VALUE: 100
        BAR_COLOR: 210, 217, 114
        BAR_OUTLINE: true
        # BACKGROUND_COLOR: 0, 0, 0
        BACKGROUND_IMAGE: background.png
      RADIAL:
        SHOW: true
        Y: 272
        X: 42
        RADIUS: 30
        WIDTH: 8
        MIN_VALUE: 0
        MAX_VALUE: 100
        ANGLE_START: 110
        ANGLE_END: 70
        ANGLE_STEPS: 20
        ANGLE_SEP: 5
        CLOCKWISE: True
        BAR_COLOR: 210, 217, 114
        SHOW_TEXT: True
        SHOW_UNIT: True
        FONT: roboto-mono\RobotoMono-Bold.ttf
        FONT_SIZE: 13
        FONT_COLOR: 210, 217, 114
        # BACKGROUND_COLOR: 0, 0, 0
        BACKGROUND_IMAGE: background.png
      TEXT:
        SHOW: true
        SHOW_UNIT: True
        Y: 243
        X: 87
        FONT: roboto-mono\RobotoMono-Bold.ttf
        FONT_SIZE: 18
        FONT_COLOR: 210, 217, 114
        # BACKGROUND_COLOR: 132, 154, 165
        BACKGROUND_IMAGE: background.png
    TEMPERATURE:
      TEXT:
        SHOW: true
        SHOW_UNIT: True
        Y: 264
        X: 95
        FONT: roboto-mono\RobotoMono-Bold.ttf
        FONT_SIZE: 18
        FONT_COLOR: 210, 217, 114
        # BACKGROUND_COLOR: 50, 50, 50
        BACKGROUND_IMAGE: background.png
    FPS:
      TEXT:
        SHOW: true
        SHOW_UNIT: true
        Y: 285
        X: 95
        FONT: roboto-mono\RobotoMono-Bold.ttf
        FONT_SIZE: 18
        FONT_COLOR: 210, 217, 114
        # BACKGROUND_COLOR: 50, 50, 50
        BACKGROUND_IMAGE: background.png
 
  DISK:
    INTERVAL: 10
    USED:
      GRAPH:
        SHOW: true
        Y: 40
        X: 300
        WIDTH: 160
        HEIGHT: 6
        MIN_VALUE: 0
        MAX_VALUE: 100
        BAR_COLOR: 214, 195, 225
        BAR_OUTLINE: true
        # BACKGROUND_COLOR: 0, 0, 0
        BACKGROUND_IMAGE: background.png
      RADIAL:
        SHOW: true
        Y: 80
        X: 328
        RADIUS: 30
        WIDTH: 8
        MIN_VALUE: 0
        MAX_VALUE: 100
        ANGLE_START: 110
        ANGLE_END: 70
        ANGLE_STEPS: 20
        ANGLE_SEP: 5
        CLOCKWISE: True
        BAR_COLOR: 214, 195, 225
        SHOW_TEXT: True
        SHOW_UNIT: True
        FONT: roboto-mono\RobotoMono-Bold.ttf
        FONT_SIZE: 13
        FONT_COLOR: 214, 195, 225
        # BACKGROUND_COLOR: 0, 0, 0
        BACKGROUND_IMAGE: background.png
      TEXT:
        SHOW: true
        SHOW_UNIT: True
        Y: 52.5
        X: 380
        FONT: roboto-mono\RobotoMono-Bold.ttf
        FONT_SIZE: 18
        FONT_COLOR: 214, 195, 225
        # BACKGROUND_COLOR: 132, 154, 165
        BACKGROUND_IMAGE: background.png
      PERCENT_TEXT:
        SHOW: true
        SHOW_UNIT: True
        Y: 73
        X: 380
        FONT: roboto-mono\RobotoMono-Bold.ttf
        FONT_SIZE: 18
        FONT_COLOR: 214, 195, 225
        # BACKGROUND_COLOR: 132, 154, 165
        BACKGROUND_IMAGE: background.png
    TOTAL:
      TEXT:
        SHOW: true
        SHOW_UNIT: True
        Y: 95
        X: 380
        FONT: roboto-mono\RobotoMono-Bold.ttf
        FONT_SIZE: 18
        FONT_COLOR: 214, 195, 225
        # BACKGROUND_COLOR: 132, 154, 165
        BACKGROUND_IMAGE: background.png
  DATE:
    INTERVAL: 1
    DAY:
      TEXT:
        FORMAT: full
        SHOW: true
        Y: 260
        X: 270
        FONT: MPLUS1\MPLUS1-Bold.ttf
        FONT_SIZE: 20
        FONT_COLOR: 200, 200, 200
        # BACKGROUND_COLOR: 50, 50, 50
        BACKGROUND_IMAGE: background.png
    HOUR:
      TEXT:
        FORMAT: medium
        SHOW: true
        Y: 285
        X: 365
        FONT: MPLUS1\MPLUS1-Bold.ttf
        FONT_SIZE: 25
        FONT_COLOR: 200, 200, 200
        # BACKGROUND_COLOR: 50, 50, 50
        BACKGROUND_IMAGE: background.png

少しでも、あなたのデスク環境が快適になりますように!!

スポンサーリンク

コメント(1)

価格および配送状況は変更される場合があります。購入時は商品ページをご確認ください。
当サイトに表示されている商品情報はAmazonから提供されたものであり、更新または削除される場合があります。
karada-goodはAmazonアソシエイトとして、適格販売により収入を得ています。