【IoT活用編】センサー値活用(9)

現場で実際に使用するために運用方法を考え、以下のように修正します。

【運用方法】

  1. データ収集時間を8時から18時までとし、その日の集計グラフを1時間毎に確認できるようにする。
  2. その日のデータ収集時間が終了(18時)した時点でCSVファイルを別のフォルダに移動し、ファイル名をYYYYMMDD形式に変更する。

【修正点】

  1. Webブラウザで表示するページにボタンを追加し、[8]〜[17]時台の10個とする。(HTMLファイル)
  2. cronによる自動実行を8時から17時台までとするように設定を変更する。
  3. Shellスクリプトを作成し、ファイルの移動・名前の変更を行うようにする。このスクリプトを自動実行させるようにcronに設定を追加する。

【実装】

Flaskで使用するindex2.html(HTMLファイル)を修正し、ボタンを10個にする。

Webブラウザでアクセスするとボタンが10個表示され、それをクリックすると対応する時台のグラフが表示される。(8〜17時台)

グラフの時台が分かるようにタイトルに「YYYY/MM/DD HH」形式で表示するようにした。

最初のアクセス時、8時台を表示する
ボタンをクリックすると、対応する時台のグラフが表示される

センサー値を集計し、グラフ化するプログラムを、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件のコメント

コメントする