Raspberry PiでSQLiteとGoogle Chart

グラフはカッコよくなければならぬ!!Raspberry Piらしさを出さなければならぬ!!

前回「Raspberry PiのCPU温度を記録」では,CPUの温度情報をテキストデータに書き出しグラフ化しました.

bab67798d9501e5efdb3798ba40d6e27

ログはタグで区分けしたベターっとしたファイル.

80b74d12cba0f891fd941bfef2d225db

そう,これではいけないのです!このくらいのことは,ほかのマイコンでもできる!
Raspberry Piでなければできないことをやってみようと思い,今回はログをデータベースシステムで管理し,そこからデータを抽出してGoogle Chartでグラフを描いてみようというお話.

データベースといえば,MySQLが有名ですが,重そうだし難しそうだし面倒そうだしということで,SQLiteを採用しました.

SQLite(エスキューライト[2][3]、エスキューエライト[4][5])は、パブリックドメインの軽量な関係データベース管理システム (RDBMS) である。【SQLite – Wikipedia

下調べをしていると,SQLiteとGoogle Chartとでグラフを描く,という記事がない.どれもMySQLとグラフ表示プラグインとかテキストデータとGoogle Chartとか.
体系的にプログラムを勉強したわけではないので,ネットで拾った情報とソースコードを継ぎ接ぎして自分のやりたいことを実現させている私にとって,参考情報がないのはとっても痛い.

ほかの組み合わせでやろうかと迷っていた時に見つけたのがコチラ.

oh…English…
でもまぁ,ざーっと眺めてみるとそんなに難しいEnglishでもなかったので,こちらを参考にさせていただくことにしました.負けた気がするので翻訳ソフトは使いません!

SQLite3をインストールして,データベースの扱い方を練習.ざっくり扱い方がわかったところで,monitor.pyをワタシのRaspberry Pi用に編集し,cronで1分毎にCPUの温度を取得してデータベースに放り込みます.

228c5773c041d922ef2f262e6c585b45

データの取得は順調.

次にブラウザでグラフを表示させるためのwebgui.pyを編集.データベースファイルの場所を書き換えるくらいで難なく動きました.

が,

SQLiteには日付型が存在せず,日付は文字列として記録されています.そのため,グラフの横軸がよろしくない.

ca4ee9887888de1472caeb0cd26c26e1

Google Chartは,日時を渡せば認識してくれるようなので,文字列を日付に変換して,format関数で形式を整えました.

81ff558d0f99f65c8bad91e1a1f866c8

横軸が時間軸になりました.
グラフの体裁は後々整えていきたいと思います.

参考にさせていただいたページ

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA