Search this site :


December 2009 : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

« PHSと放射温度計 |メイン| W-ZERO3[es]での232Cからデータを取り込む方法 »

eTcl/Tkで温度データを取り込もう



2007年は7月に入ってから、九州で大雨が続いている。宮崎に置いてあるウエザーバケットは、太陽電池による発電が出来ない為か、データの取得が出来ていないようだ。
さて、先月からウイルコムのSmartPhone ES007SH、W-ZERO3[es] を計測用の端末するために、簡単なソフトウエアを開発している。前回も書いたように、開発には簡単にGUIが作成できる eTcl/Tk を採用した。 http://www.evolane.com/software/etcl/index.html eTcl/Tk というのは Tclというスクリプト言語の一つで、Perlと同じようにコンパイルを必要とせず、その場でアプリケーションを実行できるのが特徴だ。 さらにTkというGUIを簡単に構築できるライブラリが実装されており、比較的短時間でWindowsアプリケーションを作成できる。 eTcl/Tkは、WindowsPC版、Mac版、WindowsMobile版などがリリースされており、基本的な開発をWindowsPCで行うことができる点が特徴である。 また、今回は外部機器をRS-232C経由で接続することが目的なので、この言語が外部入力、通常Windowsでは com1 などといわれる comport に対応している点が選択したおおきな理由でもある。

それでは、早速eTcl/Tkを使ってアプリケーションの開発にあたって、簡単なスケッチを書いてみよう。

1.RS-232Cからデータを読み込む
2.データをファイルに保存する
3.同時にネットワーク上にデータを転送
4.1.からを定期的に(5分に一度程度)繰り返す

というように、今回のアプリは大きく3つの部分で構成される。

では、各部分をもう少し、具体的に見ていこう。

1.RS-232Cから定期的(5分に一度程度)データを読み込む

COMポートをClose
データを読み出すコマンド「 : +改行コード」を出力
温度計からデータ、たとえば「24.5 C」が出力されるのでこれを読み出し
COMポートをClose

2.データをファイルに保存
Fileを追加書き込みノードでOpenし、データを書き込む
FileをClose

3.ネットワーク上にデータを転送
別途用意したWEBサーバにGET形式でデータを転送
例:www.gaiasensor.com?temp=23.5
上記のようなURLへアクセスする。
なお、インターネット上のURLのアクセスには
httpパッケージが公開されている
eTcl/Tk http パッケージ
なお、このコマンドを使うときには、プログラムの冒頭で、以下の宣言が必要。
package require http

4.1.からを定期的に(5分に一度程度)繰り返す
定期的に繰り返すには、通常RepeatコマンドがTclにはあるのだが、どうもeTclには実装されていない。
そこで、一定時間後に処理を実行する After コマンドを使うことにした。

このスケッチを元にプログラムを作成するわけだが、その前にGUIの設計を簡単にしておこう。

今回は、データを[es]で読み込めるかを確認するのが、主な目的なので、GUIは極めてシンプルにしたい。必要な要素は以下で十分であろう。

1.計測を開始するボタン
2.計測結果を表示するテキストエリア
3.アプリケーションの終了ボタン

場合によっては、起動してすぐ実行を開始するのであれば1.は不要かもしれないが、作業の準備など、アプリは起動しているが、データの取り込みはしたくない場合もあるので、つけることにした。
Tkのコマンドを記載しておこう。今回は最低限度の要素を並べただけだ。

#2007.06.28
#堀場製作所放射温度計のデータをウイルコムのSmartPhone ES007SHで取り込もう!
#

#$fout は出力ファイルハンドル
#スタートボタン定義
button .start -text {TempRead} -command {
disptemp $fout
#disptempがデータ取り込みプロシージャ
}
pack .start

#データを表示するテキストエリア
text .text -width 25 -height 15
pack .text

#終了ボタン
button .b2 -text {END} -command {
close $fout
exit
}
pack .b2


さて、アプリケーションの実際のGUIをWindows上で確かめてみよう。


IT-ES.JPG

次回は、このGUIに上記のプログラムスケッチにしたがって、eTcl/Tkを使って実際の処理を埋め込んでいく予定だ。

Category 放射温度計 | July 07, 2007 | 投稿者 admin : 08:53 AM | コメント (0)


コメント
この記事に関するコメントはこちらから




保存しますか?

(書式を変更するような一部のHTMLタグを使うことができます)

Recent Entries

categories
Comments

Links


copyright gaiasensor.org. all rights reserved.