XBee WiFiのプチはまり解決と動作確認

最近になってモジュール単体も出回ってきたようなので購入した、XBee-WiFi。現在1つ5000円くらいですね。
先週の土日も春分の日も出かけていたので、ようやく動作確認まで出来ました。が、ZigBee版がそうであったように、今回も無事X-CTUでコンフィグレーションできるまでに時間がかかりました。

機材

XBeeZigBee版(XBee ZB)をいじるのに使っていた、以下の機材を使用しました。

  • FT-232モジュール(USBシリアル変換)
  • ピッチ変換基板
  • ブレッドボード

接続

配線後、ZigBee版を載せてみて、それの設定を読めることを確認。
データシートを見比べて、電源もシリアルのTX/RXも同じピン番号であることを確認。
あとは設定をいじるだけ…でしたが、いつもの"Unable to communication"エラーが出てきました。なぜにー。

原因は電源周り

まずは電源容量を疑って、ACアダプタから取ってくるように変更しました。このモジュールは送信時200mA以上食うので、秋月のFT232モジュール上にあるレギュレーターからでは多分足りませんね。
そこでDCジャック→DIP変換モジュールを追加して、3.3V/2AのスイッチングACアダプタ(秋月で購入したもの)から電源を取ることに。でも、様子は変わらず…


結局、電源ラインに電解コンデンサを入れることで解決し、動き出しました。なんだかすごい動作ノイズ音がしていたのが解消し、同時にX-CTUからも見えるように。解決方法がわかってから「XBee WiFi コンデンサ」で検索すると類似事例がぽろぽろ引っかかりますが、解決前に見つからないと意味がないですねえ。


[22時頃 容量と写真を追加]
コンデンサは、今回使ったのは部品箱から適当に拾ってきた47μFでした。付け方も1番ピンにぴったりつけていなくて超適当(しかし、こうかはばつぐんだ!)


マニュアルのpower supplyのところには

To help reduce noise a 1uF and 8.2pF capacitor are recommended to be placed as near to pin 1 on the PCB as possible.

とあるので、もっと小さくても良いんでしょうね。きっと。

動作確認

APの設定、つまりSSID・暗号化方式・パスフレーズを設定してしまえば、デフォルト設定でDHCPが動いているので、勝手にIPを取ってきていました。
SSID/パスフレーズの設定については以下の記事を参照し、X-CTUのターミナルから設定。Modem Configurationからでは大文字からしか設定できないので、現状ではコマンド直打ちする必要があるみたいです。
XBee Wi-Fi 接続の設定までやってみた Chick Lab
設定が済めば勝手に接続しにいくようで、XBeeの設定をReadするとDHCPで取ってきたIPアドレス等が確認できるし、Pingにも応答します。


それではなんだかつまらないので、パケットがXBeeから飛んでくるかどうか確認をしてみました。
設定はModem Configurationの DL - Destination IP Addressに、パケット受信を確認するためのPCのIPアドレスを設定するだけ。あとは、デフォルト設定ならば、打った文字がUDPのパケットとして飛んできます。


おもむろにWiresharkを立ち上げて

XBeeのIPでフィルタ。X-CTUでReadすると、MY -Module IP Address の欄で確認できます。


Terminalから入力。


何かきた。


1文字1パケットで効率は最悪ですが、とりあえず届いてはいます。下の画像で見ているのは3パケット目で、データに入っている0x33は"3"のASCIIコード。


動作確認するまでに予定の10倍くらい時間を使ってしまいましたが、これで簡単にInternetに出られるデバイスを作れるので、楽しみです。ただしZigBee版より一桁上、有線Ethernetよりも大きいくらいの電流を食うので、ZigBee版とほぼ同じ形でも用途は変わってきそう。