Problema con Sketch para comunicacion Xbee Zigbee S2 API

Buenas tardes a todos…
Necesito que por favor alguien que sepa como crear un sketch utilizando modulos zigbee Xbee S2 API para la comunicación me pueda ayudar, ya que soy nuevo en este campo.
Resulta que estoy creando una red de sensores inalámbricos, la cual deseo que mi modulo arduino lea un sensor de temperatura DS1820 y lo transmita hacia un Gateway (conectado al computador) pero no logro establecer la comunicación para la transmisión por medio de los módulos Xbee, la configuración de los Xbee esta realizada correctamente, el problema es que no logro realizar el sketch, ya que se me hace un poco difícil por lo que debo utilizar los xbee como API.
Adjunto el programa que estoy utilizando, no se si estoy por el camino correcto, lo he tomado e integrado de los ejemplos que vienen en las librerías, espero alguien me pueda ayudar se lo agradecería mucho. Debido a que no entiendo como poder estructurar el zbTx del ejemplo para enviar por xbee.

PROGRAMA - SKETCH
#include <OneWire.h>
#include <XBee.h>
#include <NewSoftSerial.h>

OneWire ds(8); // on pin 10 (a 4.7K resistor is necessary)

XBee xbee = XBee();

uint8_t payload = { 0, 0 };

// SH + SL Address of receiving XBee
XBeeAddress64 addr64 = XBeeAddress64(0x0013a200, 0x409e2ef3);
ZBTxRequest zbTx = ZBTxRequest(addr64, payload, sizeof(payload));
ZBTxStatusResponse txStatus = ZBTxStatusResponse();

void setup(void) {
Serial.begin(115200);
xbee.begin(115200);
}
void loop(void) {
byte i;
byte present = 0;
byte type_s;
byte data[12];
byte addr[8];
float celsius, fahrenheit;
if ( !ds.search(addr)) {
Serial.println();
ds.reset_search();
delay(2500);
return;
}
ds.reset();
ds.select(addr);
ds.write(0x44, 1); // start conversion, with parasite power on at the end
delay(1000); // maybe 750ms is enough, maybe not
present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad
for ( i = 0; i < 9; i++) { // we need 9 bytes
data = ds.read();

  • }*

  • int16_t raw = (data[1] << 8) | data[0];*

  • if (type_s) {*

  • raw = raw << 3; // 9 bit resolution default*

  • if (data[7] == 0x10) {*

  • raw = (raw & 0xFFF0) + 12 - data[6];*

  • }*

  • } else {*

  • byte cfg = (data[4] & 0x60);*

  • if (cfg == 0x00) raw = raw & ~7; // 9 bit resolution, 93.75 ms*

  • else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms*

  • else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms*

  • }*

  • celsius = (float)raw / 16.0;*

  • Serial.print(celsius);*

  • payload[0] = raw >> 8 & 0xff;*

  • payload[1] = raw & 0xff;*

  • xbee.send(zbTx);*
    }