--- description: 透過モードでの通信はできたので、APIモードでの通信を試してみます。※結果としては、うまくできませんでした。 image: https://i.gyazo.com/a4194bc08356dd55aeac96a012cda3d0.png tags: Aruduino, XBee lang: ja-jp --- # AruduinoとXBeeで無線通信してみる(APIモード編) 透過モードでの通信はできたので、APIモードでの通信を試してみます。 **※結果としては、うまくできませんでした。** 透過モードは、シリアルポートに送ったデータをそのまま通信するので、データのひとまとまりの単位がなく、データが1部分だけ抜け落ちたりしてもわからない。 APIモードでは、データのひとまとまりをパケットととして送信するので、1部分だけ抜け落ちるようなことはないらしい。 ## XCTUで設定 まずは、XCTUを使って、XBeeをAPIモードに設定します。 ![](https://i.gyazo.com/c3678d05623cbab2a912dcdabe13cbdb.png) API Enableの項目は、以下3つから選べるようです。 1. API disabled[0] (透過モード) 2. API enabled[1] (APIモード) 3. API enabled with escaped characters[2] (?よくわかってません) ### XCTUのコンソールモードで送信テスト 1. 送信するデータ(フレーム)の作成 ![](https://i.gyazo.com/a4194bc08356dd55aeac96a012cda3d0.png) ※送信先の64bitアドレスを指定しないと、送信できません。 2. 送信 送信すると、2つのログが出ました。 ![](https://i.gyazo.com/99eb91e71f84963d74d804ef21007b2f.png) ``` TX (Transmit) Request 64-bit address (API 1) 7E 00 0E 00 01 00 13 A2 00 41 96 AA A2 00 41 42 43 60 Start delimiter: 7E Length: 00 0E (14) Frame type: 00 (TX (Transmit) Request 64-bit address) Frame ID: 01 (1) 64-bit dest. address: 00 13 A2 00 41 96 AA A2 Options: 00 RF data: 41 42 43 Checksum: 60 ``` ``` TX (Transmit) Status (API 1) 7E 00 03 89 01 00 75 Start delimiter: 7E Length: 00 03 (3) Frame type: 89 (TX (Transmit) Status) Frame ID: 01 (1) Delivery status: 00 (Success) Checksum: 75 ``` データを送信後、結果(Success)を受信しているようです。 相手が受信しなかった場合は、 ``` Delivery status: 01 (No acknowledgement received) ``` が返ってきます。 ## プログラム ### 送信側 まずは、XBeeライブラリのサイトにあるサンプルを書き込んでみる。 > [xbee\-arduino/Series2\_Tx\.pde at master · andrewrapp/xbee\-arduino · GitHub](https://github.com/andrewrapp/xbee-arduino/blob/master/examples/Series2_Tx/Series2_Tx.pde) LEDの点滅の仕方で状態がわかるようになっているプログラムだが、実行結果は、 ```1回点滅``` --> ```2回点滅``` の繰り返し。 これは、Arduinoに直接繋いであるXBeeモジュールとうまくやりとりできていない状態らしい。 ## 結果 API enabled with escaped charactersに設定してみたり、色々やってみたが、何が悪いか分からず。 XCTUでは、通信できているのに、何が問題なのだろう? ## 参考サイト - [XBeeを使った通信](https://www.aihara.co.jp/~junt/electronic-circuit/XBee.html) - [hawksnowlog: XBee ZB S2C で Zigbee 入門](https://hawksnowlog.blogspot.com/2017/03/getting-started-zigbee.html) - [GitHub \- andrewrapp/xbee\-arduino: Arduino library for communicating with XBee radios in API mode](https://github.com/andrewrapp/xbee-arduino) -