如何通过Zigbee发送数据?

时间:2014-08-25 22:53:25

标签: arrays byte xbee

目前我无法将数据从一个xbee series1发送到另一个xbee series1(两者都连接到Arduino unor3)。这是发送数据的程序。

#include <eHealth.h>

#include <SoftwareSerial.h>

SoftwareSerial mySerial(0, 1); // RX, TX

float temperature;

char xbeedata[4];

// the setup routine runs once when you press reset:
void setup() {
  Serial.begin(9600);  
}

// the loop routine runs over and over again forever:
void loop() {
  temperature = eHealth.getTemperature();


  memcpy(xbeedata, &temperature, 4);    // send data


  Serial.print("Temperature (ºC): ");       
  Serial.print(temperature, 2);  
  Serial.println(""); 

 delay(1000);   // wait for a second 
}

接收端的程序是

 #include <eHealth.h>

#include <SoftwareSerial.h>

SoftwareSerial mySerial(0, 1); // RX, TX

float temperature;

char *xbeedata[4];

// the setup routine runs once when you press reset:
void setup() {
  Serial.begin(9600);  
}

// the loop routine runs over and over again forever:
void loop() {
  temperature = eHealth.getTemperature();

  memcpy(&temperature, xbeedata, 4);    // receive data


  Serial.print("Temperature (ºC): ");       
  Serial.print(temperature, 2);  
  Serial.println(""); 

  delay(1000);  // wait for a second 
}

我缺少什么吗?我应该像串行监视器上的float temperature->byte array ->xbee(send) -> xbee(receive) -> byte array -> float temperature ->显示一样发送浮动。我目前正在使用Arduino IDE。

1 个答案:

答案 0 :(得分:0)

尝试将您的浮点值乘以100并将其保存为int变量,然后您可以将int转换为字符串,如String(Yourintvariable)并转换为char数组以将其发送到串行,请注意串行转换自动转换为字节。我希望我有所帮助。

最好的问候