Go Down

Topic: Envoyer deux variables avec module xbee (Read 352 times) previous topic - next topic

gayzor4

Bonjour,

j'aimerai envoyer deux float via un module XBEE pro et le récupérer ensuite.

J'essaye de concaténer les float mais sans succès.

Une personne aurait une idée svp ?

hbachetti

Salut
Tu peux simplement les transmettre avec un print, avec des séparateurs :
Code: [Select]
float v1 = 100;
float v2 = 100;
Serial.print("valeur1=");
Serial.print(v1);
Serial.print(";valeur2=");
Serial.print(v2);

Le récepteur recevra :

valeur1=100.00;valeur2=100.00

Un peu comme une chaîne CGI.
Ensuite, le récepteur lit la chaîne et l'interprète.
strtok() peut être très utile.

Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

gayzor4

Merci pour ta réponse, je vais essayer

gayzor4

Bon je n'ai plus rien sur la sortie. Je vous mets mon code si une personne à une idée svp
Code émetteur:
#include <SoftwareSerial.h>
#include <XBee.h>

SoftwareSerial xbee(3,4); //RX-TX

void setup() {
  Serial.begin(9600); //liaison série avec le PC
  xbee.begin(9600); //liaison série avec le XBEE
}

void loop()
{
 while(1)
 {
  Serial.println("test");
  xbee.println("Testing XBEE ");
 }
}

et mon code récepteur:
#include <SoftwareSerial.h>
#include <XBee.h>


void setup() {
  Serial.begin(9600);
  Serial3.begin(9600);
}

void loop() {
  char a;
        a= Serial3.read();
        Serial.println(a);
}

J'ai configuré mes deux xbee en 9600Bds avec XCTU.
Mon récepteur est un ATMEGA d'où le Serial3.




hbachetti

Tu utilises Serial et xbee en même temps, sur la même ligne série donc. Pas possible.
Soit tu utilises 2 MEGA soit tu utilises SoftwareSerial sur ta UNO ou NANO etc.
Voici un lien.
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

gayzor4

Merci pour tes réponses mais j'ai l'impression que c'est de pire en pire et que je n'y comprends plus rien.

Je vous explique ma config si jamais une personne a une info, je suis preneur.
J'ai configurer mes deux xbee avec le logiciel X-CTU avec le lien suivant :
https://www.youtube.com/watch?v=VzgUtZyiHhE
Sauf la dernière étape qui consiste à vérifier leur dialogue car je n'ai qu'une seule platine de configuration.
Je les ai configuré en 9600bds.

J'ai ensuite branché mon Xbee Coordinator sur un arduino UNO alimenté par une batterie 9V.
Le DOUT est branché sur la pin RX, et DIN sur la pin TX (j'ai également essayé sur pin 2-3 sans succès).
Mon Xbee-pro est branché sur une antenne avec lien suivant:
https://www.reichelt.com/fr/fr/Antennes-WLAN-c-bles/DELOCK-88458/3/index.html?ACTION=3&LA=446&ARTICLE=133375&GROUPID=5841&artnr=DELOCK+88458&SEARCH=fiche%2BRP-SMA%2B100mm

En face j'ai une arduino Mega avec le DOUT branché sur RX3 et DIN sur TX3.
Je les ai alimenté en 3.3V.

Code émetteur:

#include <SoftwareSerial.h>

void setup() {
  Serial.begin(9600); //liaison série avec le XBEE
}

void loop()
{
  Serial.println("Hello world");
  delay(5000);
}


Code récepteur:

#include <SoftwareSerial.h>

void setup() {
  Serial.begin(9600);
  Serial3.begin(9600);
}

void loop() {
     if(Serial3.available()>0)
     {
        Serial.write(Serial3.read());
     }
}

hbachetti

Qu'alimentes-tu en 3.3V ? La Uno et la Mega ?
Si oui, impossible. 5V sont requis sur la broche 5V. Ou 9V sur le jack.
La sortie 3.3V est utilisée pour alimenter des cartes externes fonctionnant sous cette tension.

Dans un premier temps, pour le développement alimente simplement par l'USB, sans alimentation externe.

@+

Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

gayzor4

J'alimente le Uno en 9V via la batterie , le Mega avec l'USB et les XBEE en 3,3V via les arduino

hbachetti

Je suppose que la UNO est émetteur puisque tu inclus SoftwareSerial.h, que tu n'utilises pas d'ailleurs.
L'émetteur semble écrire sur la ligne série.
La MEGA est censée afficher ce qu'elle reçoit sur le terminal.
A part un défaut de branchement, je ne vois pas ce qui pourrait clocher.


Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

kamill

Bonjour,

Les modules XBee consomment environ 200mA. Les cartes uno ou mega peuvent délivrer environ 50mA sur le 3.3V.
Il faut une alim 3.3V plus costaud pour alimenter les modules XBee.

gayzor4

C'est bon ça fonctionne , j'ai réinitialisé les paramètres dans x-ctu et rebranché.
En revanche tu me fais peur avec la conso

Go Up