xbee無線 透過モード

Xbee の透過モードでArduinoの温水器コントローラーからデータを読み出そうとしていますが、文字落としがあり、なかなかうまくいきません。CTS (clear to send)ピンをArduino側でチェックするようにしたのですが、何かが間違っているようで、wait がかかりません。Xbeeのデータの送り方の設定ももう少し変更することが必要なのかもしれません。
結局今のところ、一行データを出力するごとにdelay()を入れるようにしてごまかしています。delayは150ms程度も入れないと文字落としが発生してしまうのでかなりいまいち。
まあ、データを読み取れないよりはいいので、またの研究課題、ということにしておきます。

コントローラーとの無線接続

xbee zbを2セット購入したままになっていましたが、一念発起して、Arduinoで作成した太陽熱温水器コントローラーに接続をしました。
ハードウェアの接続は、xbee shield という売り物のボードの回路図を拾ってきてそれを真似してつくりました。
ArduinoのシリアルRX/TXにXbee zbの出力ピン(#3)はそのまま、入力ピン#2は3.3V/5V 電圧変換のために、12k/18kオームの分圧をして接続しました。電源は、SDシールドで5Vから3.3Vを作ったのが少し電力も余っているだろうということで、そこからおすそ分け。Xbeeの実装もSDシールドについている、IC基板面に実装しました。一応xbee shield の回路をまねて、ジャンパピンを差し替えることで、xbeeとの接続を切り離したり、USB側から直接xbeeに通信をしたりできるようにしました。実はこれができないと、モデムの設定が難しいですので絶対に切替が可能なように実装すべきでした。
ソフトの方は、xbee の設定があまりWebを検索してもわかりやすくはなく、少し苦労しました。
現在のところ、PCにドングル形式で刺したxbeeはcoordinator として設定し、PAN IDは0以外の値を設定、destination address high/low (DH/DL)は温水器コントローラー側のaddressに設定。温水器コントローラー側は、end device の設定で、PAN IDはcoordinator と同じ値、DH/DLはcoordinatorの値に設定して通信ができています。
通信できてはいるのですが、フロー制御なしで通信を行うと、xbeeの処理が間に合わないようで文字を飛ばしたりするようです。ボーレートはこれまで、57600bpsで行っていたのですが、間に合わないということで、9600bpsに落としましたが連続的に通信をさせるとそれでもだめなので、どうも、フロー制御を入れないと使い物にならなさそうです。SDに書いたデータのダウンロードはそんなわけでまともにできません。
まあ、リモートからでもコントローラーの制御ができるし、現在の動作状況を読むことは全く問題がないので、つけてよかった、とは思っていますが。少しソフトの改良は必要そう。
Arduinoのdigital IO ポートはまだ2pin 余っているので、データのダウンロードについては、cts の監視をするようにしたらよさそう。または、何らかのチェック付きファイル転送プロトコルを実装するのがよさそうです。たとえば、kermit? バッファーが80bytes しかxbeeにないようすなので、この範囲内にパケットが収まるように設計するのがよいと思うが、こんなに小さなパケットの転送プロトコルってなかなかない。
参考リンク
http://www.techand.jp/Digital/Arduino/Sensor-Net/Sensor-net.html
など。

太陽熱関係買い物・調べもの

また、太陽熱温水器の準備を口実に買い物しました(一部はまだ届いていないけれど)。
Arduinoのコントローラーを作りましたが、USBケーブルをいちいちPCにさしてデータを読むのは面倒だし、データのリアルタイム表示やら、プロットなどもしてみたいので、無線でつなごうと思いました。
そこで、
スイッチサイエンスでXbee の無線モジュールを2台と、PCにつなぐためのUSBインターフェースを1個買いました。片方のXbeeモジュールをコントローラーのIC基板に取り付けて、無線モデムとして使うつもりです。
諸々合わせて7000円弱だったと思います。
また、温水器を給湯器の系統に組み込むために、ミキシングバルブも購入しました。これは香港から送られてくる予定。1個3500円ほど。
MMCソーラーというところで、同様のバルブをセットで12000円で売っていますが、大幅に安いです。もちろん、バルブを組み込むためには他にもいろいろと必要なのですが、それも安いところを探して自分で構築してみようと思っています。
温水器関連ではあとは、蓄熱漕にするのに、ポリプロピレンのタルやら、ステンレスのドラム缶やらの値段を調べたりとか、いろいろ。
アメリカの人たちがよくやっているように、EPDMの遮水シートを使って、木枠で組んだ断熱の入った蓄熱漕をつくろうかとも思っていましたが、やっぱり人がやっているやり方をただまねるのは面白くない。ドラム缶やらタルやらで水を溜め、断熱はその外に簡単に断熱材を巻くだけで安さ爆発を追求するかもしれません。いずれにせよ、総工費をExcel等で積算やって検討をするつもりです。

箱に入れる

コントローラーは、いい加減なタッパーに放り込んでありましたが、充電器をコントロールするためにAC100Vをスイッチしたりしているので、安全保護のために、配線に端子盤を経由するようにし、また、途中にフューズも入れました。太陽光パネル関係、バッテリー関係、AC100V関係それぞれにフューズが入るようになりました。また、箱も未来工業のウォールボックスに取り換えました。これで安心かな。
DSC_0697 (2).jpg
 ソフトウェアも少し見直して、バッテリー電圧、太陽光パネル電圧、集熱器温度、蓄熱漕温度、外気温度、コントローラー温度、気圧をポンプや充電器をコントロールしつつ記録できるようになりました。
これでしばらく運用してみようかな、と思っています。

ポンプ届いた

1/14 に米国の店にネットで発注したDC12Vポンプが届きました。米国郵便でニューメキシコから届きましたが、今日が1/23なので、10日足らずで届いたことになります。速いねえ!送料も2個で10ドルだったので、なんだかお得な感じです。(ネットでは2個発注すると、2個で1回分の送料なので、10ドル返金されました)。
今、円高なこともあって、海外からのネット通販はお得な感じがします。
八王子、新橋、埼玉と雪が降っているようですが、当地では雨。こんなに近くで雨雪が違っていると不思議な感じがします。
集熱板の実験は続いていますが、ここ数日天候がすぐれないので、配管を変更した効果が検証されるようなデータどりができていません。