デジタル百葉箱製作覚え書き

ラズベリーパイで教材づくり IOT百葉箱

気温湿度気圧データをまとめてグラフ化

昨日気温湿度気圧データを読み取るところまでできました。


今日はそれらのデータをファイルとしてまとめ、グラフ化します。
参考にしパクったのは、昨日も紹介したこの記事です。

では、さっそくスターティン。(りんごちゃんふう)


ラズパイで、いつものLXTerminalを起動します。
ラズパイはウィンドウズみたいにマウスを使ってGUIで操作できるんですけど、プログラミング的なことをしようとするとどうしてもこれが必要になります。
これも勉強と思ってやってます。


まず、現在のディレクトリを確認しましょう。cd(スペース)~(ニョロ)です。
次にlsでディレクトリに何があるか確認します。

$ cd ~

$ ls

BME280フォルダとか、picフォルダとかがあると正しいと思います。/home/pi/のディレクトリですね。
で、からあげ氏の作ったプログラムを入れます。

$ git clone https://github.com/karaage0703/denpa-gardening

もう一度lsすると、denpa-gardeningのフォルダができているはずです。
このフォルダの中にget_sensor_data.pyというパイソンというプログラミング言語のプログラムが入ってます。これがデータを読み込むプログラムです。
これを定時に実行するようcrontabに書くのですが、私はこのやり方にとても感心しました。パイプを使ってデータを追記していくんです。なんとシンプルで分かりやすい!
プログラムは美しいとさえ思いました。
やり方です。

$ crontab -e

で、最後の行に追記します。

*/10 * * * * python ~/denpa-gardening/get_sensor_data.py >> ~/denpa-gardening/sensor_data/sensor_data.csv

文字が横に長くて画面に表示しきれなくて細かい字になってしまってごめんなさい。
これ以下もおんなじ感じですいません。
小さい文字が読めない!のハズキ人はctrlを押しながら+キーを何度か押すと拡大されます。ctrl+0で元の大きさに戻ります。私よくやります。


保存はctrl+o、終了はctrl+x、crontabを抜けると
installing new crontab
と表示されます。
これで10分おきに気温湿度気圧データをcsvファイルとして記録してくれます。


...のはずでした。エラー発生。get_sensor_data.pyの8行目、i2cアドレスが0x76になってました。0x77に書き換えますテキストエディタで。$ nano get_sensor_data.py ですね。


これをやったら、30分後くらいにこのcsvデータを開いてみてください。10分おきにデータが取れてれば成功です。ダブルクリックしたらlibre officeが起動して、見ることができました。


次、グラフ化。

$ sudo apt-get update

$ sudo apt-get install gnuplot

gnuplotというソフトを入れます。「グニュープロット」かと思ったら、「ニュープロット」らしいです。
plot(グラフ化)ソフトはほかにもいっぱいあるので、知見のある方はどうぞお好みで。


で、さっきgit cloneした中にグラフ化シェルスクリプトも入ってるので、これもcrontabしておきます。crontab -eで、最終行に追記します。当たり前ですが、データを追記するスクリプトの後にないと最新のグラフは生成されません。

*/10 * * * * ~/denpa-gardening/make-graph.sh ~/denpa-gardening/sensor_data/sensor_data.csv

これも時刻が10分ごとに作動するので、その後のタイミングで見ると、気温、湿度、気圧、気温湿度の4つのpngファイルができているはずです。湿度はこんなグラフでした。

いい感じじゃないですか。


次。小学校4,5年の理科では一日ごとの気温の変化がわかればいいので、一日ごとに日付を付けてデータをまとめます。このスクリプトまでも入ってます。
からあげ氏、サンタさんみたい。
これもcrontabに追記します。

55 23 * * * ~/denpa-gardening/data-dump.sh 

毎日23時55分になったらdata-dump.shを実行するはずです。ファイル名に日付を付加して保存します。つまり、0時0分~23時50分までの10分間隔のデータを一つのファイルにまとめる、ということです。


ふと不安定なカメラは動いてるか?と思い見てみると、1時間おきの撮影がさっき失敗している。なんかやってると失敗するなあ。
crontabで、撮影時間を毎時01分に設定しなおして再起動する。毎時00分にラズパイが忙しくならないように、ラズパイの働き方改革です。


読者の皆様にも働き方改革。crontab -e で、これをコピペすれば簡単かも。

*/10 * * * * python ~/denpa-gardening/get_sensor_data.py >> ~/denpa-gardening/sensor_data/sensor_data.csv

*/10 * * * * ~/denpa-gardening/make-graph.sh ~/denpa-gardening/sensor_data/sensor_data.csv

55 23 * * * ~/denpa-gardening/data-dump.sh

ここまでやったら、きちんと動いているか、明日確認します。