LibreOffice でWebページ作成
Raspberry Pi で出来た装置群が収集したデータを、自動で集計してグラフにし、LAN内のHTTPサーバーから配信することにしました。
グラフを見るのは数人が日に何度か見る程度だと思われるため、HTTPサーバーは、これもまたRaspberry Pi で十分だろうと思います。
以前に紹介した Plotly Dash のようにインタラクティブである必要はなく、グラフを見て確認するだけですが、手軽に見れるようにLAN内のサーバーで配信します。
今後、少しづつ表示するグラフを増やす予定なので、インデックスページから分岐して複数のページを作ります。
ホームページビルダーとまでは行かなくても、GUIで無料のページ作成ツールを探して、Raspberry Pi にもインストールされているLibreOffice を使うことにしました。(タイトル画像はWindows版です。)
複数ページにグラフを表示するだけなので、機能的にも十分と思います。
画像を差し替えてグラフ更新
タイトルなど定型文字列と画像を配置したページを複数作り、互いにリンクして置きます。
定期的に集計をし直してグラフを更新しますが、HTMLにファイル名を記述した画像ファイルを上書きして更新します。
グラフ画像を作成するのはMatplotlib の画像ファイル出力で行けそうです。
文字列の一部もフレームにして差し替えることも出来そうですが、今は良く解らないので画像だけ差し替えて用が足りるようにしたいと思います。
サーバーはPythonだけで実現
LAN内限定で、利用者も限られる用途なのでApache とか無しで、Raspberry Pi の LX Terminal から次を実行するだけです。
python3 -m http.server 8000
index.html 他必要なファイルを準備したフォルダーのディレクトリから実行します。
閲覧するクライアント側は任意のWebブラウザから以下で繋がります。
http://192.168.xx.yy:8000/
xx.yy はサーバーのローカルIPによる。
目先やりたいことを意識しながら幾つか試してみた結果、とりあえず行けると思います。
まずは検査結果の分布を可視化
目先は検査装置の測定値(NO/GOではなく数値)の分布をグラフ(ヒストグラム)にする予定です。Excel でグラフにしようとすると、それなりに手間が掛かります。
普段は異常無しなので、ついつい後回しにして異常に気付くのが遅れたりします。NG続出の前に分布異常をみつけて対応するのが目的ですから「自動で更新されるグラフを見るだけ」と言うのが魅力です。
分布異常の閾値を決めてslack に通知なんて言うのも面白そうです。
急ぎの仕事ではありませんが、楽しみです。
出来ればサポート頂けると、嬉しいです。 新しい基板や造形品を作る資金等に使いたいと思います。