XBee-mbed library - XBee APIモードライブラリ
XBee-mbed library
This library has been ported from the XBee-Arduino..
for Series 1, Series 2 (and DigiMesh), Wi-Fi
AP=2 API ENABLE (use escape characters)
アナログ値取得、バグ修正済み
※ XBee Wi-Fi のために少し拡張
※ XBee Wi-Fi は、単に無線部をWi-Fiに置き換えたというもので、あくまでXBeeである。
(汎用的に使えるWi-Fiモジュールが欲しければ、Gainspan社のTELEC認証済みモジュールが有力か)

mbedの下駄シリーズ、積み重ね基板にXBeeを搭載できます。
Series_1/2
+--------+ +--------+ | mbed |3.3V------VCC|1 XBee | | | | | | p14|RX-------DOUT|2 S1 | | p13|TX--------DIN|3 or | | | | S2 | | |GND-------GND|10 | +--------+ +--------+
WiFi
+--------+ +--------+ | mbed |3.3V------VCC|1 XBee | | | | | | p14|RX-------DOUT|2 | | p13|TX--------DIN|3 | | | | WiFi| | P0_22|RTS-------RTS|16 | | p12|CTS-------CTS|12 | | | | | | |GND-------GND|10 | +--------+ +--------+
※ Wi-Fiはハードウェアフロー制御が必須。(確実にデータを取りこぼす)
Documents
- zipに含まれる Arduino の sample プログラムが参考になります。
- http://code.google.com/p/xbee-arduino/
- オリジナルのドキュメントを参照してください。
- http://code.google.com/p/xbee-arduino/wiki/DevelopersGuide
Download
Import libraryXBee
XBee-mbed library http://mbed.org/users/okini3939/notebook/xbee-mbed/
Sample
リモートのXBeeのポートに取り付けたLEDを点滅させる。(X-CTU設定:AP=2)
Import programXBee_sample
XBee-mbed sample
sample
#include "mbed.h"
#include "XBee.h"
XBee xbee(p13, p14);
int main() {
uint8_t Cmd[] = {'D', '4'};
uint8_t Val[] = {0x04};
XBeeAddress64 remoteAddress(0x0013A200, 0x40319F25);
RemoteAtCommandRequest remoteAtRequest;
wait(1);
xbee.begin(9800);
remoteAtRequest = RemoteAtCommandRequest(remoteAddress, Cmd, Low, sizeof(Low));
remoteAtRequest.setApplyChanges(true);
remoteAtRequest.setCommandValue(Val);
remoteAtRequest.setCommandValueLength(sizeof(Val));
xbee.send(remoteAtRequest);
}
Wi-Fiの無線LANアクセスポイント接続とHTTP GETのサンプル。(X-CTU設定:AP=2、BD=7)
DNS lookup も実装してみたがうまく動かない。(下記 Note 参照)
Import programXBee_wifi_sample
http://mbed.org/users/okini3939/notebook/xbee-mbed/
sample
#include "mbed.h"
#include "XBeeWiFi.h"
XBeeWiFi xbee(p13, p14, p21); // TX, RX, CTS
void main () {
IPv4TransmitRequest data;
uint8_t buf[100];
:
xbee.begin(115200);
xbee.reset();
xbee.getWiResponse(MODEM_STATUS_RESPONSE, 5000);
xbee.setup(SECURITY_WPA2, "SSID", "PASSPHRASE");
:
data.setAddress(IpAddr(192, 168, 1, 2));
data.setDstPort(1234);
data.setSrcPort(5678);
data.setProtocol(PROTOCOL_UDP);
data.setPayload(buf);
data.setPayloadLength(sizeof(buf));
data.setFrameId(getNextFrameId());
send(data);
:
}
XBeeをAPIモードで使う (by Todotani) 電波強度(RSSI)の取得と、リモートのADC入力の実例
Import programXBeeApi_RemoteCommand
Sample program for XBee remote API operation. This program get ADC sample data from remote XBee connected over the radio
sample
#include "mbed.h"
#include "XBee.h"
XBee xbee(p13, p14); // 宣言
void main () {
AtCommandResponse local = AtCommandResponse();
RemoteAtCommandResponse remote = RemoteAtCommandResponse();
:
while (1) {
:
xbee.readPacket();
if (xbee.getResponse().isAvailable()) {
// XBeeより読み込み
switch (xbee.getResponse().getApiId()) {
case AT_COMMAND_RESPONSE:
xbee.getResponse().getAtCommandResponse(local);
if (local.getStatus() == AT_OK) {
// ローカルATコマンド、レスポンスの処理
}
break;
case REMOTE_AT_COMMAND_RESPONSE:
xbee.getResponse().getRemoteAtCommandResponse(remote);
if (remote.getStatus() == AT_OK) {
// リモートATコマンド、レスポンスの処理
}
break;
case ZB_RX_RESPONSE:
xbee.getResponse().getZBRxResponse(rx);
if (rx.getOption() == ZB_PACKET_ACKNOWLEDGED) {
// データパケット受信の処理
}
:
}
}
:
}
}
Original
XBee-mbed は XBee-Arduino ライブラリからの移植です。
- XBee-Arduino (library, document)
- Copyright (c) 2009 Andrew Rapp. All rights reserved.
through the serial mbed to xbee
mbed の PCシリアル=UART 経由で X-CTU による設定も可能。
#include "mbed.h"
Serial pc(USBTX, USBRX); // tx, rx
Serial xbee(p13, p14); // tx, rx
int main() {
pc.printf("begin\r");
for (;;) {
if (pc.readable()) xbee.putc(pc.getc());
if (xbee.readable()) pc.putc(xbee.getc());
}
}
USB serial (mbed) <- -> P13, P14 (XBee)
mbeduino platform - mbed用マザーボード(ベースボード)
Can use the X-CTU.
Note
- DNSサーバへリクエストを投げ返事が返ってきた瞬間にwifi接続が切れる。
- XBee wifi → DNSリクエスト → DNS server (問題なし)
- DNS server → DNSレスポンス → XBee wifi (wifi切断、UDPパケット受信しない)
- しばらくするとwifi接続が回復する。
- ポート53番以外であればこの現象は起こらない。
- APIモードでもトランスペアレント(透過)モードでも同じく。
- ファームウェアのアップデートで解決されることを期待。
Acknowledge
- オリジナルからあったアナログ値取得の不具合修正(感謝 Ken Todotani)
5 comments on XBee-mbed library - XBee APIモードライブラリ:
Please log in to post comments.

