作ってしまおうデータロガー(4Ch温度自動計測装置)

小さな海では水槽が壁面に作りつけのため換気扇を付けていても水槽室の温度はメタハラや蛍光灯などで上がり放題。温度計を入れてみたら室温38℃!>o<
水槽の中や廻りの温度の計測を24時間監視することはできないか?また、そのデータをパソコンに転送して今後の参考データに使えないか?そうすれば照明のコントロールが楽になるのに。
こんなことを考えていて思いついたのが、温度センサーで瞬間瞬間の温度を計測しそれをメモリーに蓄えて後でパソコンに転送して見る。
また、データがデジタル化されることを利用して照明などの消灯やファンの温度制御運転を自動化できないものかと思い(熱帯魚の次に)大好きな電気いじりで作ってしまったのが「データロガー(4Ch温度自動計測装置)」です。


データロガーの理論は簡単に言うと温度と言うアナログ値電圧と言うアナログ値に変換しその後電圧数値と言うデジタル値に再度変換して記録するものです。
・温度を電圧に変換するにはサーモセンサーと言うものを使用します。
・電圧をデータに変換するにはA/Dコンバータと言うものを使用します。
・データを保存するにはEEPROMと言うものを使用します。
・全体の制御およびパソコンとの通信処理は1チップマイコン(PIC Peripheral Interface Controller)と言うものを使用します。

 PICとサーモセンサーの簡単な説明はここをクリックしてください。

それでは「小さな海」のデータロガーを例として作ってみましょう。

1.基本構想  ここでは何Chのデータを取得したいかを決めておきます。
これは以降の部品調達に影響してきます。
  1.1 取得したい温度部位及び取得間隔
       温度を測定したい部位別に何分毎にデータを取得したいかを決定します。
       (EEPROMの容量及びCh数で取得できる最大データ件数は決定されます)
     @ センサー1(Ch1):生体水槽の温度(当然ですね)
     A センサー2(Ch2):生体水槽が設置されている水槽室内温度(水面上10cmでHIDの直射がないところ)
     B センサー3(Ch3):サンプ室の温度
     C センサー4(Ch4):水槽室天井温度(水槽室が壁に完全に埋め込んであるため天井温度の上昇を確認するため)
     ・取得間隔は600秒(10分)間隔とする。
      後でロギング期間を延長するため900秒(15分)間隔に変更した。   
     ・センサーモジュールは外付けとして将来各種センサー(PH、ORP、流量)との差し替えを可能とする。

2.部品の調達準備です。
 1.の基本構想で洗い出した要件を元に必要な部品の一覧を作成します。
  「小さな海」の例
   センサー制御4Ch、すべて温度計測のみ
  ・PIC計測アダプター&データロガーKit 秋月電子通商 ¥3,700 (PIC測定アダプター&データロガーイメージ)
  ・Dsub25ピン <−> Dsub9ピン変換アダプター(または変換ケーブル) (変換ケーブルイメージ)
  ・追加温度センサー 3個(1ch分のセンサーはデータロガーKitに同梱) (センサーイメージ)
  ・温度センサー延長用ケーブル(同軸3線式シールドケーブルがGood)
  ・2液混合型エポキシ接着剤(センサーの防水用)
  ・ストロー(センサーの防水・保護用ケースとして使用)
  ・ACアダプタ(6V100mA〜12V100mA)、または積層乾電池(006P 9V)

3.工作に必要な工具類  「小さな海」では以下の工具を使いました。(工具セットイメージ)
  ・ドライバー ・ニッパ ・ラジオペンチ ・半田ゴテ&半田 ・デジタルテスター ・カッター ・温度計 ・ルーペ (なくても可)

4.部品の買い出しです。
 晴れた日を利用して東京地区なら秋葉原、大阪地区では日本橋あたりですべのものが揃います。
 インターネットの通信販売でもKitの購入は可能http://www.akizuki.ne.jp/orderinf.htm

