--- 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モードに設定します。  API Enableの項目は、以下3つから選べるようです。 1. API disabled[0] (透過モード) 2. API enabled[1] (APIモード) 3. API enabled with escaped characters[2] (?よくわかってません) ### XCTUのコンソールモードで送信テスト 1. 送信するデータ(フレーム)の作成  ※送信先の64bitアドレスを指定しないと、送信できません。 2. 送信 送信すると、2つのログが出ました。  ``` 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) -
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.