Arduino mega et XBEE S2

bonjour a tous,

encore moi :slight_smile:

j'essaye de configurer une connexion xbee avec un xbee en coordinateur et un en router connecter chacun a une arduino mega 2560
les 2 xbee sont les meme et ce sont :
http://fr.hobbytronics.co.uk/xbee-2mw-s2-pcb
j'utilise un xbee explorer avec chaque xbee: Sparkfun XBee Explorer Regulated Breakout Board pour faire la connexion avec la mega (et le pc aussi pour test)

partie coordinateur (qui si j'ai bien compris et le point central du futur réseaux mesh ?)

arduino Mega 2560

XBEE -----> Mega

GND -------> GND
5V --------> 5V
Dout --------> TX3(14)
Din ----------> RX3(15)

Sketch :

int led = 13;
int var = 0;
void setup(){
   pinMode(led, OUTPUT); 
  Serial.begin(9600);
  Serial1.begin(57600);
  Serial2.begin(57600);
  Serial3.begin(57600);

  Serial.println("Hello Computer");
  Serial1.println("Hello Serial 1");
  Serial2.println("Hello Serial 2");
  Serial3.println("Hello Serial 3");
}

void loop() {
    digitalWrite(led, HIGH);
  
  Serial.print("loop ");
  Serial.println(var);
  Serial.println("Hello Computer");
  Serial1.println("Hello Serial 1");
  Serial2.println("Hello Serial 2");
  Serial3.println("Hello Serial 3");
  
  delay(1000);
  var++;
  digitalWrite(led, LOW);  
  delay(1000);
}

partie router (qui si j'ai bien compris sont les "client" du futur réseaux mesh ?)

arduino Mega 2560

XBEE -----> Mega

GND -------> GND
5V --------> 5V
Dout --------> TX3(14)
Din ----------> RX3(15)

Sketch :

int led = 13;
void setup(){
   pinMode(led, OUTPUT); 
  Serial.begin(9600);
  Serial1.begin(57600);
  Serial2.begin(57600);
  Serial3.begin(57600);

  Serial.println("Hello Computer");
  Serial1.println("Hello Serial 1");
  Serial2.println("Hello Serial 2");
  Serial3.println("Hello Serial 3");
}

void loop() {
if (Serial1.available() > 0) {
    Serial.println("Serie 1 = ");
    Serial.write(Serial1.read());
    digitalWrite(led, HIGH);
    
}
if (Serial2.available() > 0) {
     Serial.println("Serie 2 = ");
    Serial.write(Serial2.read());
    digitalWrite(led, HIGH);
}
if (Serial3.available() > 0) {
     Serial.println("Serie 3 = ");
    Serial.write(Serial3.read());
    digitalWrite(led, HIGH);
}

delay(1000);
    digitalWrite(led, LOW);
}

mais cela ne marche pas :frowning: je vois bien la led dout sur le xbee coordinateur qui clignote donc je suppose qu'il envoie les donnée

mais sur la partie router je ne vois rien sur le serial mais je ne vois pas non plus la led Din clignoter ... donc je suppose encore :slight_smile: que rien n'est recu ...

pourtant quand je connecte les xbee sur 2 pc et que j'utilise le soft X-CTU la communication se fait bien dans les 2 sens ce sue je tape dans un terminal s'ecrit sur l'autre et vise versa ..

quelqu'un aurait-il un conseil ?
faut-il utilisé une autre librairie ?

merci de votre aide

Bonsoir,

Si c'est pour relier "sans fil" 2 Mega en liaison série (Serial ou SoftwareSerial), le plus simple c'est de laisser les 2 Xbee en mode Transparent . Les Xbee remplacent directement le cablage, sans aucune modif des programmes dans les 2 Mega. Il suffit de brancher les Xbee sur les Pins affectées par les programmes des Mega, avec mise à niveau 5V/3.3V. Les supports Explorer sont régulés pour cette mise à niveau.
Ce sont des Xbee Série 2 je ne connais pas leur mode par défaut.( pas trouver dans la doc en survolant les 155pages!!! d'english
http://fr.hobbytronics.co.uk/datasheets/xbee_2mw_s2_90000976_G.pdf )

J'ai des Série1 , leur mode par défaut est le mode Transparent.

En lisant tes programmes, Serial envoie sur le Terminal Arduino (PC) par l'Usb (Serial: 0 (RX) and 1 (TX)
Serial1 et Serial2:??? pour quoi faire si les pins correspondantes ne sont pas connectées ?
Serial 3: 15 (RX) and 14 (TX).
Erreur de cablage: pour les 2 Xbee
Dout --------> RX3(15)
Din <---------- TX3(14))

bonjour et merci pour la réponse,

en effet le distrait que je suis avait inversé in et out :frowning:
comme quoi faut prendre du recul parfois :slight_smile:

merci beaucoup :wink: