広告
コマンドで実行
API (Application Programming Interface)を使うと単なる通信だけではなく、いろいろなことができる。
XBeeは本体を見るとわかるように、デジタル入出力やアナログ入出力、PWM出力があり、XBeeだけでも多少のことはできるようになっている。
単なるセンサーネットワークやIOとして使うならマイコンなどを使わずにXBeeだけでも実現できる。
そういう意味では「透過モード」だけ使うのはもったいない気がする。
Series 2ではATとAPIはファームが別。Series 1は同じファームでATもAPIもできる
また、Series 2ではAPI用にするとATコマンドが使えなくなる。透過モードも使えないみたい。
そういった意味ではいろいろ遊ぶにはSeries 1の方が良さそう。値段も安いし。
APIの利点
- リモート制御ができる
- プログラミングが楽
- リモート側はXBeeだけでもいろいろできる。
APIの書式
以下のような書式でデータを送る。
0x7E+MSB,LSB(データ長)+コマンド、データ+チェックサム
0x7EはAPIのデリミタ、MSB,LSBはコマンドとデータのバイト数を入れる。
チェックサムはコマンドとデータ部の値の合計を0xFFから引いたもの。
たとえば、ATコマンドのNJ(Node Join Time)に0xFFを入れる場合は、
0x7E 0x00 0x05 0x08 0x01 0x4E 0x4A 0xFF 0x5F
となる。
データ長はコマンド・データ部が0x08、0x01、0x4E、0x4A、0xFFと5バイトあるので「0x00 0x05」となる。
チェックサムは
0xFF-(0x08+0x01+0x4E+0x4A+0xFF)=0x5F
となる。
0x08は「AT」、0x01はフレームIDで0以外の数値が入る。「0x4E4A」はNJを示す。
モジュール、ライブラリなど
APIだとプログラムを作る必要があるけど1から作っていると大変なのでモジュールやライブラリを使ってみる。
APIフレーム名
API Frame Names | Values |
Modem Status | 0x8A |
AT Command | 0x08 |
AT Command - Queue Parameter Value | 0x09 |
AT Command Response | 0x88 |
Remote Command Request | 0x17 |
Remote Command Response | 0x97 |
ZigBee Transmit Request | 0x10 |
Explicit Addressing ZigBee Command Frame | 0x11 |
ZigBee Transmit Status | 0x8B |
ZigBee Receive Packet (AO=0) | 0x90 |
ZigBee Explicit Rx Indicator (AO=1) | 0x91 |
ZigBee IO Data Sample Rx Indicator | (0x92) |
XBee Sensor Read Indicator (AO=0) | 0x94 |
Node Identification Indicator (AO=0) | 0x95 |
広告