--- description: AruduinoとXBee無線モジュールを使って、無線通信をしてみようと思います。 XBeeモジュールは、X-CTUという専用ツールを使って、設定をしないと使えないので、まずは設定を行います。 image: https://lh3.googleusercontent.com/T4tsOKolksNaM141oDWo-6oo2JcdFH0SpjtHFBOXSZ6-hwdPSnMHG3rq2GpUMCFhd-3ir2nL282vaR7VAd9lwp1ymWs4uQmzjpPsFV0akzdE2teRCXZu07Syv8pvEVkaBr69xCJ32kc=w1024-no tags: Aruduino, XBee lang: ja-jp --- # AruduinoとXBeeで無線通信してみる(設定編) AruduinoとXBee無線モジュールを使って、無線通信をしてみようと思います。 XBeeモジュールは、X-CTUという専用ツールを使って、設定をしないと使えないので、まずは設定を行います。 ## 使うもの(ハードウェア) ![](https://lh3.googleusercontent.com/T4tsOKolksNaM141oDWo-6oo2JcdFH0SpjtHFBOXSZ6-hwdPSnMHG3rq2GpUMCFhd-3ir2nL282vaR7VAd9lwp1ymWs4uQmzjpPsFV0akzdE2teRCXZu07Syv8pvEVkaBr69xCJ32kc=w1024-no) - [Aruduino UNO](https://amzn.to/2IAQiRS) - [Xbee S2C](https://amzn.to/2ICWcBV) - [XBee USB アダプター(リセットスイッチ付き)](https://amzn.to/2MuucBs) - [Arduino用Xbeeシールド](http://akizukidenshi.com/catalog/g/gM-07030/) ## 使うもの(ソフトウェア) - [XCTU](https://www.digi.com/support/productdetail?pid=3352&osvid=57&type=utilities) XBeeの設定を行うためのツールです。 ## XBeeの設定 XCTUを使って、お互いの通信相手のMACアドレスを設定します。 MACアドレスは、それぞれのXBeeモジュールに割り当てられた個別の64bitのアドレスで、XBeeモジューの裏側に記載されています。 とりあえず、今回利用する2つのXBeeのMACアドレスをメモしておきます。 1. 0013A2004196ABFB ←利用するXBeeのMACアドレス 2. 0013A2004196AAA2 ←利用するXBeeのMACアドレス ### XCTUで設定 1. **XBeeをPCに接続**  XBeeをUSBアダプターに取り付けPCとUSBケーブルで接続します。 ![](https://lh3.googleusercontent.com/HdlkVJjuT-Jtrh9VW3GxbRQ0H1me3L31jLx7e3YG10f0Cxa3QO17JF7yrYecYX4VEaaB6ApxZBkJcaCtLOe-1qaS6NLO2Fz6EJW2QpsVs5d4vM5VRMF1Z2vnJEnrRWB2HUe3CfGBAPk=w1024-no) 1. **XCTUを起動** 1. **XBeeを認識させる** - ```+```の付いたアイコンをクリック ![](https://i.gyazo.com/48992d7293779389ae9e0c0362d91f7c.png) - USBポートと、シリアル通信の設定を確認して「Finish」 ![](https://i.gyazo.com/58887779534c2fa941e26a607560e86b.png) 1. **設定内容の読み込み** - 認識されたXBeeモジュールをクリック ![](https://i.gyazo.com/ed2935f61fad5da3a55871c3d1b6dab2.png) 1. **通信相手の設定** - ID : 通信相手と同じ値を設定する必要があります。 (同じであれば良い) - DH : 通信相手のMACアドレス上位32bit - DL : 通信相手のMACアドレス下位32bit ![](https://i.gyazo.com/6b357c99e5083b02b8b567cb57a71a89.png) 1. **役割設定** - 1台を[Coordinator]、1台を[End Device]にする必要があります。 ![](https://i.gyazo.com/f387ec61b0c66a0cd040fd929e37bd5b.png) 1. **通信設定** - ボーレートやパリティの設定をメモしておきます。 - AP : 今回はATモードを使うので、「API Disabled」 ![](https://i.gyazo.com/075bda1e9b545e248d6738fc27e555dd.png) 1. **設定書き込み** - [Write]ボタンで変更した設定をXBeeに書き込みます。 ![](https://i.gyazo.com/7d5fab023ecbc44dc7bd90c950906712.png) 同じように、もう一台も設定します。 ## ArduinoをPCに接続して通信確認 Aruduinoのプログラムはせずに、単純にUSBインターフェースとして使います。 ### Aruduinoに空のプログラムを書き込む 単純にUSBインターフェースとして使う場合、Aruduinoに空のプログラムを書き込みます。 **Aruduinoにプログラムを書き込む際は、Xbeeシールドを外しておきましょう。** Arduino IDEのメニューからファイル(File)→ スケッチの例(Examples)→01.Basics→BareMinimumを開き、Arduinoにアップロードします。 ### AruduinoにXBeeを接続 XbeeシールドにXBeeを挿入し、XBeeシールドをAruduinoに接続します。 この際、Xbeeシールドのスイッチは以下のようにします。 - [RUN/PROG] -> RUN - [XBEE/USB] -> USB ### 2つのXBeeをそれぞれPCにUSB接続 それぞれUSBケーブルでPCに接続します。 ![](https://lh3.googleusercontent.com/Hw-LY6poWZKsVWBU1Os55QCJrc74UNK5cDZCvon2KpWNmm9l6jTe9f9QlCIX2_tLCZ5wO2Ud56zIh64GP7GsTDMTnjNGSNvYTeyiSShDwlqt60ojzUCBHNjMfaayta1qDOV4Kje7Pqc=w1024-no) ### XCTUで2つのXBeeを認識 ```+```アイコンで、それぞれのUSBインターフェースを選択して、2台のXBeeを認識させます。 1. コンソールモードに切り替え 2. 通信接続(2つとも接続状態にします) 3. 送信データ作成 4. データ送信(お互いにデータを送信してみます) Console logに、データが表示されていればOKです。 青が送信したデータ、赤が受信したデータです。 ![](https://i.gyazo.com/504860b1228d45070de83123e57dc3f7.png) #### 実験:送信先MACが違うと送信されないか? 片方のDLに違う値をいれてみます。 結果: - DH,DLは送信先のアドレスなので、変更した先のデータは届かなかったです。 - DH,DL共に0に設定すると、送信データが相手に届いたので、MACアドレス関係なく全モジュールに送信するようになるみたいです。 #### 実験:Coordinator/End Deviceを変えるとどうなる? - [EndDevice]-[EndDevice]: 通信できました。 DH,DL=0でも送信できました。 - [Coordinator]-[Coordinator]: 通信できました。 2台での通信では、どの組み合わせでも関係なさそう。 ## 参考サイト [XBeeをはじめてみよう(シリーズ1編) – スイッチサイエンス マガジン](https://mag.switch-science.com/2012/07/20/startup_xbee_s1/)