FreeBSD8.0 WEBサーバ構築ノート
サーバ室の簡単温度管理

サーバ室の簡単で廉価な温度管理方法のご紹介です
ai-service

サーバ室の温度管理方法

   自宅や大学の研究室でサーバを設置している方は、温度管理に悩まれている方も多いと思います。 サーバの電源にはUPS(無停電装置)を付けていることが多いでしょうが、空調にはUPSをつけていないことが多く、停電により空調が停止してしまいます。 特に、3.11の原発事故以降、停電する確率が明らかに高まっているように思います。
ドコモが提供しているユビキタスモジュールでもできますが、 個人や小さな研究室ではもっと安価に(できれば月々の運用費はタダで)温度管理をしたいと望まれている方は多いでしょう。
ここでは、私が使用している安価で簡単な温度管理方法をご紹介します。 FreeBSD8.0を搭載したサーバーのUSBに接続して、portsが標準装備しているドライバをインストールするだけで温度と湿度を高精度に計測できます。 温度が測定できるようになれば、後はPHPを使用して、ウェブサイトに表示したり、一定温度を超過したらメールを送信したりと、自由自在です。

温度・湿度測定モジュール

温度・湿度測定モジュール
温度・湿度測定モジュールの設置例
   株式会社ストロベリー・リナックスが販売している USB温度・湿度計モジュール(完成品・ケース付) を使用します(右の設置例参照)。 ドライバがportsに標準装備されていますので、簡単にインストールできます。
温度・湿度測定モジュールドライバのインストール
# cd /usr/ports/misc/usbrh-libusb/
# make install clean
これでインストール完了ですが、root以外のユーザでも実行できるよう属性を変更します。
温度・湿度測定プログラムの属性を変更
# chmod 4755 /usr/local/bin/usbrh 
温度・湿度測定モジュールをUSBポートに接続し、 "su"コマンドで一般のユーザでログインして温度・湿度測定プログラムを動かしてみましょう。 以下のようにコマンドを入力すると、1秒程度で温度と湿度が表示されます。
温度・湿度測定プログラムの実行例
# /usr/local/bin/usbrh
25.65 63.83

WEBページに温度と湿度を表示する

   次に、温度・湿度測定プログラムを実行するコマンドをPHPで用いて、WEBページに温度と湿度を表示してみましょう。 以下のような、HTML + PHPのWEBファイルを作成し、サーバーにアップした後、所定のURLにアクセスしてみましょう。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
<title>コンピュータ室の温度および湿度</title>
</head>
<body>
<font size="7">
<?php
echo exec('/usr/local/bin/usbrh');
?>
</font>
</body>
</html>
そうすると、例えば以下の例のように、温度と湿度が表示されるでしょう。
26.18 55.21

設定温度を超えた時に携帯へメールを送る

   温度が異常に高くなった場合、携帯へのメールが欲しいと誰もが思うでしょう。 このような場合には、以下のようなPHPコードを作成すれば良いでしょう。 私自身は、温度が異常に高くなった場合には、Gmailへ送信し、Gmailから携帯へ転送するようにしています。 この温度・湿度測定モジュールと監視システムのお蔭で、安心して外出することができます。
<?php
//メール送信関数
function EmergencyMail( $to, $strMessage )
{
  $title = "温度超過メール";
  $from = "***@*****.com"; <--- 送信元メールアドレス
  mb_send_mail($to, $title, $strMessage, \"From:$from\");
}
// エラー処理:メールを送信する関数
function ErrorTreatment( $strMessage )
{
  //メール送信のため内部文字エンコードを設定する
  mb_internal_encoding("UTF-8");
  //メールを送信する
  $to = "XXXX@XXXXX.com" <--- 送信先メールアドレス;
  EmergencyMail( $to, $strMessage );
}
//アクセスするURL
$url = "http://***.+++++.com/Temperature/";
// CURLオブジェクトを用意する
$object = curl_init( $url );
// User-Agentの値を指定する
curl_setopt($object, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
//成功した場合に取得結果、失敗した場合に FALSE を返す
curl_setopt($object, CURLOPT_RETURNTRANSFER, true);
//cURL 関数の実行にかけられる時間の最大値(5秒)
curl_setopt($object, CURLOPT_TIMEOUT , 5);
//URLの情報を取得する
$strObject = curl_exec($object);
//cURLが失敗した場合
if( !$strObject ) ErrorTreatment( "コンピュータ室の温度計測に失敗しました。" );
//cURLが成功した場合
else
{
   preg_match("/\<font size=\"7\"\>(.*?)\<\/body\>/is , $strObject, $SearchData);
  //温度と湿度
  $Array = explode( " ", trim($SearchData[1]) );
  $Temperature = floatval( $Array[0] );
  $Humidity = floatval( $Array[1] );
  if( $Temperature > 29.0 ) ErrorTreatment( "コンピュータ室の温度が29℃を超過しました。現在の温度は".$Temperature."℃、湿度は".$Humidity."%です。" );
}
//cURL セッションを閉じ、全てのリソースを開放する
curl_close($object);
?>
最終更新日:2013年7月8日

* 無断転載禁止。
* どのページでもご自由にリンクして下さい。
* ご意見・ご質問等がございましたら こちらからメールをご送付下さい。

FreeBSD8.0 メニュー
Sponsoredサイト
美容・健康・ダイエットサイト
脳の機能と心と体の健康
健康な心と体の栄養ブログ
占星術・風水・タロット・手相
東洋・西洋占星術
無料姓名判断で読み解く運命
タロットカードで無料占い
手相占いによる未来診断
飛星派風水で住宅開運
夢の夢占い
男と女の心理学と心理テスト
占いと健康ブログ
会社情報等
運営会社情報

プライバシー・ポリシー
お楽しみサイト
Western-Eastern Astrology

ザ・ホラリー占星術

便利サイト
株式投資講座(改訂版)
脳の機能と心と体の健康
ネオラクス
株式投資講座(改訂版)
無料SEO対策
172.31.37.45