carcon999のブログ

12年間Y!ブログの記載を移行しました。電子工作関連の記事が多いです。

XBee Wi-Fiをアンドロイド端末とアドホックする!

★2012/11/13追記
以下は、手持ちのAndroidタブレットA7HD(HYUNDAI)で実施した結果です。他のタブレットや、Root化されてないものでは実施できないようです。最近購入したNexus7で試してみましたが、ざんねんながら接続できていません。ご注意ください。

2012年のGW前に、Androidタブレットを購入しました。
目的は、自分のアプリをテストする為と、XBee Wi-Fiアドホックモードを試して見たかったから。
※テーマからズレてしまいますが、問題があったandroidタブレットは別機種に交換してもらい、割と快適に動作しております。

そして、昨日試してみたところ、ゴニョゴニョ設定を変更していたらアドホックでの通信ができることを確認しました。
なので、私自身も忘れないようにするために情報を整理しておこうと思います。

■そもそもアドホック通信とは?
いままで、通信(確認)できていたのは、アクセスポイント(ワイヤレスルーター)を介したインフラストラクチャーモードです。アドホックモードは、そのアクセスポイントを介することなく、1対1で通信するモードです。

イメージ 1

メリットとしては、やっぱりAPが不要となる点です。簡単に作品をデモすることもできますね。

■機器の構成
XBee Wi-Fi(Version 102D)
Android 4.0.3(中華タブレット HYUNDAI A7HD)
※ここで重要なのが、AndroidのVersionです。私は携帯電話にAndroid2.3.4を利用していますが、その場合は利用することができません。私が確認できているのは、android4.0です。もし試すのであれば、Versionに注意してください。

XBeeをクリエイターとしてX-CTUで設定する。

X-CTUで設定します。一応、いままでインフラストラクチャーモードで利用していたのであれば、その設定をSaveで保存しておいた方が良いでしょう。その上で、余分な(旧)設定が残らないように一度Restoreしちゃいます。

イメージ 2

その上で、以下を設定していきます。
※実は、XBeeのマニュアル通りだったりしますね。(90002124_D.pdf P28)
XBeeCreatorとして設定します。設定することで、Android側はアクセスポイントが存在するように見えるので接続することができるようになります。

ATコマンド名称設定値備考(説明)
AHNetwork type 1IBSS CREATOR
MAIP Addressing Mode1STATIC
EEEncryption Enable0NO SECURITY
CHChannel#of Access point10x01~0x0E(※1)
BRBit Rate of IBSS Creator1Autoでも良い?(※2)
IDSSIDABCDEFG自分で決める自由なSSID
MYIP192.168.0.2自分のIPアドレス
DLDestination IP192.168.0.3相手のIPアドレス
MKIP Mask255.255.255.0IPマスク

※1:X-CTUでは、GUIから設定できないので、ATコマンドモード(+++)で、"ATCH1"を打ち込む
イメージ 3

※2:まずは、値1で試してみてから他の値に変更してみてください。

SSIDや、IPアドレスは、自分で適当に変更してください。ただしアドホックでは、DHCPが使えないので固定IPにする必要があるので、相手側もそのアドレスにする必要があります。(次で設定してゆきます。)

android側を固定IPで設定する。
画面キャプチャーで順に説明してゆきます。
まずWi-Fiの設定画面を開くと、先ほどのSSID名が見えるはずです。(*)が付いているのがアドホックSSIDです。(多分)
イメージ 4

SSIDの対象項目を長押しすると、「ネットワークを変更」の項目が表示されるので選択します。そして、詳細のチェックをONにします。
イメージ 5

そうすると、DHCPがデフォルトでONになっているので、「静的(STATIC)」を選択します。そして、IPアドレスを入力します。ここで一つ問題が発生します。IPアドレスを入力しただけでは保存ボタンが無効のままです。
イメージ 6

ネットワークプレフィックスの24まで、自分で打ち込むことで、保存ボタンが押せるようになりますので、保存します。
※ここの保存ボタンが押せなくて、かなり悩みました。
イメージ 7

最終的に、Wi-Fiの設定画面で、対象のSSIDが「接続済み」と表示されていれば、OKです。
後は、XBeeとやりとりが可能です。