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

変数hourで対象となる時を設定します。
①で変数hourに初期値18を代入します。(テストデータが18時台だったのでこのようにしています。本番稼働時には始業時(8時)を入れると思います。)
②で画像ファイル名の最後に変数hourの値を結合して、変数filenameに代入します。これにより対象とするファイルを指定します。
③Webブラウザ上のボタンを押されたときの処理です。
④押されたボタンに設定されていた「時」が、request.form["hour"]に入ってきますので、それを変数hourに代入します。これが②の処理で使われ、表示するグラフ画像が指定されます。
(最終的には、override_url_for()で、index2.html内で指定している画像ファイル名をこれに置き換えます。)
36行目のrender_template("index2.html")で指定したグラフ画像を含むWebページがWebブラウザに表示されます。

上記のPythonプログラムで使用されるHTMLファイル(index2.html)です。
function changeImage(hour)で画面上のボタンが押されたときの処理を定義しています。
⑤でボタンを押したときに渡される引数hourの内容をパラメータ”hour”にセットします。
これで⑥で画面上に設置されるボタンを押すと、設定された「時」(18か19)がFlaskに渡され処理されます。

テストデータに19時台のデータを追加しました。
ボタンを押したときに対象となる時台のグラフ画像がないとエラーになります。

cronが稼働していれば1分後くらいに19時台のグラム画像ファイルcount_cart_19.pngが作成されます。(cronが稼働していない場合、実行してください。)

Webブラウザでアクセスするとボタン付きの画面が表示されます。(最初は18時台のグラフになっています。)
[19]のボタンをクリックすると、グラフが19時台のものに変わります。

初期画面(18時台のグラフ)
[19]ボタンを押した(19時台のグラフ)

PythonプログラムのShellで、printで表示された内容が確認できる。


次は、本番稼働に向けて運用方法やWebページの構成を検討します。

1件のコメント

コメントする