---
# System prepended metadata

title: AruduinoとXBeeで無線通信してみる(APIモード編)
tags: [Aruduino, ' XBee']

---

---
description: 透過モードでの通信はできたので、APIモードでの通信を試してみます。※結果としては、うまくできませんでした。
image: https://i.gyazo.com/a4194bc08356dd55aeac96a012cda3d0.png
tags: Aruduino, XBee
lang: ja-jp
---
# AruduinoとXBeeで無線通信してみる(APIモード編)

透過モードでの通信はできたので、APIモードでの通信を試してみます。
**※結果としては、うまくできませんでした。**


透過モードは、シリアルポートに送ったデータをそのまま通信するので、データのひとまとまりの単位がなく、データが１部分だけ抜け落ちたりしてもわからない。
APIモードでは、データのひとまとまりをパケットととして送信するので、１部分だけ抜け落ちるようなことはないらしい。

## XCTUで設定

まずは、XCTUを使って、XBeeをAPIモードに設定します。

![](https://i.gyazo.com/c3678d05623cbab2a912dcdabe13cbdb.png)

API Enableの項目は、以下３つから選べるようです。
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. 送信
送信すると、２つのログが出ました。
![](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回点滅``` --> ```２回点滅``` の繰り返し。

これは、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)
- 