ザリガニ生命維持装置(親機)2014/07/06 03:29

プロジェクト:ザリガニ生命維持装置

<目的>
ザリガニ水槽の温度を管理して、一定温度以上になったら冷却ファンを回す。
温度はスマホでどこからでも確認できる事。


<機能配置>
(親機)
一定間隔で子機へ要求メッセージを送り、子機からの応答メッセージを元に、センサの計測値を取得して、thingspeakへ送信する。
(子機)
親機から要求メッセージを受け取ったら、センサーの値を計測する。計測時に温度が28度以上ならファンスイッチをオンにする。28度未満ならファンスイッチをオフにする。センサーの計測値とファンのオンオフ状態を親機に送信する。
(外部ASP(thingspeak))
親機から送られたセンサー計測値を受取り、DBに格納する。外部からリクエストがあれば直近のデータをグラフ表示する。


<実装機能(親機)>
約1分間隔で子機へ要求メッセージをserial経由(XBee)で送る。10秒間、子機からの応答メッセージを待つ。serial経由(XBee)で取得した子機からのメッセージをthingspeakへ送信する。


<機器構成(親機)>
[arduino Duemilanove]-[Ethernetシールド]-[XBeeシールド]の3階だて。
以下の注意事項がある。

注意.1 EthernetシールドとXBeeシールドが接触する
ピンの高さが足りないのか、Ethernetシールドの上にそのままXBeeシールドを乗せると、XBeeシールドの一部がEthernetシールドのLANコネクタに接触する。対応としてXBeeシールドのピンに延長用のピンを足して接触しないようにする。
かなりの高層ビルになってしまう親機…

注意.2 そのままではXBeeシールドに電源供給されない
XBeeシールドはICSPピンから5V、GND、リセットを取っているが、間にEthernetシールドを挟むと接続されなくなる。Ethernetシールドから5V、GND、リセットをXBeeシールドのICSPピンへバイパスしてやる必要がある。
他のサイトを参考にブレッドボード用のピンで接続する。

注意.3 供給電力
11.8V 0.1Aのアダプタを接続した状態では動作しなかった。
9V 0.5Aのアダプタを接続した状態では動作した。
消費電力が大きいため、電流が少ないとダメらしいという推測だが詳しい理由は不明。。。


<パッケージング(親機)>
LAN接続して継続的にデータを収集し続けるため、ケースに入れた。
サイズ的に100均で売られているカードケースが丁度良かった。
ただし、ケースにはLANと電源が接続必要なので、そのままでは使えず少し加工が必要。きれいにLANと電源用の穴を開ける技能は無いので、コの字型にカットして全部そこを通す事にする。

カードケースには立体的な模様が付いており、プラ用のカッターだけでは加工が出来なかったため、タミヤのハンドドリル(ピンバイス)とプラ加工用のノコギリでカットした。
タミヤ クラフトツール 74111
プラ加工は大変だった。こんな時3Dプリンタが手軽に使えるとありがたいのだが…

密閉されると熱が心配なので、ファンも付ける。ファンにも電源供給するため、注意事項.2で記載したICSPピンへの電源供給を分岐するようにした。
昔のPCのライザーカードみたいになる。
Arduino Ethernet R3を使えば1枚少なくて済むのだが…


<スケッチ>
以下課題が残っているが、とりあえずのバージョン。(親機スケッチ)
thingspeakのAPI KEY(\\で囲った部分335行目)は、使用するアカウント/Channel毎に変更必要。
※残課題
・マイナス値の考慮をしてない。
・エラー制御が甘い(子機からデータ来なかった場合など)
・実行記録をSDカードに残しているが、日付がわからない。

一部修正バージョン(スケッチ)
・少しエラー制御追加
・受信データ処理のバグ修正


ザリガニ生命維持装置(子機)2014/07/31 01:17

ザリガニ生命維持装置 - 子機 の作成

<機能要件(子機)>
親機からの要求メッセージを受け取ったらセンサー計測値を取得して、親機に返す。
28℃以上の場合は冷却装置を作動させる。

<完成図>


<機器構成>
・子機本体
 ・Arduino FIO
 ・XBee S2
・冷却装置
 ・ペルチェ素子 5Aタイプ(30x30mm)
 ・ヒートシンク+DC5V ファン+熱伝導シート
・センサ類
 ・温度センサ(103AT)+10KΩカーボン抵抗
 ・CDS+2.2KΩカーボン抵抗
・3V小型リレー 接点容量:1A Y14H-1C-3DS
・電源:iBuffalo スマホ用2.0A出力 ACアダプタ


<アプリ仕様>
親機よりXBee経由でメッセージ"1"を受け取ったらセンサで取得した値を返す。
FANは温度が28℃以上ならスイッチON、それ以下ならOFFにする。
(子機のスケッチ)


<備忘事項>
基本機能はブレッドボード上ですぐに出来たものの、いくつか検討事項があったのでメモ。
1) ファンを回すには?
2) ケースに入れる
3) 冷却効果を得るには?



