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

« 硝酸イオンが溶け出しやすい水溶液 |メイン| 一日の雲の動きに時刻を書き込もう »

放射温度計サーバ

以前紹介したネットワーク温度計はIP接続が可能で、インターネットを使えば遠隔地からも簡単に温度の監視が可能だ。また、無線LANを使えば温室内などの設置も容易となる。
そこで、放射温度計が接続されているPCに簡易サーバを構築し、ネットワーク経由でいつでもデータを取得できるようにしてみた。








放射温度計がRS-232Cで接続されているPCは、現在は10分毎にデータを取得、テキストファイルにデータを保存している。そこで、このPCにサーバプログラムを設置し、クライアントからの要求に応じて、温度データを取得、クライアントに送信するプログラムを作成した。
データを取得するプログラム自信は、このサーバプログラムには組み込まず、これまで使っているものを利用している。
Windows 向けのActivePerlで作成している。

☆サーバプログラム

use IO::Socket;
$port = 80; # 最近のWindwowsでは変なポートを使うと動作しないので注意

$listening_socket = IO::Socket::INET->new(LocalPort => $port,
Listen => SOMAXCONN,
Proto => 'tcp',
Reuse => 1,
);

if ( ! $listening_socket ){
die "listen できませんでした。 $!\n";
}
print "ポート $port を見張ります。\n";
while (1){
$new_socket = $listening_socket->accept();

$client_sockaddr = $new_socket->peername();
($client_port,$client_iaddr) = unpack_sockaddr_in($client_sockaddr);
$client_hostname = gethostbyaddr($client_iaddr, AF_INET);
$client_ip = inet_ntoa($client_iaddr);

print "接続: $client_hostname($client_ip) ポート $client_port\n";

select($new_socket); $|=1; select(STDOUT);

while (<$new_socket>){
print "入力コマンド:$_";
if ($_) {
$mes = `perl get_data2.pl`;
print $mes;
print $new_socket "$mes";
}
$new_socket->close();
}
print "接続が切れました。引き続きポート $port を見張ります。\n";
}
#【参考】http://x68000.q-e-d.net/~68user/net/module-1.html

☆クライアントプログラム

use IO::Socket; # IO::Socket モジュールを使う。
# ホスト名とポート番号を設定
$host = "192.168.XX.XX";
$port = 80;

$mes = "get_data";

print "$host:$port に接続します。\n";

$socket = IO::Socket::INET->new(PeerAddr => $host,
PeerPort => $port,
Proto => 'tcp',
);
if ( ! $socket ){
die "接続できませんでした。 $!\n";
}
# 文字列を送信
print "送信メッセージ: $mes\n";
print $socket "$mes\n";
$socket->flush();

# 文字列を受信
while ( <$socket> ) {
print "$_";
}

$socket->close();

#【参考】http://x68000.q-e-d.net/~68user/net/module-1.html


上記サーバプログラムをPCで起動して、クライアントからアクセスがあったときの様子。



上記クライアントを別のPCで起動し、無事放射温度計のデータを取得できた。


Category 放射温度計 | August 11, 2006 | 投稿者 admin : 07:32 AM | コメント (0)


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




保存しますか?

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

Recent Entries

categories
Comments

Links


copyright gaiasensor.org. all rights reserved.