- 2009-06-07 (日) 22:58
- arduino

今回は、XBee シリーズ1をDigiMesh化して、メッシュネットワークを使えるようにした。
Xbeeとは?
まず、XBeeとはなんぞや?ということだが、以下のような特徴のある無線モジュールである。
- 低消費電力
- 低コスト
- 近距離無線通信
- 多彩なネットワーク構造(スター型、クラスタツリー型、メッシュ型)
- TELEC認証済み(?)
XBeeの種類
XBeeはIEEE802.15.4の製品であるシリーズ1とZigBee製品であるシリーズ2とに大別できる。
このうち、スイッチサイエンスやストロベリーリナックスなどで気軽に購入できるのは、すべてシリーズ1になってる。
では、シリーズの違いは何なのか?
これについては、IEEE802.15.4/ZigBee無線モジュール XBee:Under Power 研究所:So-net blogが一番わかりやすい。(というか、xbee全般で)
もっとも、注目しなければいけない点は、以下の2つではないかと思う。
- 使用できるネットワークが異なること
- Zigbeeはライセンスが発生すること
実際、商用を考えていく場合、高いライセンス料金の発生は勘弁してほしいので、シリーズ1の使用が望ましい。しかし、その場合は、zigbeeの最大の良さであるメッシュネットワークが使えないということなのである。
このへんが、正直シリーズ1を買ってみたもののがっかりした点だ。
DigiMeshの登場
では、XBee シリーズ1でメッシュネットワークが本当に使えないのかということだが、実はDigiMeshなるメッシュネットワークプロトコルが存在している。
DigiMeshは、優れたネットワークの性能および、配備の容易さとスケーラビリティを併せ持ちます。本製品は、無線センサネットワーク、ビルオート メーション、タンク監視のような電池駆動するネットワークが要求されるアプリケーションにおいて、他のメッシュネットワーキングプロトコルの特有な制限を 克服するように設計されたものです
つまり、DigiMeshを使えば、zigbeeを使うことなくメッシュネットワーク機能が使用できるのである。
シリーズ1をDigiMesh化
説明が長くなったが、そろそろ本題へ。
シリーズ1をDigiMesh化するのは、実は簡単。
というのも、X-CTUでDigiMeshのファームウェアを手持ちのXbeeに書き換えるだけである。
自分の環境では、かなり前にwindows上で実行したが、その際一度目の書き込みではエラーになったが、2度目の書き換えでうまくいった。
肝心のファームウェアは、Firmware Upgrades – XBee DigiMesh 2.4 OEM Module – Technical Support – Digi Internationalからダウンロードできる。
X-CTUへの反映は、ファイルを解凍してできたファイル群を Program Files/Digi/XCTU/update以下にコピーすればX-CTUから選択可能となる。
あとは、Modem ConfigurationでWriteしてやればよい。
ちなみに、DigiMesh化したXBeeはこんな感じの設定画面が出るはず。

最後に
そもそも、メッシュネットワークにこだわる理由は一つ。
屋外で、構造物などによって物陰に隠れてしまう無線信号でも自立的にネットワーク網を構成させたいという切なる思い
である。仕事上そういう環境が多々あるもんで、そういう状況をXBeeは解消してくれるんじゃなかろうかと期待してる。
あと、話は戻るが、DigiMesh化しても通信できなかったら意味ない。これについては、digiから公式にマニュアルが出てるので、そちらを参考にすればOK。(コマンド含めてすべて記載されてる)
次は、このDigiMesh化されたXBeeを使ってarduinoで通信した結果を書いていく予定。
<追記>
ファームアップデートは、今はリセットが必要となるようなので、そのへんを了承の上、注意してやってください。
詳細は、XBeeのファームウエアアップデート大作戦:Under Power 研究所:So-net blogを参考にどうぞ。