Transmitting Float Values Across Xbee Network

arduino, c++, wireless, xbee

Solution

You can send the `float` in bytes and reconstruct the `float` at the receiver.

The following example may help you:

Sender side:

float x = 1128.476;

char b[sizeof(x)];
memcpy(b, &x, sizeof(x));

// Iterate over b and send bytes
// [...]

Receiver side:

float y = 0;

char b[sizeof(x)];

// Store 4 bytes representing the float into b
// [...]

// Rebuild the float
memcpy(&y, b, sizeof(y));

At the end, you have `float y` on the receiver side, which has the same representation of `float x` on the sender side.

Problem

I am having trouble transmitting a float across a simple 2 node Xbee Network. I am aware that the Xbee system transmits packages via bytes, so I can send a char, but I am having trouble sending anything more than that, and I can't seem to find any documentation anywhere. Here is my current (basic) code. Sender: ``` (... appropriate setup...) void loop() { sensorValue = analogRead(analogInPin); sensorValueTemp = sensorValue / 9.31; //LM35 measurement into Centigrade Serial.print(sensorValueTemp); delay(1000); } ``` Receiver: ``` (...appropriate setup...) void loop() { lcd.setCursor(0, 0); if (Serial.available() > 0) { lcd.print(incomingByte); } delay(1000); } ``` Any hint as to get the float to be transmitted successfully would be great? Or if it is already being transmitted properly, how to read it properly? Thanks

Original source