上記の図の事をやるべく午後作業。
肝は異なるPANIDのXBee2つをゲートウエイする事。
ATmega328PにはUARTは1つしかないので、それはRAINセンサのpushを受けるXBeeに使う。
で、もう一つマスタコントローラからのデータ要求を受けるXbeeはソフトウエアシリアルにて実装。xbee-arduinoのライブラリのRelease 0.4 (beta)でソフトウエアシリアルに対応してる。
で、いろいろ試行錯誤した挙句、Aruduino1.0以降の標準ソフトウエアシリアルでは動かす事が出来なかった。xbee-arduinoのRelease 0.4で使用推奨のAltSoftSerial Libraryを使って無事正常動作。このAltSoftSerialはピンが8,9と決め打ちだが、他のピンは別途Aruduino1.0以降のSoftwareSerialでの併用が可能。それはデバッグ用のコンソールに使用した。printfデバッグを馬鹿にする人がいるけど、printfすら出来ない環境だと、1ポートにLEDつないで点滅パターンで判断とかしたり苦労するので、printfが出来るのは大事。Arduinoだとprintfではなくprintだけど。
AVR Dragonも購入したのでdebug wireでのデバッグも試してみたいですね。
基本的な動作は確認出来たので、実機に移すべくベランダ気象センサの実機のソフトウエアを変更です。雨センサのコーディネータのXBeeは、今はXBeePROにRPSMAアンテナを付けて室内にあったのだけど、ベランダに設置になって距離も近くなるのでチップアンテナのXBeeに入れ替えたい。コーディネータを入れ替えるので雨センサ系のXBee ネットワークの再構築作業も入ります。って然るべきコマンドをXBeeに送るだけだと思うけど。
でも、よくわかららなくてPAN IDを変更しました(苦笑)。コーディネータのリセット方法は今後の課題だなぁ。あと、PushタイプのioSampleで、送信先をコーディネータでなく特定のアドレスのXBeeへ送る方法が無いか調べたい。そうすれば1つのネットワークにまとめられて、気象センサ兼ゲートウェイのXBeeも1つで済むから。
んで、夜にマスターコントローラのmbedのプログラムを改修して対応しました。これにて一旦落着ですね。雨センサの精度はおいておいて。結露センサを買うか、転倒ますにするか。転倒ますだと大掛かりかつ常にカウントしてないと行けないのでそのIC類の電源をどう確保するかが鍵です。
次はクリスマスイルミの基板作成に戻ります。
コメント
ゆきです。
ご返信、ありがとうございました。
ばりばりの東京人ですよ~
こんなWebページを作ってみました。(日本人用です。。)
http://aquamonitor.blog.fc2.com/
もし、お時間あれば、遊びに来て下さいね~
コメントもいただけると嬉しいですね。
ゆきさんこんにちは。
AquaMonitorのページは以前見たことありました。日本人だったんですね。
こんにちは!ゆきと申します。
サイト拝見しました。Arduinoやアクアリムの趣味など共通することが多くてとても興味があります。
私はAquaMonitorというiPhone用のアプリを開発したり、ArduinoMegaとセンサー(PH、ORP、比重、酸素)を使って、iPhone用アプリから測定値をみれるような仕組みを作る活動をしています。もし、よろしければ、情報交換したいですね。
もし、よろしければ、ご連絡下さい。