Go Down

Topic: Recibir datos enviados por xbee (Read 214 times) previous topic - next topic

JUANMEZA

Hola

Tengo este programa que envía datos a un xbee(Router) si un botón es presionado, estos son enviados a otro xbee(Coordinator) que tengo conectado en un servidor, el servidor me envía varios mensajes de tipo string al xbee(Router), entre ellos un mensaje que dice "Hello XBee World!". He podido recibir los mensajes, lo que trato de hacer es que cuando reciba el mensaje de "Hello XBee World!" me imprima otra cosa pero no lo he pero no lo he podido conseguir.

Este es mi codigo:
Code: [Select]
#include <SoftwareSerial.h>
SoftwareSerial XBee(2, 3); // RX, TX
const int Estacion1 = A0;
const int Estacion2 = A1;

int valueA = 0;
int valueB = 0;

void setup()
{
  XBee.begin(9600);
  Serial.begin(9600);
  pinMode(Estacion1, INPUT);
  pinMode(Estacion2, INPUT);
}

void loop()
{
  valueA = digitalRead(Estacion1);
  valueB = digitalRead(Estacion2);
  if (valueA == HIGH)
  {
    XBee.write( "  ArduinoA_Estacion1" );
    XBee.write( "=" );
    XBee.write( "1  " );
    delay(1000);
  }
  if (valueB == HIGH)
  {
    XBee.write( "  ArduinoA_Estacion2" );
    XBee.write( "=" );
    XBee.write( "1  " );
    delay(1000);
  }
  if (XBee.available())
  {
    Serial.write(XBee.read());
    if (XBee.read() == "Hello XBee World!")
  {
        Serial.write("XBEE_COMPLETO");
        Serial.print("XBEE_COMPLETO");
  }
  }
}



Saludos

surbyte

A ver como resulta esto

Code: [Select]
#include <SoftwareSerial.h>
SoftwareSerial XBee(2, 3); // RX, TX
const int Estacion1 = A0;
const int Estacion2 = A1;

int valueA = 0;
int valueB = 0;
int incomingByte = 0;
String a;
bool printXbee = false;

void setup()
{
  XBee.begin(9600);
  Serial.begin(9600);
  pinMode(Estacion1, INPUT);
  pinMode(Estacion2, INPUT);
}

void loop()
{
  valueA = digitalRead(Estacion1);
  valueB = digitalRead(Estacion2);
  if (valueA == HIGH)   {
      XBee.write( "  ArduinoA_Estacion1" );
      XBee.write( "=" );
      XBee.write( "1  " );
      delay(1000);
  }
  if (valueB == HIGH)   {
      XBee.write( "  ArduinoA_Estacion2" );
      XBee.write( "=" );
      XBee.write( "1  " );
      delay(1000);
  }
  while (XBee.available())   {
    a = Serial.readString();  // Leo todos los bytes y los cargo en el String a
    printXbee = true;
  }
  if (printXbee) {  // si hubo datos entonces comparo
      Serial.println(a); 
      if (a == "Hello XBee World!")   {
          Serial.write("XBEE_COMPLETO");
          Serial.print("XBEE_COMPLETO");
      }
      printXbee = false;   
  }
}

Go Up