5.さあ、組立です 。組み立て前後の写真を初めて撮って見ました。
   使用部品一覧  組立完了後  
 5.1 ロガー部部品のハンダ付け
      Kitの中に制作に関する説明がありますのでそちらを参照して各部品を基板にハンダ付けする。
     部品取り付け時に注意する事を下に書いておきます。
      ・抵抗R1とトランジスタQ2、抵抗R3とトランジスタQ1が干渉する。 抵抗R1とR3の向きをシルク印刷とは逆にした方がよい。
      ・ケースが導電性のため、抵抗はなるべく背が低くなるように実装する。 リード線とケースが接触して短絡する可能性有り。
      ・トランジスタQ1・Q2及びIC U4のリード線は根元で思いっきり折り曲げないと、トランジスタがケースに当たり、基板をケース
       に収納できなくなる。(折り曲げイメージ)
      ・トランジスタQ1・Q2の向きに注意。ちょうど反対向きに取り付ける格好になります。
      ・基板とD−subコネクタのハンダ付けを初めに行ったほうが良い。 基板とD−subコネクタのハンダ付けは、ケースに入れた状態
       でハンダ付けを行う。
       (基板とD−subコネクタをきっちり押し込んでしまうとケースに入らなくなってしまう。微妙な調整が必要)
 5.2 配線のチェック
      ルーペなどを使い配線の間違い、ハンダブリッジ(ハンダを付けすぎて隣同士がショートした状態)、ハンダ・配線屑の除去をする。
      動作チェックが終了するまでケースははめないこと。(はずすのが大変)
      また通電しちゃ絶対だめですよ!
 5.3 センサー部部品のハンダ付け
      D−subコネクタに直接配線してしまいましょう。実体配線図がついています。
      (センサー(LM35)部分を延長するためには2芯のシールドケーブル(心線が2本でシールドがあるもの)が用意できるとGood)
      (センサーイメージ)
 5.4 配線のチェック
      説明と見比べながら配線の間違いを十分にチェックする。
 5.5 動作テスト
      電源を接続し、異常な発熱・臭いが出ないかどうかをチェック。このKitは全くと言って良いほど発熱しません。
      (当然なことですが異常な発熱・臭いが出た場合は速やかに電源を切り再度配線のチェックをしてください。)
 5.6 データロガーの完成
      すべてのチェックが無事終了したら、データロガーの完成です。

6.センサーの調整と計測開始
  (一応センサーですから調整しないと何の役にも立ちません)
 6.1 完成したデータロガーにセンサーユニットとPCを接続する。
     (データロガーに電源を接続してから、PCを接続するようにしてください。順番を逆にすると通信エラーになる可能性があります。)
 6.2 データロガーKitに付属しているプログラムをインストールして起動する 。
      プログラムの使用方法はインストール後にPicADC(ソフト名)のHELPを参照してください。
 6.3 電圧計モードでセンサーの設定を行う。
      別に用意した温度計の表示値になるようにセンサーユニットの抵抗を回して調整する。
      (右側の数値が電圧表示で10倍すると温度(摂氏)となります)
      各Ch単位に調整を行います。(結構シビアです、気長に調整しましょう)
 6.4 データログモードの設定を行う。
      ここで注意しておきたいのが、
      このソフトの場合入力した内容は保存されないためプログラムを起動するたびに再設定が必要となります。
      EEPROM種類の選択(24C256)、Verf及びチャンネルの選択(Vref:VDD)および接続しているセンサーのChを指定。
      ログ間隔の設定(これは何秒毎にデータを取得するかの指定です)をした後「ログ設定」釦を押下すればデータログモードの設定は
      完了です。
 6.5 ロギング開始。
      一旦データロガーの電源を切りセンサーを好きなところに設置してから電源を最後投入すればロギングを開始します。
      (もうPCは不要ですので、接続ケーブルははずしてください)
 6.6 ログデータ取得。
      データロガーとPCを接続し、PCソフトで「ログデータ読み出し」釦を押下すればロガーよりPCにデータを転送してきます。
      後のデータ加工はご随意にどうぞ。

これで組立・調整はおしまいです。
管理人が1人ですべて行って約4時間で完成しました。(番外編を含む)
PCに取り込んだデータをEXCELで加工してグラフにすると一日の変化が一目瞭然です。もちろんそれ以上の日数の変化もOKです。
 →結果グラフSample(センサーを1つ壊してしまったので(番外編参照)3chで10日分のデータしかありませんが)

作って測ってみた感想として、「これは思ったより有効に使えそうだ」と言うのが率直な感想です。
このグラフを見ても解るとおり何時頃に温度のピークがあり、変化の度合いが一目瞭然です。
これを参考にして照明の点灯・消灯時間、ファンの動作時間などのタイマー設定が今までは感に頼っていた部分がデータとして保存できるので、照明・ファンの作動時間を調整して水温・室温はたまたクーラーの稼働時間短縮など総合的に省電力化を考えて行こうかと思っています。

今後の展開について。
結構精度の良いデータが取れるため展開として以下のことが考えられます。(市販されている観賞魚用のセンサーの誤差は±1.0℃前後)
(今回使用した1チップマイコン(PIC)の分解能が8ビットのため0.2℃単位のデータ取得/表示ですが、
 
1チップマイコン(PIC)の分解能が10ビット以上のものを使えば0.1℃未満のデータ取得/表示が可能となります。
 また、センサーモジュールも高性能のものを使用すれば誤差は ±0.4℃位まで絞り込むことが可能です)
・ACコントローラと接続して高精度サーモスタット(ヒーター・クーラーを±0.2℃単位で制御可能)として使用する。
・ACコントローラと接続して換気扇センサーとして使用する。
・表示ユニットと接続して高精度温度計として使用する。(表示ユニットはテスターで代用可能)
 (電圧表示ユニットはKitの発売元である秋月電子通商よりデジタル電圧計キットが発売されています)
・他のセンサー(Ph・ORP他)を接続しマルチモニタロガーとして活用する。(これが本来の目的)

