現場で実際に使用するために運用方法を考え、以下のように修正します。
【運用方法】
- データ収集時間を8時から18時までとし、その日の集計グラフを1時間毎に確認できるようにする。
- その日のデータ収集時間が終了(18時)した時点でCSVファイルを別のフォルダに移動し、ファイル名をYYYYMMDD形式に変更する。
【修正点】
- Webブラウザで表示するページにボタンを追加し、[8]〜[17]時台の10個とする。(HTMLファイル)
- cronによる自動実行を8時から17時台までとするように設定を変更する。
- Shellスクリプトを作成し、ファイルの移動・名前の変更を行うようにする。このスクリプトを自動実行させるようにcronに設定を追加する。
【実装】
Flaskで使用するindex2.html(HTMLファイル)を修正し、ボタンを10個にする。
Webブラウザでアクセスするとボタンが10個表示され、それをクリックすると対応する時台のグラフが表示される。(8〜17時台)
グラフの時台が分かるようにタイトルに「YYYY/MM/DD HH」形式で表示するようにした。
センサー値を集計し、グラフ化するプログラムを、8時から17時台で1分間隔で自動実行するように、cronの設定を変更する。
*/1□8-1□*□*□*□python3□/home/pi/work/raspi-chart-3.py
CSVファイルを名前を変更して移動するシェルスクリプトを作成し、18時5分に自動実行するようにcronに設定を追加する。
シェルスクリプトファイル bkup-csv.sh
#!/bin/sh
cd /home/pi/work
mv□-n□./data/btncount.csv□./csv/btncount-$(date□+%Y%m%d).csv
※ -n 移動先に同じファイル名がある場合、移動しない。
※ $(date +%Y%m%d) 日付を形式YYYYMMDD形式で置き換える。
実行権限の付与
sudo chmod□-x□/home/pi/work/bkup-csv.sh
cronに追加(18時5分に実行する)
5□18□*□*□*□sh□/home/pi/work/bkup-csv.sh
データ収集終了時の状態
CSVファイル「btncount.csv」が最終更新時間18:00になっている。
シェルスクリプトbkup-csv.shが18:05に自動実行された後の状態
[csv]フォルダにcsvファイルが移動され、名前に日付が追加されている。
※ [data]フォルダにあったcsvファイルは消えている。
これで翌日はセンサー値データが何もない状態で開始することができます。
また、必要であればバックアップされたCSVファイルをエクセルなどに読み込んでしようすることができます。
とりあえず完成しました! 今後は運用しながら修正・機能追加していきます。
1件のコメント