------------------------------------------------------------------------ XBee Wi-Fi S6を使用する場合のマニュアル: Copyright (c) 2013-2014 Wataru KUNINO https://bokunimo.net/bokunimowakaru/ ------------------------------------------------------------------------ はじめに XBee ZigBeeネットワークの最大の課題はIP(インターネットプロトコル)では 無いことです。一方、XBee Wi-Fi S6/S6BはIPネットワークに接続可能なワイヤ レス通信モジュールです。パソコンやArduinoからだけでなく、スマートフォン 上のアプリケーションからXBee Wi-Fi S6/S6Bを直に制御することも可能です。 XBee Wi-Fiはインターネットの標準プロトコルを搭載しており、XBee Wi-Fi単体 でIPネットワークに参加することが出来るので、宅内のパソコンやタブレット 端末から直にXBee Wi-Fiモジュールへアクセスすることが可能になります。 XBee ZBの場合は親機となるXBee PRO ZBモジュールが必要でしたが、XBee Wi-Fi モジュールを用いれば親機にXBeeモジュールが不要になり、1個のXBee Wi-Fiで 実験を行うことが出来ます。 ただし、少なくとも無線LANアクセスポイントが必要です。また、IPネットワーク に関する知識も必要です。 はじめにのおわりに最高のアドバイスをさせていただきます。 XBee Wi-Fi S6/S6Bを買ってうまく使いこなせなかった方は、ぜひXBee ZBに買い 換えてみてください。最高のアドバイスだと実感していただけると思います。 もちろん、XBee Wi-Fiを使いこなせた人も、XBee ZBも試してみて下さい。XBee ZBでしか出来ないことはたくさんあります。 ------------------------------------------------------------------------ 注意事項 XBee Wi-Fi S6モジュールまたはXBee Wi-Fi S6Bモジュールに対応しています。 ファームVer.102Dおよび、Ver.2021にて収録サンプルの動作確認を行っています が、一切の動作補償を致しません。 ★XBee Wi-FiのIPネットワークへの接続についてはサポートいたしません。★ ネットワークに詳しくない方にはZigBee方式のXBee ZB (S2)をお奨めします。 予めXBee W-FiモジュールをIPネットワークに接続しておく必要があります。 XBee ZBで使えるコマンドであっても、XBee Wi-Fiでは使えない場合があります。 XBee Wi-FiモジュールのIPアドレスをMYにパソコンのアドレスをDLに設定して おくと、比較的、安定して試験が行えます。 省電力を設定するxbee_end_deviceについてはXBee Wi-Fi S6 Ver.100番代のみに 対応していますが、アクセスポイントのビーコンに同期してスリープを行います ので、ZigBeeとは動作が異なります。サンプル3(sample3_sw_f.c)で実験して 確認してください。(S6B Ver.200は省電力に設定できません。) スリープモードSPやSTには完全には対応しておりません。 ------------------------------------------------------------------------ 動作しない場合のマニュアル: Copyright (c) 2013-2014 Wataru KUNINO https://bokunimo.net/bokunimowakaru/ ------------------------------------------------------------------------ 今のところ、XBee Wi-Fi S6(Ver102)、S6B(Ver202)専用です。 ------------------------------------------------------------------------ [1] PINGが通ることを確認する コマンドプロンプトからPING XXX.XXX.XXX.XXX(XXXの部分はXBee Wi-FiのIP アドレス)を入力してXBee Wi-Fiから応答があるかどうかを確認してください。 「〜の応答:宛先ホストに到達できません」と出たらネットワークに問題が あります。 本ライブラリやサンプルの問題ではありませんので、お手数ですがご自身で 解決してください。 ------------------------------------------------------------------------ [2] ファイヤーウォールでサンプルアプリを拒否していないか 最初にサンプルを起動したときにファイヤーウォールのアクセス許可を問い合わ せがあります。拒否すると、当然、アクセスできません。 コントロール パネル\すべてのコントロール パネル項目\ Windows ファイアウォール\許可されたプログラム 必要に応じてセキュリティソフトのファイヤーウォールの設定も変えてください。 ------------------------------------------------------------------------ [3] サンプルのIPアドレスを正しく設定したかどうかを確認する dev_myにパソコンのIPアドレス、dev_gpioにXBee Wi-FiモジュールのIPアド レスを「カンマ」(ピリオドではありません)で区切って代入します。 ------------------------------------------------------------------------ [4] X-CTUを使ってXBee Wi-FiのDEやC0値が適切かどうかを確認する XBee Wi-FiのDEやC0値は初期値である2616が設定されている必要があります。 X-CTUのDE値やC0値は、よほどのことが無い限り、わざわざ書き換える必要は ありませんので必ず初期状態の「2616」を使用してください。 どうしてもお使いのアプリケーションやネットワークの都合で変更したい場合は 自力でお願いいたします。 また、不用意にDEやC0値が変わっている場合は、他も変わっている可能性があり ますので、一度、X-CTUの「Restore」で初期化するか「青文字」になっている 部分が適切な値かどうかを確認してください。 なお、X-CTUで表示される値が全て正しいとは限りません。何度か「Read」して みると値が変わったということはよくあります。 ------------------------------------------------------------------------ [5] X-CTUを使ってXBee Wi-FiのDL値にパソコンのIPアドレスを設定する 通常はこの作業は不要ですが、一度、試してみて下さい。 X-CTUを使ってDL値にパソコンのIPアドレスをXBee Wi-FiのDL値に設定して 「Write」で書き込んでください。 ------------------------------------------------------------------------ [6] ブロードキャストアドレスを使用してみる サンプルプログラムのIPアドレスの変数dev_myとdev_gpioの4番目の数値を255に してみてください。例えばパソコンのアドレスが192.168.0.2の場合、両方とも {192,168,0,255};としてみてください。 255はブロードキャストアドレスです。同じLAN内で全端末に送信されます。 ※ただし、無線LANアクセスポイントの機種によっては無線LAN側と有線LAN側で  パケットが渡されなかったり、無線LAN同士も疎通しない場合があります。 これで動作するようであれば、ネットワークなどの問題につき、お手数ですが、 この先は自力で解決してください。 ------------------------------------------------------------------------ [7] DHCPを止めてみる XBee Wi-FiのDHCPを使用するとボクの環境では誤作動が多いです。全ての環境で 誤作動するとは思いませんが、ご参考まで。 安定動作のためには手動でIPアドレスを設定します。 ------------------------------------------------------------------------ [8] パケットの内容を確認する。 実際に送信や受信したパケットを見たいということであれば、ソースコードの #includeよりも上の行に   #define DEBUG   #define DEBUG_TX   #define DEBUG_RX を追加してください。 ------------------------------------------------------------------------ [9] DEBUG: ERR:tx_rx no Rx Res.:DL (err=xx) DEBUG有効時でXBee IP Serviceで送信したのに応答が何もなかった時に表示され ます。 ------------------------------------------------------------------------ [10] ERR:tx_rx RATDL at set_myadd(01) DEBUG無効時はこれだけです。