[Sparkfun] Data.SparkFun.comを使って実際の問題を解決する

Tweet about this on Twitter0Share on Facebook0Share on Google+0

データを集めるだけじゃない、仮説検証、傾向分析、システム変更予測と言った様々な使い道

ちょうど一年前の今頃、は新しい趣味を始めた。

アクアポニック(水性栽培)システムだ。

関連する過去記事へのリンクをいくつか載せておく。

Roundtable – Aquaponics / Time-lapse with the Raspberry Pi / Time-lapse with the Raspberry Pi Pt. 2

あれ以来めまぐるしい日々を送っているし、毎日がチャレンジと歓喜の連続だ。

また、の電子工作プロジェクトへの愛情と、水槽プロジェクトへの愛情を一緒に注げる素晴らしい機会にもなった。

家にある2つのシステム以外に、知り合いのグループがのハッカースペース(Solid State Depot)でプロジェクトを立ち上げるのも手伝った。

今までアクアポニックシステムを見た事がない人達に、どうやってシステムを構築して行くのかを間近で見る機会を与えるのが目的だ。

はこのプロジェクトで、教育の機会を提供するだけでなく自分のハッカースペースをもうすこし華やかに出来ればと思っていた。

3回の週末に渡り、とハッカースペースコミュニティーとアクアポニックコミュニティー両方から沢山の人が来てくれてシステムの構築を手伝ってくれた。

こうしてシステムは2014年の5月に運用を開始した。

ssdTank (1)


問題発生

このプロジェクトは、の自宅のシステムの様に毎日僕が監視出来るわけじゃない。

だって、時にはハッカースペースを一週間空ける時もある。

夏の暑さがビークに近づくにつれて、水温の変動が魚の生息(熱帯魚にすら)に適さなくなってきたり水槽の理想的な水温よりも高くなって来た事に気付いた。

その時点で、対処が遅れていたら魚達の健康に影響を与えていただろう事は予測出来た。

水温を監視&コントロールする手段を組み込まなければならないタイミングがやって来ていた。


データ収集

この問題に気付いたタイミングは偶然にも、SparkFunのフリーデータサービス、data.sparkfun.com (Phant)がローンチしたタイミングと重なっていた。

もしまだ知らなかったら、こいつはデータ収集と収集したデータの操作を行うための素晴らしいツールだと思って欲しい。

我々が用意したチュートリアルPushing Data to Data.SparkFun.com tutorialを元に、DS18B20温度センサー防水DS18B20温度センサーRaspberry Pi B+に接続した。

防水センサーは水槽の中にいれられ、もう一方は室温監視用に水槽の横にアタッチされた。

2つのセンサーから収集された温度データは、ハッカースペースのネットワークを介してdata.sparkfun.comへ送られた。

raspi_1

送信された生データは参考にこちらに置いてある。

また、機能を実現させるために使用したPythonコードはこちらのオリジナル記事中程で見れる。


データの視覚化

phant.ioで見つけられるドキュメントを利用して、自分のWordPressサイト上に、水温と室温を表示するGoogleチャートをHTMLページとして公開する事が出来た。

チャートを見ると、予想した通り温度はとても不安定だった事が明らかになった。

SSD_Stats_08_08_14-09_08_142014/8/8〜2014/9/8の水温(華氏)

大抵の熱帯魚にとっては、水温75°F〜80°Fが最適であるところ、プロジェクトの水槽では最高87°Fから最低67°Fまでとかなり不安定である。

SSD_Stats_High

SSD_Stats_Low

この水温変動の主な理由のひとつは、一日の中でかなり変動する室温だった。

室温チャートをグラフに追加すると、水温への影響は明らかに見てとれるだろう。

month_without_PIID

室外の気温は下がり始めているにもかかわらず、ハッカースペースは南向きであり西日による熱気がしぶとく残っていた。

上手く水温をコントロールする手段を早く考えなければならなかった。


問題解決

この熱気に立ち向かうために、僕は2台のコンピューターファンを水槽の裏に設置した。

初めはテストでテープでアタッチして、後にもっとしっかりと恒久的に固定出来る様にした。

fans_1

初めは、24時間電源を点けっぱなしにしていたが、夜になると水温が下がり過ぎてしまった。

ヒーターとファイン両方を点けっぱなしにするのは無駄である。

そこで、別の解決策を考えた。

あるSparkFunユーザーがPIDコントローラーを使っていたのを思い出した。

聞き込みとリサーチをして、SCT-1000 PID from Amazonにたどり着いた。

こちらのチュートリアルを元にオリジナルのPID温度コントローラーを完成させた。

このPIDコントローラーの最大の売りはもちろん、ヒートアップとクールダウンの両方に対応している事だ。

電源アウトレットは、ヒートアップ用に”H”、クールダウン用に“C”とラベル付けした。

PID_2

PIDコントローラーをセットして、効果はどんなものか楽しみに待った。

データはウソをつかない。

水温は安定化した!

SSD_Stats_08_07_14-11_06_14

予想通り、室温がどれだけ変動しようと水温は73°F〜76°Fの間で安定する様になった。

問題は解決されたと言う事だ。

all_chart2_data_for_comparison

水槽の水温はそれ以来安定し、魚達の生活の質は向上した。

また、温度のライブデータはこちらから閲覧可能となっている。


さらなる高みをめざして

data.sparkfun.comにデータを送り、それを視覚化すると言う仕組みの土台は出来上がった。

新たなデータを見つけ検証すると言うプロセスは数行のコードで可能となる。

現在は、自分のホームシステムをPhantに上げて温度とpHを監視するシステムを構築している。

これを通して、オープンソースのオールインワンアクアリウム監視ソリューションを開発したいと思っている。

監視データの時間経過を表示出来る様にして、Raspberry PiにPIDコントローラーを制御させる。

全て必要なものをひとつのデバイスに搭載したオールインワンシステムだ。

それを実現出来る日が来たら、もちろん電子工作と水槽を愛するみんなとシェアするつもりだよ。

最後まで読んでくれてありがとう!


この記事の原文はこちら

https://www.sparkfun.com/news/1641

Comments are closed, but trackbacks and pingbacks are open.