広告
*コマンドで実行 [#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| 広告 |