風センサーを作ります。仕組みはなるべく単純に。風鈴タイプにするか、ロータリーエンコーダに垂直軸風車を付けるか。ATmegaの割り込みでカウントして単位時間当たりの値を保持。
今のベランダ気象台のArduinoとi2cかSPIで接続できるようなデバイスに仕立て上げます。3軸ジャイロセンサーが1個あったのでそれを風鈴的にぶら下げるのもありかもなぁ。こういう事をしがらみなく考えてるのが楽しいですね。
「Make」一覧
ベランダ雨センサー設置
XBeeのEndDeviceモード。28*2秒起きにデータを投げつけてきます。自宅では初のプッシュ型センサーです。電池駆動なのも自宅初です。単4アルカリ電池3本の4.5VをLDOなレギュレータで3.3Vにして利用。電源の電圧は約5分に1回のcosm(旧pachube)へのデータアップロードのタイミングでホスト側XBeeからリモートATコマンドで確認しています。意外と電池は持つのかも?
全くもってローテクですが、サンハヤトのくし型のシール基板をセンサーに使用。金フラッシュなので、電気分解や腐食にいくらか耐えられるかと。土台にはブレッドボード基板を使用。どちらもパターンが丁度良いのですよ。
雨センサーは他にもセンシングの方法を考えており、
・交流導通センサー(腐食防止の為)
・静電容量センサー
・いわゆる気象雨量計の転倒ますタイプ
・濡れると色が変わるものをカラーセンサーで検知(夜とかこまるけど)
などと検討してます。雨が降ってることを検知するのって意外と大変かもと思う今日この頃。
工作ネタペンディング状況
現在抱えてるペンディングネタは以下
- XBeeのEndDeviceでinterval sleepにしてリモートセンサー&それを受けるホストArduino。
- Pachube(cosm)の代わりになるものを自前で構築。
- Harpy nanoとAndroidをUSB Bluetoothドングルで繋ぐ。そしてそれをgatewayにしてXBee通信をAndroidで
携帯端末にZigBeeプロトコルが載る可能性はあるのだろうか(笑)?bluetoothでさえまだまだまだだもん。ZigBee普及に家電メーカーに頑張って欲しい。
XBee Eheim2074モニター完成
ブレッドボードで試してたXBee エーハイムモニターを基板に固定化しました。ケースはテンポラリ。プログラムサイズが小さかったので、CPUは余らしているATmega168Pを使ってます。
今回のミステイク、
1.秋月のスルーホールC基板を使ったのだけど、裏返しに使っていしまった事。スルーホール両面基板だから特に問題はないですけどね。ガイドの5 15 25の5ピンごとのシルク印刷が見られないだけ。
2.XBeeとのrx,txの接続が逆だった事。SoftwareSerialでの接続だったのでプログラムでピンを入れ替えて修正はできたけども、今回5VのATmegaとの接続かつATmegaのTX側の分圧抵抗レベルシフトのみだったので危ないところでした。まぁ、前にも5VをXBeeに入れることはやらかしてて短時間なら大丈夫な事はわかっているので結果OK。
今回の工夫、
1.SoftwareSerialでxbee-arduinoライブラリを使用した事。
2.マルチカラーLEDを使ってプログラムの動作状態を把握できるようにした事。
ハードウエアrx,txはRS485に取られているしSoftwareSerialの1個しか使えないRXも使われているので楽ちんななUSBシリアルのモニターはつかえませんから。コマンド待ち、エーハイムデータ受信中、データ送信中で赤・緑・青に光らせてみました。
今回利用した秋月DIP化基板は3つ。XBee基板とオーディオピンプラグ基板とUSBminiメス基板。どれもサイズが大きめなので、C基板だと手狭になってしまい配線に苦労しました。あと、スルーホールはハンダがリード線をたどって裏側に流れてしまうのがちょっと厄介ですね。隣のホールをはんだブリッジしたいのに全然つながらない事があります。裏をみると大変な事になってたり(苦笑)。
このエーハイム外部フィルターのモニター基板は、ハードウエア的にはこれで打ち止め。ソフトウエアは改良して、外部フィルターへ設定変更コマンドを送信出来るようにソフトウエア面の改良はしていきます。
エーハイム2074モニターXBeeプロトタイプ版
ArduinoのSoftwareSerialでAPIモードのxbee-arduinoライブラリによるXBee通信ができたので、エーハイムの外部フィルターと無線接続を試してみた。
4/28の実験ブレッドボードにRS485の回路を設置。ハードUARTのRX,TXはRS485に使ってしまうので、USBから電源は取れない。sparkfunのブレッドボード用電源を追加。
ソフトは、ArduinoEthernetで動かしてたヤツのネット部分を外してXBee部分を追加。動作確認用のmbed側はリターンデータの解釈の部分の変更のみ。
で、相変わらずtxとrxを逆に繋いでたりといった凡ミスを経てすぐに動作しました。大したことしてないしね。自分の使い方みたいな少量データならばSoftwareSerialでXBeeを使うのもありですね。UARTでやるのと消費電力的にどれくらい違うですかね?まぁ、Ethernetを使うと消費電力は(マイコン的には)超増えるからどっちがお得かわからんです。
連休後半の雨の時に、秋月C基板かスイッチサイエンスのXBee対応C基板でハードウエア固定化しますかね。
で、ATmega644P。こいつで同じ事をする(シリアルは、2つあるUARTを使いますけど)テストもしてみますよ。どうやらArduinoのご先祖のWiringが644Pだったりするのですので情報調査します。