从协调器XBee(API)向路由器XBee(AT)发送数据

时间:2017-01-09 07:57:24

标签: arduino-uno zigbee

我一直在尝试从协调器 XBee 向路由器 AT模式中的 Xbee 发送数据。有用。

然而,在不可接受的持续时间内有太多延迟。如何解决延迟问题?

int led = 0;
int ledX = 13;
int pin = 5;
int bs;
String store[20];
void setup() {
 pinMode(led,OUTPUT);
 pinMode(pin,INPUT);
Serial.begin(9600);
}

void loop() {
 // bs = digitalRead(5);
  //if(bs == LOW){
  digitalWrite(led,HIGH);
  setRemoteState(0x05);
  delay(1000);

  //}
  //else if(bs == HIGH){
  digitalWrite(led,LOW );
  setRemoteState(0x04);
  delay(1000);
  //}

}
void setRemoteState(char value){
Serial.write(0x7E); //start of the frame
Serial.write((byte)0); // byte length
Serial.write(0x10); //high part 16 in decimal
Serial.write(0x17); // AT command request
Serial.write((byte)0); // frame ID dont need any ack
Serial.write((byte)0);
Serial.write((byte)0);
Serial.write((byte)0);
Serial.write((byte)0);
Serial.write((byte)0);
Serial.write((byte)0);
Serial.write(0xFF);
Serial.write(0xFF);

Serial.write(0xFF);
Serial.write(0xFE);

Serial.write(0x02); 

Serial.write('D');
Serial.write('3'); //change pin D3

Serial.write(value);

long sum = 0x17 + 0xFF + 0xFF + 0xFF + 0xFE + 0x02 + 'D' + '3' + value;
Serial.write(0xFF - (sum &0xFF) );

}

以上是我在我的arduino中实现的代码

1 个答案:

答案 0 :(得分:0)

你看到多少延迟?将最后一个字节发送到协调器后,在路由器上看到数据之前经过了多少毫秒?

什么是可接受的水平?这是低速(250kbps)无线电网络,可能需要跨多个节点反弹您的消息。预期延迟低于100毫秒可能是不现实的。

如果您以9600波特率运行XBee模块,请将波特率提高到115200bps,以减少发送到一个XBee并在另一个XBee上接收的时间。