変数hourで対象となる時を設定します。
①で変数hourに初期値18を代入します。(テストデータが18時台だったのでこのようにしています。本番稼働時には始業時(8時)を入れると思います。)
②で画像ファイル名の最後に変数hourの値を結合して、変数filenameに代入します。これにより対象とするファイルを指定します。
③Webブラウザ上のボタンを押されたときの処理です。
④押されたボタンに設定されていた「時」が、request.form["hour"]に入ってきますので、それを変数hourに代入します。これが②の処理で使われ、表示するグラフ画像が指定されます。
(最終的には、override_url_for()で、index2.html内で指定している画像ファイル名をこれに置き換えます。)
36行目のrender_template("index2.html")で指定したグラフ画像を含むWebページがWebブラウザに表示されます。
![](https://dmspace.tsuchida.ne.jp/wp-content/uploads/2022/09/raspberrypi_local__raspberrypi__-_VNC_Viewer-19-1024x755.png)
![](https://dmspace.tsuchida.ne.jp/wp-content/uploads/2022/09/raspberrypi_local__raspberrypi__-_VNC_Viewer_と_2022IoT活用編センサー値活用1-1024x518.png)
上記のPythonプログラムで使用されるHTMLファイル(index2.html)です。
function changeImage(hour)で画面上のボタンが押されたときの処理を定義しています。
⑤でボタンを押したときに渡される引数hourの内容をパラメータ”hour”にセットします。
これで⑥で画面上に設置されるボタンを押すと、設定された「時」(18か19)がFlaskに渡され処理されます。
![](https://dmspace.tsuchida.ne.jp/wp-content/uploads/2022/09/raspberrypi_local__raspberrypi__-_VNC_Viewer-20-1024x868.png)
テストデータに19時台のデータを追加しました。
ボタンを押したときに対象となる時台のグラフ画像がないとエラーになります。
![](https://dmspace.tsuchida.ne.jp/wp-content/uploads/2022/09/raspberrypi_local__raspberrypi__-_VNC_Viewer_と_VNC_Viewer.png)
cronが稼働していれば1分後くらいに19時台のグラム画像ファイルcount_cart_19.pngが作成されます。(cronが稼働していない場合、実行してください。)
![](https://dmspace.tsuchida.ne.jp/wp-content/uploads/2022/09/raspberrypi_local__raspberrypi__-_VNC_Viewer-21-1024x318.png)
Webブラウザでアクセスするとボタン付きの画面が表示されます。(最初は18時台のグラフになっています。)
[19]のボタンをクリックすると、グラフが19時台のものに変わります。
![](https://dmspace.tsuchida.ne.jp/wp-content/uploads/2022/09/Cursor_と_192_168_11_31_5000_と_投稿を編集_【IoT活用編】センサー値活用(3)_‹_dMSpace_—_WordPress-1024x987.png)
![](https://dmspace.tsuchida.ne.jp/wp-content/uploads/2022/09/Cursor_と_192_168_11_31_5000_change_と_投稿を編集_【IoT活用編】センサー値活用(3)_‹_dMSpace_—_WordPress-981x1024.png)
PythonプログラムのShellで、printで表示された内容が確認できる。
![](https://dmspace.tsuchida.ne.jp/wp-content/uploads/2022/09/Cursor_と_raspberrypi_local__raspberrypi__-_VNC_Viewer-3-1024x586.png)
次は、本番稼働に向けて運用方法やWebページの構成を検討します。
1件のコメント