1) ファンを回すには?
arduino FIOで、DigitalピンのオンオフによりファンをON/OFFしたい。ファンの仕様は5V0.21A。arduino FIO本体のピンからの供給電圧は3.3V&電流も小さいので、ファン直付けでは動作しない。電源供給はminiUSBの口があるが、UNOやDuemilanoveのようにvinが無い。どうしようかと考えていたが、Vinに相当する箇所をFIO上で確認した。
写真上部右側にキッチリ5Vと書いてある。XBeeを指していて見えなかったので気づかなかった。あとはここにピンソケットつけて電源をバイパスし、ON/OFF制御用に適切なスイッチをつければ良い。

<スイッチの選定>
arduino FIOのDigitalピンで制御出来るスイッチを探す。以下3つの機構を使って比較してみる。
(1) MOSFET 2N7000
(2) フォトリレー TLP222AF
(3) 3V用リレー Y14H-1C-3DS

USBからバイパスした5V電源とファンとの間にスイッチを置き、各スイッチでオンオフ操作をしてみる。オンオフ操作は手動で4Vバッテリーをつないだり閉じたりして確認した。

(1) MOSFET 2N7000
GATEに3Vを印加すると、かろうじてDrain-Source間で電圧がかかる事はテスターではわかったが、ファンは動かせなかった。2.5V稼働MOSFETなら動くかもしれないが、探し方に問題あるのかマルツにも秋月にも共立にもスルーホール用は見当たらなかった。2SK2493の事例がWEBで確認されたが、廃止品になっており販売されてなかった。

(2) フォトリレー TLP222AF
試したが動作しない。

(3) 3V用リレー Y14H-1C-3DS
動作する。ONになると電源と同じ電圧がファンに印加された。ただし中身は機械スイッチなので、オンオフ時にカチカチ音がするのが難点。頻繁にスイッチが切り替わるわけでは無いので、リレーを採用する。


2) ケースに入れる

サーミスタ103ATやファンは、本体から離れた位置に設置する。リード線を基盤にハンダで直付けしてもいいが、取り回ししにくいので、コネクタでつなげられるようにしたい。適当な圧着コネクタを使うのが良いと思ったが、電子回路で何が一般的なコネクタなのかわからない。YouTUBEに圧着操作を実施している動画があり、ネットでも比較的ヒットするものにしようという程度の判断の元、XHコネクタにした。共立電子にいろいろあった。
電線の接続用に使う圧着金具はホームセンターでセットが1000円くらいで買えるが、電子工作用の圧着金具はホームセンターには無かったのでAmazonで買う。

ケースの加工は親機で懲りたので、加工しやすい柔らかい素材の物にしようと思っていた。100均で見つけたペンケースが手頃なサイズ&材質だったので採用する。
本体はケースに入れて、そこからリード線を伸ばし、ファンとサーミスタを付ける。ペンケース内でFIOが自由に動き回るのが困るので、隙間はスチロール板で埋める。

一応3Dプリントサービスも検討してみるが、造形に凝らないホビー用のパーツ作成用途ではまだ高い気がした。
リンカク
https://www.rinkak.com
DMM 3Dプリント
http://make.dmm.com
デジモデ
http://digimode.jp/contents/


3) 冷却効果を得るには?
水槽の冷却方法について検討する。思いつくものを分類してみる。

①ファンを回して空気を対象物に当て、外気と同じ温度まで下げる。対象物と外気の温度差が大きい時は、冷却効果がある。
 →CPUファン、扇風機、うちわ
②コンプレッサーで冷却用媒体を外気で冷やしながら液化するまで圧縮し、圧縮媒体を解放して気化させる。気化する時に周辺の熱を奪う効果を利用する。
 →エアコン、冷蔵庫
③②と同じだが、水分が気化する時に熱を奪う効果を利用する。水分のある冷却対象に風を送る事で気化する効果を高める。
 →汗+(扇風機・うちわ)、打ち水、水槽用のファン、濡らしたタオル。
④ペルティエ素子などの熱電素子を使って熱移動する。移動した熱を①の方式で冷却する。
 →除湿機

一般に市販されている水槽用クーラーは
②の方式:20000~30000円
③の方式:1000~2000円
④の方式:10000~15000円
で売られている。

水槽の水は、中で飼ってる生物のためにバクテリアを追加しており、ザリガニ水槽は比較的匂いがキツめ&脱走の危険もあるので、普段は密閉してある。方式は③がお手軽で、当初は③のつもりだったが、フタを開けて水面に風を当てるのは、バクテリアと匂いを部屋中に撒き散らすという事になるので気が引けた。
水槽の温度は室温と基本的に同じで、風を送りつけても効果はなさそうなので①はNG判断した。②は機構的にハードルが高くて無理。なので④の方式を検討する。ペルチェ素子は、4×4cmの物が600~700円で秋月で売られている。(実際にはまちがって3×3を買ってしまったが…)

水槽はホームセンターで1000円位で買った金魚用簡易セットの水槽だが、水がMAX12リットル入る。中学レベルの熱量計算でザックリ素人計算すると、12リットルの水を1℃変えるのに必要な熱量は12(kcal)、2AのUSB電源を使うので5V 2Aとすると10W、1℃冷やすのにかかる時間は1200秒(=20分)…という結果だが、実際にはそんなに効率良く冷えない&冷やしてる横で冷やしてない箇所が外気で温められるので、全体としては全く冷えないのではないかという悲観的な予想が出来る。
冷え具合は今後実験して試すことにする。