XBeeServer: XBeeを無線センサとして使おう |
作成日: 2010/07/18 最終更新日: 2010/07/18 |
◆はじめに | ||||
ここでは,Digi International製の無線通信モジュールXBeeを,無線センサとして手軽に扱うためのミドルウェア「XBeeServer」を紹介します. XBeeは,IEEE 802.15.4に準拠した小型の無線通信モジュールです(図1).パソコンとUSBなどで接続して,ファームウェアを書き換えることで,「ピアツーピアの無線シリアル通信モジュール」や「メッシュ/スターネットワークを形成するZigbee 互換の無線センサモジュール」として利用することが可能です.図2に,無線センサシステムとしてXBeeを利用する様子を示します. XBeeServerは,XBeeを無線センサモジュールとして使う場合に焦点を絞り,XBeeデバイスの動作状態を確認できるGUIと,TCPサーバーを一体化したソフトウェアです(図3).Xbeeデバイス(に接続されたセンサ)の状態は,TCPソケット経由でシンプルなテキストメッセージとして手軽に取得できます. ちなみに,筆者らは実験住宅「OchaHouse」に多数のXBeeモジュールを設置し,XBeeServerを用いてこれらを制御することで,ユーザの大まかな行動範囲の検出/記録などを試みています(図4). MobiServerで紹介するさまざまなミドルウェア群と組み合わせることで,実世界のさまざまなデバイスをシンプルな方法で手軽に扱うことが可能です. | ||||
|
||||
|
||||
|
||||
|
|
◆ライセンス |
プログラムのソースコードは修正済みBSDライセンスに従って配布します.完全に無保証です. |
◆インストール |
XBeeServerを実行する前に,Microsoft .NET Framework の 再頒布パッケージ (23.7 MB) をインストールしておく必要があります. また,下記,XBeeデバイスの初期設定に従って,XBeeデバイスの設定してください.
これらのインストールが完了後,XBeeServer.zipを解凍し,XBeeServer.exeをダブルクリックすればプログラムが起動します. |
◆XBeeデバイスの初期設定 | ||||||||||||
XBeeServerを利用する前に,上述のX-CTUを用いて特定のファームウェアをXBeeデバイスに書き込んでおく必要があります.ここでは,基本的なX-CTUの使い方と,XBeeデバイスの初期設定について詳しく説明します. | ||||||||||||
0. XBeeデバイスの入手 | ||||||||||||
まず,XBeeデバイスの入手について説明します.XBeeデバイスには,大きく分けて「802.15.4モジュール(Series 1)」と「ZNet2.5モジュール(Series 2)」 の2種類が存在します(※).後者は,ZigBeeと同様のメッシュ型ネットワークに対応しており,各モジュールがルーター(中継器)としての役割も果たすことで,広範囲の通信を行えることが特徴です.現時点では,XBeeServerは 「ZNet2.5モジュール(Series 2)」 のみに対応しています. 「XBee ZNet2.5モジュール(Series 2)」は,SparkFun(Chip Antenna/Wire Antenna)や,国内代理店であるスイッチサイエンス(Chip Antenna)から3000円弱で購入できます(2010年6月現在).XBeeServerを利用するためには,ホスト側/センサ側に最低1台ずつ,2台以上のXBeeデバイスが必要になります. |
||||||||||||
1. XBeeの接続とX-CTUの起動 | ||||||||||||
まず,ファームウェアを書き換えたいXBeeデバイスをパソコンに接続します.XBeeを評価キットとして購入した場合は,図5に示すような付属ボードを用いてパソコンに接続します.XBee単体で購入した場合は,図2 左に示すようなXBee Explorer USB (Sparkfun/スイッチサイエンス)を利用すると簡単です. XBeeデバイスの接続が完了したら,X-CTUを起動します.図6にX-CTU起動直後のスクリーンショットを示します.
|
||||||||||||
2. ポートの設定 | ||||||||||||
まず,提示されているリストから「USB Serial Port (COM[xx])」を選択します(図7).※[xx]には環境によって異なる数字が含まれます. 次に,画面中央部のチェックボックス「Enable API」の状態を確認します(図8).このチェックボックスは,XBeeに書き込まれたファームウェアに応じて選択/非選択を変更する必要があります.一般に,初期状態ではチェックを外し,下記で説明するファームウェアを一度でも書き込んだ後はチェックをつける必要があります. 最後に,XBeeデバイスとの接続状況を確認するために,「Test/Query」ボタンを押します(図9).接続に成功した場合は,「Modem type」「Modem firmware version」がそれぞれ返されます(図10).これらの値が正常に取得できない場合,XBeeデバイスを再起動(UBケーブルを抜き差し)したり,上記設定項目を確認してやり直してください.
|
||||||||||||
3. ホスト側デバイスの設定 |
||||||||||||
ここでは,パソコンにUSB経由で接続するホスト側(Coordinator)のファームウェアの書込方法について説明します.まず,画面最上部のタブ「Modem Configuration」をクリックします(図11). 次に,Loadボタンをクリックし,ホスト側設定ファイル「coordinator.pro」を読み込みます(図12).ファイルは左記リンクからダウンロードするか,XBeeServerの実行ファイルの「firmware」フォルダを参照してください.読込が成功すると,「Modem: XB24-B」「Fuction Set: Znet2.5 Coordinator API」と表示されます(図13). 次に,Networking→PAN IDを任意の数字(1〜255)に変更します(図14).基本的には,ホスト側/センサ側のPAN IDを同一にすればよいのですが,複数のXBeeネットワークが存在する場合,重複しない値を選択する必要があります. 最後に,画面左上の「Write」ボタンを押すことで,ファームウェアの書込を実行します. |
||||||||||||
|
||||||||||||
4. センサ側デバイスの設定 | ||||||||||||
ここでは,センサ側に接続するXBeeデバイス(End Device)のファームウェアの書込方法について説明します.まず,XBeeデバイスを差し替えて上記1〜2の初期設定を行った後,画面最上部のタブ「Mdem Configuration」をクリックします. 次に,Loadボタンをクリックし,センサ側設定ファイル「enddevice.pro」を読み込みます(図15).ファイルは左記リンクからダウンロードするか,XBeeServerの実行ファイルの「firmware」フォルダを参照してください.読込が成功すると,「Modem: XB24-B」「Fuction Set: :Znet2.5 Router/End Device API」と表示されます(図16). 次に,数カ所の設定を変更します.最低限変更する必要がある箇所は,「PAN ID」「I/O Sampling rate」「I/O Port Settings」の3点です.
|
||||||||||||
|
1. 初期設定 |
まず,画面右下の「アドレス指定」コンボボックスから,XBeeデバイスの指定に用いるアドレスを「シリアル番号」「ネットワークアドレス」のいずれかから選択します.ネットワークアドレスの方が短く扱いやすいのですが,センサ側デバイスのファームウェアを更新する際に書き換わってしまう可能性があるため,「シリアル番号」を用いることも可能です. ポート設定の変更も監視するをチェックしておくと,XBeeServerが起動中にセンサ側のファームウェアが書き換えられ,I/Oポートの設定に変更があった場合に,デバイスのGUIの状態を動的に変化させることができます.特に不具合がなければ,チェックを入れたままで構いません. |
2. 接続 |
ホスト側のXBeeデバイスの接続されたシリアルポートを選択した上で,フォーム下部の「接続」ボタンを押すと接続を開始します.終了時には「停止」をクリックします.シリアルポートの確認は,WindowsXPの場合,コントロールパネル→システム→ハードウェア→デバイスマネージャ→ポートから行えます.あるいは,前述したX-CTUで確認することも可能です. 「自動的に接続する」チェックボックスをチェックしておくと,次回以降XBeeServerを起動した際に,同一のシリアルポートに自動的に接続を試みます. |
3. デバイスの追加/更新 |
新規にセンサ側のXBeeデバイスからデータを受信すると,XBeeServerは自動的に以下のようなGUIを追加し,各デバイスのアドレス/デジタル入力/アナログ入力の状態を手軽に確認することが出来ます.既に追加済みのXBeeデバイスからデータを受信した場合は,デジタル入力/アナログ入力の状態を更新します. |
◇その他の使い方 |
ネットワーク経由の使い方はMobiServerのページや以下の通信仕様を参考にしてください. |
◆通信仕様 |
ここでは,基本的な通信仕様について説明します. |
基本的なコマンド構成 |
XBeeServerの各コマンドの,基本的な構成は,以下のようになります. Xbee,<CommandType>,<Address>,[,...]
|
XBeeServer→クライアント |
|
※その他の仕様(参考) |
その他の基本仕様は以下のようになります.(全てのMobiServerに共通です.)
|
◆参考URL |
|