番外・失敗談
 番外.1 ロガー基板の異常な発熱
      完成しPCに繋いで動作チェックを行うが「通信エラー」となる。
      そのうちケースがほんのり暖かくなってきた。
      あわてて電源を切りケースを開けて各パーツをさわってみたらIC U4が異常に熱い。
       このICは入力電源電圧を5V一定の安定した電圧にするためのICなので、電源の逆接が一番疑わしい。
      テスターを持ち出しIC U4の入力と出力の電圧を測ってみた。入力5.75V・・・OK 
      出力2.35V・・・? 異常に低い、変だ!・・即電断
      パーツの再チェック・・・・・・・・・・・・問題なし(弱った、ICを飛ば(破壊)したか?):o;
      落ち込みながらふとセンサー部を見てみる。・・・・わぁお!センサIC(LM35)の接続が逆でないか!
      センサーを正しく付け直し祈る気持ちで電源On。・・・・・・・熱くならない。PCを接続し通信ソフトを立ち上げる。
      ・・・・・・・・・・・・・・・・・・・・「通信確立」・・・・・・・・・壊れてない良かった。
      最後まで気を抜かないでハンダ付けをすること!  教訓でした。
      (でも、センサーICは誤差が大きくなり実際には使用不能となりました)

 番外.2 クーラーの能力不足露呈!
      データを取りだしはじめて暫くしたら今年最高気温の日々(2001年7月20日〜同25日)の連続
      当然気温・水温ともに鰻登り。今年はクーラーを設置したから大丈夫(何せ500L対応型だもんね)
      なんて思いつつ管理人は房総の海へ泳ぎ(生物あさり)に行ってました。
      帰ってきてロガーのデータを取ってみてビックリ!!!!
      なんと水槽室の温度が37度!、ついでに水温の最高値が28度!
      絶句の管理人です。ロガーの計測結果を疑って見たのですがどうもこちらは正しいようだ
      そうすると・・・クーラーの能力不足??  高かったのに・・・・・絶句
      小さな海のクーラーは気温−10度が限度のようです。
      「買い換えるって言ったら家のカミさんの怒るだろうな・・・」なんて考えていたら背筋ゾクゾクで暫くは
       エアコンの必要がなかったです。
      みなさんもクーラーは総水量の3倍位の能力のものをチョイスした方が後で泣かずにすみますよ。
      ログデータは取ってありますがとても恥ずかしくて公開できません。
      「どうしても見たい」と言う方は、管理人まで直接mailをください。

 番外.3 センサケーブルの有効長と防水対策
      センサのケーブルを延長していろいろなところのロギングを取ろうとしたのだが、一定以上にケーブルを延長すると
      ロギングデータに誤計測が増えるのを発見した。
      ケーブルにノイズが乗るようで計測値が振れてしまいロガーとして役に立たなくなってしまった。
      ケーブルの長さをいろいろ取り替えたりケーブル自体を3芯シールドケーブルに換えてみたりしたのだがロガーより
     約1m辺りが限界のようである。
     それ以上にセンサを延長する場合はセンサ側にオペアンプを設置して計測値を一旦増幅してからロガーに
     送るようにしないといけないと思う(この延長増幅は私見であり実験したわけではありません)

      センサの防水対策だが当初はセンサにケーブルをハンダ付けした後、2液混合型のエポキシ樹脂接着剤でシール
      していたのだがエポキシでは常時水中に入れておくには経年劣化の点でお勧めできない。
      防水対策はシリコン充填剤(商品名『バスコーク』)の使用をお勧めする。
      短く切ったストローの中にセンサーユニットを差し込み、シリコン充填剤を流し込めば見事に一体化したセンサーユ
      ニットが完成する(現在1年半連続使用中だが問題は発生していない)

 番外.4 ロガーの時間計時誤差
      計測を初めて暫くしてデータの集計を行ったのだが、ここで小さな問題を発見。
      それは、計測間隔を900秒のように長時間に設定した場合、ロギングデータにずれが発生することである。
      源発振周波数は20MHzなのでこの周波数をプログラム的に分周して基準クロックを取り出しているのだが、この分
      周ロジックの精度の問題であろう。
     分周ロジックを見直せば良いのだが何せこのチップに入っているプログラムは目一杯で追加ロジックを組み
     込む余裕がない。
     よって、姑息にもロギング間隔をいじることで何とかお茶を濁すことが出来た。
     理論上は900秒間隔でロギングすればよいのだが結果的に854秒の設定で約15分間隔*2ヶ月くらいな
     ら何とかごまかせる範囲に収めることが出来た。
      (実際には15分計測で計時単位に約0.1秒の誤差が出たので1ヶ月(30日)だと、
      0.1*4*24*30/60=約4.8分のずれ)
     これ以上の精度を求めるには辛いものと思えるので計時期間を短め(たとえば10日とか半月くらい)に設定
     すれば誤差を含めても使えないことはないと思う。
     これ以上の計時正確性を求めるなら「データロガー(8Ch温度自動計測装置)」をお勧めする(ちょっと問題ありだが)
     こちらの計時は驚くほど正確である(安い腕時計よりよほど正確)。