アロワナ水槽のアクアコントローラーApexによる管理に向け、実施項目のひとつであった光学水位センサー(Optical Water Level Sensor)の取り付けを行いました。

IMG_3762_201601310142491dd.jpg


まずこの水位センサーですが、従来のフロートスイッチのような浮きによる物理的なオンオフではなく、プリズムとLED&光センサーによるオンオフを実現しています。なのでフロートスイッチと比べて圧倒的な感度の高さと耐久性を持っています。
クリスタルなピラミッド型のセンサーが美しいです。

欠点としては、LEDと光センサーを稼働させるために電源供給が必要となります。
私としては光学センサーとフロートセンサーを併用することで安全性を確保するようにしました。
万一、光学センサーの誤動作で水位検出ができなくなったとしても、フロートで物理的に水位検出し、注水を止めるという仕組みです。

それでは光学水位センサーの設置を始めてみたいと思います。

まずは別途入手した光学水位センサー用モジュール。中国から取り寄せました。
これを探し出し入手するのに随分時間がかかってしまいました。
4ピンのモジュラーが2つ装備されています。
1234と書いてある方は水位センサー用、GADVと書いてある端子は電源供給&アウトプットの端子です。

IMG_3763_201601310142485a7.jpg


家に転がっていた使っていないDC5VのACアダプターをぶった切って、電源供給の端子に接続しました。
回路の稼働を示す赤いランプが点きましたので、第一関門クリアです。
センサー側に埋め込まれているLEDは不可視光のようなので、センサーが光って見えることはありません。これならセンサー先端にコケが付く心配も無いようです。

IMG_3765.jpg


センサーをテストしてみます。まず水に浸かっていない状態では、5Vほどのアウトプットがあります。

IMG_3776.jpg


センサーのコップの水に浸けてみると、回路からのアウトプットはゼロ近くに落ちました。
水位センサーは間違いなく稼働しているようです。
このセンサーは水に浸かっていると通電(Closed)、水に浸かっていないと断線(Open)という仕様のようです。
テスト時は水から出しても雫が落ちきるまでは水の中と認識していたので、回路の上にある感度調整ダイヤルを回して調整し、感度を高めました。
水にちょっとでも触れた瞬間に通電状態になります。さすがは光学センサー、感度抜群です。

IMG_3777.jpg


プラスチックの箱に穴を明けて回路を格納しました。

IMG_3778.jpg


センサーフォルダーに装着。
下側に光学センサー、上側にフロートセンサーを装着しました。

IMG_3779_201601310143282ff.jpg

IMG_3780.jpg


ApexのBreakout Boxに接続。
ポートI6番にフロートセンサーを、I5番に光学センサーを接続しました。

IMG_3782.jpg



サンプ槽に設置。

IMG_3785.jpg

IMG_3784.jpg

この光学センサーの先端に、ちょびっとでも水が触れた瞬間にセンサーが反応します。
感度が良すぎるので、水面の揺らぎによってON/OFFを短時間に繰り返してしまう恐れがあります。なのでApexのプログラムで調整する必要があります。

Apexで設定を行います。
ApexのOutletセットアップで、バーチャルOutlet「V_OpticalSW」を作り、光学センサーが水に浸かったらOFF、浸かっていなかったらONとなるようにしました。

outlet_optical.png


RO浄水器を接続したOutletの設定です。
光学スイッチが水に浸かっていなかったら、RO浄水器のポンプに通電させ、注水を開始します。
その際、水面の揺らぎに過敏に反応しないように、Defer文を使ってスイッチが15秒間水に浸かった状態が続いたら注水を始めるようにプログラムしました。
フロートスイッチが水で浮いたら強制的に注水を止める文も追加しておきました。
水抜きのためのポンプ、アクアリフター(Outlet名:Lifter)が稼働している最中も注水はしません。
IconをSpigot(蛇口)にしたところも、細かいポイント

outlet_RO2.png



「Swx8_5」というのが、光学センサーが接続されているBreakout Boxのスイッチ。
サンプ槽の水を抜くと光学スイッチは水中から外に出るのでV_OpticalSWはONとなり、RO(浄水器)は稼働をはじめます。

dash_RO_ON.png


注水によって光学センサーに水が浸かると、Swx8_5はClosedとなります。
これによってV_OpticalSWもOFFとなり、RO浄水器は停止しました。
問題なく稼働しているようです。

dash_RO_OFF.png


これで水換えはフルオートになりました。
Apexに接続したアクアリフターで3時間おきに1日8回、排水をします。
以下は水抜きのためのバーチャルOutlet。
最後の一行はサンプ槽が満水になっていない状態で排水を開始させないための文です。

スクリーンショット 2016-01-31 16.57.47


排水を司るアクアリフターのプログラムは以下の通り。
バーチャルOutlet、V_WChangeとの組み合わせのより、AND条件を実現しています。
(Apexには論理演算子が使えないので、AND条件を成立させるためにはこのような工夫が必要となる)

スクリーンショット 2016-01-31 23.05.30



1日何%変えているかはまだ未測定ですが、おそらく10%から20%程度でしょうか。
1日8回の水換えなので、一気に水換えするより生体への負担は少ないと思います。
もっと細かく刻むこともできますが、機器に負担がかかるので今はこの程度にしておきます。


結構簡単にできあがりましたが、現時点でNeptune Apexを使ったDIYによる光学水位センサーの利用例はネットでは確認できなかったので、情報が全くない中での工作でした。

なのでこのDIYは世界初かな〜、なんて自己満足に浸っています

いずれNeptune Systemからリリースされる新製品のFMMモジュールで光学水位センサーが使えるようになるみたいですけど。

今回の工作でかかった費用は約3,000円程度でした。
Apexって本当に楽しいシステムだな〜。


IMG_3800.jpg

全てはこやつ、ミニティマちゃんのために〜。

IMG_3806.jpg


よろしければいいねクリック^^
にほんブログ村 観賞魚ブログ アロワナへ