やっぱり手が届くような感じで欲しいってことで……
自作を検討してみます。
仕様の策定
本来だと仕様を策定しないといけないんでしょうけど、めんどくさいので、仕様を決めず、逆をやっていきます。
逆ってなにかというと、良いとこどり。せっそうなく追加していく予定です。
機能的要求と非機能要求
機能的要求ってのは「実際の動作そのもの」の要求です。例えば、「温度を測定したい」とか「最大値、最小値を記録できること」とか「グラフになること」
「スマフォでアクセスできて管理できること」などです。
非機能要求ってのは、実際の動作とは違う要求です。例えば、「拡張性がある」とか「消費電力が少ない」とか「メンテナンス性がいい」とか。
で、簡単に考えると、
「記録が残ってほしい」「スマフォ」「ブラウザアクセスできるといい」
ってことで。もちろん仕様はないので、機能的要求だろうが非機能的要求ってのも存在しないわけでして。
あえて言うなら、プラットフォームとし存在しててほしいってことで。
ハードウェア周り
本来だと、仕様を決めてそれに合うハードウェアを考えます。色々考えられます。まずは両極端で行きます。- PCベースのプラットフォーム
- CPU付属のマザーボードが比較的格安で売っています。これを流用すると、非常に高機能なのが作れます。
- 開発機能としては、通常のPCと同じ、あるいはオープンソースのLinuxなどが利用できます。
- 欠点、注意点として、センサーなどを直接つけるためには USBなど経由でないといけない。消費電力が高い。HDDなどのPC用の機材の用意が必要となります。
- マイコンチップ
- AVRやPICなどのワンチップマイコンがあります。秋月電子などで1チップ百円程度からあります
- 開発機能としても、C言語やベーシック、C++などが利用でき、アセンブラなど低級は必要ではありません。
- 欠点として、回路を作りこまないといけない、スマフォ連携などネットワークの場合、かなり大がかりになります
この後のは、マイコン側からPCベース側へ
- Arduino 環境
- 上記マイコン+開発用環境を用意したプラットフォームになります。プラットフォーム化されているので、ネットワーク用のボードなどもあります。
- 回路部分が整っており、マイコンほど回路作成の必要がない
- 欠点として、色々なものを追加していくと比較的値段が跳ね上がります。またプログラム・データ容量が少なく大規模なものになる場合不足するかもしれません
- mbedなどARMマイコン環境
- Arduino環境と近いですが、ARMマイコンと、かなり高機能です。プラットフォーム化された中に、USBなどもあり、場合によっては市販の無線LANアダプタなども使用できます。
- 回路設計も、Arduinoと同等レベルになります。
- 欠点として……、絶妙な位置にいるので、面白い環境です
- 組込みLinux BeagleBoneBlack や Raspberry Piなど
- 価格的には5千円を切っています。その上で、通常のLinux(ARMコア用)などが動作しています。つまり、低価格PCのような環境となります。電源、USB無線アダプタなどを追加すれば、そのままWEBサーバやデータ共有もできます。また、Arduinoなどと同様に回路作成は比較的すくなくて済みます。
- 開発環境も、そのままPHPやPerlやRuby、C言語などを含め LAMP環境やその他Unixサーバ環境が使えます。
- ただし、メモリが512Mしかないこと、CPUクロックも500M程度と比較的弱いです
ここまで書くとわかると思いますが…
「PCベースプラットフォーム」か「組込みLinux BeagleBoneBlack」となります。
温度関係機能
温度を測定する方法に色々あります。センサータイプと視認タイプがありますが、出来ればセンサータイプでいきます。温度センサーには、アナログで温度が出てくるものがあります。例えば 25度のとき 3.2V で1度変わると、0.01Vの電圧変化があるものです。マイコンで電圧が測れれば、何度かわかりますが、ちゃんとマイコンで電圧を測らないといけません。
マイコン、コンピュータは ON/OFF を比べるのは得意です。例えば0Vか5Vとか、0Vと3Vかとか。しかし中間値は扱いにくく、例えば 3.2V を OFF OFF OFF OFF 3.21Vを OFF OFF OFF ON 3.22V OFF OFF ON OFF のように複数のスイッチに合わせて数値化する必要があります。これをアナログデジタル変換といいます。温度センサーに、デジタルタイプもあります。
温度センサー側で、温度を測り、デジタルにして情報をながします。 25度だったら OFF ON ON ON OFF のような ON/OFFの連続データを流し、コンピュータで判断します。
アナログ式だと、途中の電線でノイズが乗ると温度が変わります。よくスマフォとかをスピーカーの近くに置くと、「ガガッ」って音が出たのと同じです。ガガってのが、電圧の変化です。モーターも同じようなノイズを出しますので、アクアのポンプがノイズを出しかねません。となると、温度が変化することになります。対策すればいいんですけどね。
デジタル式だと、途中の電線は ON か OFF でしかないので、極端に大きなノイズでない限り、反映されません。また温度計側で、エラーチェック用の信号を追加しています。
例えば 25.4 度 だとすると 温度センサー側で 25.4 度で 全ての桁をたすと 2+5+4で 11 ですという意味を含めて 25411 という数字を送ります。当然、これが ON/OFF に変わりますが、もし送る過程でノイズが乗り 25611 という数字に変わっても、コンピュータ側で 2+5+6 = 13 なので、11とは違う、つまり、間違いってことになります。
なので、デジタル式のセンサーが使えると、自分で作る場合には楽になります。
逆に大量生産するのであれば、アナログセンサーの方が安い、かつ、工業製品レベルでノイズ対策ができるので、安くできます。
今回は、デジタル式です。ちなみに、デジタル式=1個 300円、アナログ式=1個 100円程度の差です。
さらに、センサー=裸です。防水対策をしないといけません。
色々な方法があるのですが、なんと Amazon に 防水型のデジタル温度センサー(配線込)が 1個 464円で売っていました。1個300円のデジタル式を自分で防水加工するよりすごく楽です。
さらに、このデジタル式センサーだと、複数個を同時に使えます。普通だったら、アナログ式のセンサーを、コンピュータに複数個取り付ける口を用意して接続しないといけませんが、デジタル式のこれだと、1つの口で、複数個測れます。
凄く便利です。
最後に、視認タイプを…
これは、力技です。WEBカメラで、水温計を写し、赤色の部分の長さから温度を測定するタイプです。これ、実はいろんな応用方法が考えられます。水位計にも使えます。あるいは、比重測定にも使えます。
ただ、メンテナンスが大変になるとおもいます。
温度計にコケがついて温度が見えなくなると測定できない=>温度計掃除をしっかり
比重計にコケ、カルシウムが付くと、見えない、誤差ができる=>比重計のメンテナンスをっかり
ただ、これだとついで(?)に生体の動画も記録できます。
(沢山、写真を付けようかと思ったのですが、Amazon のアフェリエイト画像の使い方がわからなかったので、文字だけですいません)
はしさんこんばんわ(^-^)/
返信削除難しい~_~;
僕にはちんぷんかんぷんな話しです・・・
凄いのが出来そうですね
りゅうちゃんさん、コメントありがとうございます。
削除最初はチンプンカンプン、でも、やってることは単純でやっていきます。
Yes、DIY、No、加工でできるだけやりたいので、もしかすると
りゅうちゃんさんもマネできる(コピペできる)用にするかもです。
で、最初はやっぱり温度計からかなと。
こんばんは( ´ ▽ ` )ノ
返信削除はしさん…日本語に翻訳してもらっても良いですか?笑
うーん、見事にちんぷんかんぷんでしたorz
あぁ、仕事忙しくて水換えする時間が…
また2日ほど放置になってしまいそうです(^_^;)
やすさん、コメントありがとうございます。
削除日本語にですか?ひらがな語とカタカナ語がございますが、どちらがいいですか(笑)
あ、最初は難しいんです。でも簡単になります。たぶん。
水換え2日放置って、どんだけ頻繁に交換してるんですか?
うちの交換は、横にグラフあるので、見ていただければわかりますが、10日ほど前に8Lとかです(^^;掃除すると 30Lとか交換するときありますが。
60規格水槽と30cmハイタイプ水槽の連結なんで 多くても 100L、たぶん80Lほどの全水量ですので、1割交換とかですかね?
こんにちは
返信削除はしさん、電気に詳しいんですね!!
因みにアナログセンサーは非常に狂いが大きくて使い物になりませんね。
Arduinoなんかは何の事だか、さっぱり分かりませんが、私はAVRでデジタル温度センサーを使って、データはSDカードに記録しております。データを見る時はその記録したSDカードのデータを読み取ってグラフにするPCアプリケーションを使ってます。
回路からPCアプリケーションまで全て自作になりますので手間が掛かりますが、自分のニーズにピッタリ合った妥協を許さない最高の物が作れますよ!!
はしさん、遅くなりましたが
リンク貼らせてもらって良いですか?
狩人さん、こんにちわ。コメントありがとうございます。
削除電気詳しいっていうと、詳しい人に失礼なのほど血肉にはなっていません。花嫁修業程度で嗜む程度です(あ、自分は男性です(^^;)道具は全く持ってなくて、オシロスコープとかそんなのもないです。
アナログセンサーは、大変そうなのであんまりやりたくないです。
誤差が大きいのですね。避けたのは良い判断だったかもしれないです。
狩人さんは、どんなセンサーつかっているのでしょうか?確か防水とかも自分でされていませんでしたか?
Arduino は ATmega8 などの AVR に 水晶発振器、USBシリアル変換を装備したマイコン基板です。さらにATmega8 には ローダーが初めから書き込みされているので、USB経由で容易にプログラム書き換えができます。また、色々なライブラリが揃っていて、比較的簡単にプログラムができます。それでいて2,000円台の価格から手に入るので、入門機としては良い感じです。
SDカード記録いいですね。うちは、PCに持ってくのが面倒だと思ってるので、ネットワーク経由でと考えています。
自作のいいところは、かゆいところに手が届くだとおもいます。
あ、リンクありがとうございます。是非お願いします。
また、こちらかも張らせていただきます。
狩人さん、コメントありがとうございます。
返信削除センサー情報ありがとうございます。同じものでした。今見ると在庫なしでした。
アナログタイプは色々めんどうなので(デジタルの場合もですけど)デジタルでやります。必要ポート数増加を抑制できますし。
どうしても 1wireで、i2cやSPIに比べると周りのサポートがなくて、地道に使わないといけませんね。
あんまり、調べたくないので、下回りでサポートされていること前提で考えていきます。(ちなみに Arduino で上記センサーを使う場合の例を新しく記事にしました)