2015年9月22日火曜日

RaspberryPiでラズベリー栽培 自動でグラフを作成(gnuplot)

CSVファイルをエクセルで開いてグラフを作るのが面倒なので、RaspberryPi側でgnuplotを使って自動的にグラフを作るようにしてみた。

gnuplotの使い方メモ

公式→http://www.gnuplot.info/
gnuplotはコマンドラインで操作するグラフ作成ユーティリティーです。

インストール
> apt-get install gnuplot

apt-getでインストールされるのは、Version4.6のようです。 最新版はVersion5.0の模様。(2015年9月22日現在)

基本的な使い方
> gnuplot
gnuplotを起動して、コマンドラインで命令していくのが基本的な使い方らしいのですが、スクリプトを読み込んでバッチ処理できるので、そちらを利用します。

スクリプトを実行する方法。
スクリプトファイルを用意します。
plotTemp.gs

set terminal png
set datafile separator ","
set xdata time #x軸を時間フォーマットにする
set timefmt"%H:%M" #入力データのフォーマット
set format x "%H:%M" #出力データのフォーマット
set xrange["00:00":"23:59"] #データの範囲
set yrange[00:60] #温度の範囲設定 0℃から60℃

set xl "time" #x軸ラベル
set yl "temp[c]" #y軸ラベル

set grid #グリッド表示

plot "senslog2015-09-22.txt" using 1:2 with line title "CPU" #cpu温度を表示
replot "senslog2015-09-22.txt" using 1:3 with line title "Temp" #気温を表示
set out "tempgraph.png"
replot

このスクリプトでは、完成したグラフをpngでファイルに書き出しますが、
set terminal png
set out "tempgraph.png"
あたりを弄れば、GUIで見ることもできると思います。

コマンドラインから実行
> gnuplot -e "load \"plotsample.gs\""

これでgnuplotのスクリプトを実行するのですが、途中でいっぱいゴミが出ます。気にしなくてもいいです。

出来たファイルを確認する
tempgraph.pngが生成されていますが、今はSSHで接続しているため見れません。
何等かの方法でWindows側にファイルをダウンロードします。
WinSCPとか、SAMBAとかを使うと良いでしょう。
xrdpデーモンを起動して、リモートデスクトップ接続しても良いかもしれません。
今回はRaspberryPiにあまり負荷をかけたくないこともあり、WinSCPでダウンロードして読み込んでみました。(最初の図)

(注)現時点でApache2、ty-rss、BME280ロギングスクリプトなどが起動していますが、xrdpでリモート接続しても、RaspberryPi2では割と余裕で表示できます。今回は試していないけどRaspberryPiModelBでは、xrdpリモート接続だけでも重かったのでストレスが溜まると思います。

あとはApacheを使ってWebページからブラウザで見れるようにすれば、いちいちコマンドラインとかを弄らなくても、タブレットとかからでもグラフが見れる筈ですが・・・

グラフをWebページに表示する方法が他にあるので、そちらを試してみたいと思います。
(決してgnuplotの表示がダサイとかそういうのではない)

0 件のコメント:

コメントを投稿