Search this site :


April 2008 : 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

« eTcl/Tkで温度データを取り込もう |メイン| W-ZERO3[es]で232Cから取り込んだデータをWEBサーバへ転送 »

W-ZERO3[es]での232Cからデータを取り込む方法

今回は実際にW-ZERO3[es]を使って、データをCOMポートから取り込む部分を作成してみたい。W-ZERO3[es]では、COM1は内蔵のモデムになっており、USBドライバを組み込むとCOM2として認識された。
☆USBドライバはこちらのものを使わせていただきました。 http://www.softclub.jp/zoro/ce/

今回作成するプログラムはデータを保存するファイル名を引数として受け取り、RS-232Cポート(COM2)から読み出したデータを保存する関数が基本となっている。計測した結果のデータはローカルファイルに保存すると同時にネットワークを経由してWEBサーバにも保存する。
データを保存後、指定された時間後に再度データを読み込む設定をして、232cポートを閉じる。

以上の処理をするプログラムをTcl/Tkで作成した。データの保存、再度実行する部分はこれから作成する予定だ。

proc disptemp {logfile} {
	#時刻を取得
	set now [clock seconds]
	set now [clock format $now -format {%Y-%m-%d %H:%M:%S}]
	#com2を232cという名前で開く
	set 232c [open {com2:} w+ ]
	#232cのポートの通信条件を設定
	fconfigure $232c -mode 2400,n,8,1 -timeout 100 -handshake none
	#232cに接続された温度計にコマンド「:」をおくり温度データを出力
	puts $232c ":"
	#232cポートをフラッシュして、データを温度計に確実に送信
	flush $232c
	#データを取得した場合には保存する処理を実行
	while {[gets $232c data] >= 0} { 
		#データを保存
		# ローカルファイルに保存
		# ネットワーク上へ保存
	}
	#予定された時間後に再度実施する設定
	#232cポートを閉じる
	close $232c
}

さて、プログラムを作成した際に、苦労した点を纏めておこう。

1.ポートの名前は com2: この「:」が必要なので注意すること。
2.ポートを開いて、出力しても、温度計にデータが渡らない。
flash コマンドでデータを書き出すこと。

この関数は disptemp $fout のような形で呼び出し、使用することになる。
データは、保存すると同時にデータをテキストエリア text に表示する。
またインターネット上へのデータの転送は、WEBサーバのCGIへデータを渡し、サーバ側でデータを保存することにする。このあたりに付いては次回説明したい。


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


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




保存しますか?

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

Recent Entries

categories
Comments

Links


copyright gaiasensor.org. all rights reserved.