Python §79 :通信リアルタイムモニター 構想段階 | hitochan007のブログ(Pythonの勉強ブログ)

hitochan007のブログ(Pythonの勉強ブログ)

★Pythonの勉強記録を中心に●pomera DM200、●パソコン、●グルメ、●愛犬(トイプードル) などについてのブログです


ブログランキング参加しました。下のバナーをポチッとしていただけると助かります。↓

Python ブログランキングへ




■通信リアルタイムグラフモニター■
●1.通信リアルタイムグラフモニターの構想
●2.道具の準備



●1.通信リアルタイムグラフモニターの構想


今回、「通信リアルタイムグラフモニター」というツールを作成したいと考えています。

(1)通信: シリアル通信(RS-232C)で文字列データを取得して、データ要素に分離

(2)リアルタイムグラフ: matplotlabのアニメーション機能を使って、リアルタイムにグラフを描画更新する

(3)モニター : グラフだけではなく、tkinterを使って、Entryボックスにデータを表示し、その色を変化させて異常値などを即座に発見できるようにする。

以上の3つの機能を構築したいのですが、いろいろとライブラリーの助けを借りる必要があります。

この辺が、pythonの優れたところで、道具を最初から開発する必要がないのです。

つまり、先人達が苦労して作成してくれたライブラリーを流用することができます。

・通信は、pyserialというライブラリーがあります。https://pypi.python.org/pypi/pyserial

・グラフアニメーションは、これまでも使ってきたmatplotlabのanimation.FuncAnimationというメソッドを使えば良さそう

・通信で取得したデータを読み込む方法として、データベースライブラリーを使うことにしました。データベースは、sqlite3というライブラリーが標準で使えるみたいです。わざわざデータベースを使う理由は、通信で取得したデータを一旦、データベースに保存しておくと、複数の外部プログラムから好き勝手にアクセスできるからです。

例えば、今回のようにグラフを描画させながら、データモニター画面を表示させるなどが簡単にできると思ったからです。

実は、単純にテキストファイルやpickleファイルに書き込んで、そのファイルを他のプログラムから読み込むこともやってみましたが、さすがに排他制御なしでは難しく、読み込み処理が同時に衝突してうまくいきませんでした。

・モニターをするためのGUI部分は、Tkinterライブラリーを使います。単なるテキストを垂れ流して表示するよりも色付でデータを眺めることができるので、正常であるか、異常であるかを瞬時に判別できるのは便利と思います。


●2.道具の準備


【通信ライブラリー】

まずは、シリアル通信のライブラリーをインストールします。(python3、windowsを使用している前提で説明します)
MS-DOSのコマンドラインから以下のように入れるだけです。

>pip install pyserial

もしくは

>easy_install -U pyserial

でインストールできると思います。

もし、うまくできない場合は、windowsのインストーラーを使う手があります。

https://pypi.python.org/pypi/pyserial

ここからwindows用のインストーラーをダウンロードする方法もわかりやすいかもしれません。


【グラフアニメーション、GUI】

matplotlabとtkinterを使うのですが、これはこちらを参照してください。(pythonがはじめての方でもインストールできるように手順を説明しています) → リンク 
【データベース】

sqlite3は実は、標準ライブラリーとしてついてきているので、import sqlite3 とするだけで、データベース操作が可能です。
このデータベースはsqliteを使うためのライブラリーですが、その他Mysqlなど使いたい方は、http://www.python-izm.com/contents/external/mysql.shtml あたりで調べてみてください。

これで下準備はOKです。これから、細々としたコードを考えていきたいと思います。








●新しいツールの作成●

久しぶりのpython記事です。やっと、新しいテーマが見つかりました。
というより、ブログの記事にするのにふさわしいテーマが見つかったということです。

あまり、構えないで、簡単なテーマをどんどん書いていくのも良いのですが、やはり何かテーマを設定して
取り組むのが良いように思いました。

実用的かどうかは別として、自分では重宝できるようなツールを目指したいと思います。









Python ブログランキングへ 
クリックしてね


新しいブログをはじめました。pythonの初級者から中級者まで、役に立つ記事を掲載していますので、ご覧ください。

特にカスタム関数(ユーザー定義関数)は、便利に使えると思います。

ぜひぜひこのリンクをクリックしてください 

 Pythonを勉強して株で儲けるブログ