|
広告
*コマンドで実行 [#h75c3103]
API (Application Programming Interface)を使うと単なる通信だけではなく、いろいろなことができる。~
XBeeは本体を見るとわかるように、デジタル入出力やアナログ入出力、[[PWM出力>XBee/PWM]]があり、XBeeだけでも多少のことはできるようになっている。~
単なるセンサーネットワークやIOとして使うならマイコンなどを使わずにXBeeだけでも実現できる。~
そういう意味では「[[透過モード>XBee/透過モード]]」だけ使うのはもったいない気がする。
&color(Red){Series 2ではATとAPIはファームが別。Series 1は同じファームでATもAPIもできる};
-「[[XBeeServer: XBeeを無線センサとして使おう:http://mobiquitous.com/mobiserver/xbeeserver.html]]」を参考にAPIを使えるようにする。
&color(Red){また、Series 2ではAPI用にするとATコマンドが使えなくなる。[[透過モード>XBee/透過モード]]も使えないみたい。};
&color(Red){また、Series 2ではAPI用にするとATコマンドが使えなくなる。[[透過モード>XBee/透過モード]]も使えないみたい。};~
そういった意味ではいろいろ遊ぶにはSeries 1の方が良さそう。値段も安いし。
*APIの利点 [#jdfa08b3]
-リモート制御ができる
-プログラミングが楽
-リモート側はXBeeだけでもいろいろできる。
*APIの書式 [#d2d33675]
以下のような書式でデータを送る。
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を示す。
*モジュール、ライブラリなど [#q17d1a6a]
APIだとプログラムを作る必要があるけど1から作っていると大変なのでモジュールやライブラリを使ってみる。
-[[Perl用モジュール>XBee/API/Perl]]
-[[Python用ライブラリ>XBee/API/Python]]
-[[xbee-api:http://code.google.com/p/xbee-api/]]
--Java用
*APIフレーム名 [#h6fd89fd]
|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|
広告 |