je suis actuellement en projet et je doit établir une connexion HF avec des module xbee je dispose de 2 un module pro s2c sur le logiciel xctu suite a une mauvaise manipulation j'ai mit les 2 modules en coordinateur et je n'arrive pas a en remettre un en rooter. De plus par la suite je doit les faire communiquer par le biais d'un arduino jai donc des codes qui sont a verifier mais que je ne paut pas tester car je narrive pas a faire communiquer mes modules aidez moi sil vous plait.
mon souci est rosolu cependant savez vous ciomment emmetre d'un xbee vers un autre sachant que mon code arduino fonctionne etb mon xbee recoit les donner du pc cependant je narrive pas a les transmettre à l'autre xbee
il y a plein de tutos, mais si c'est bien configuré alors ça fonctionne comme un port série
ma com du pc 1 est etablie avec le xbee 1 mtn je voudrais savoir comment envoyer des donner venant du pc1 et donc du xbee1 vers le xbee 2 et pc 2 en fait il me manque un bout du code d'envoie et le code de reception
vous avez quelle configuration ?
PC1 --- Xbee1 ~~~~~~~ Xbee2----PC2
ou vous avez
PC1 --- Xbee1 ~~~~~~~ Xbee2--ARDUINO--PC2
dans le premier cas il suffit d'ouvrir un terminal série des 2 côtés, se connecter sur le port du xbee au bon débit et tout ce que vous tapez d'un côté doit apparaître de l'autre
dans le second cas il vous faut un petit programme sur l'Arduino qui écoute le port série du Xbee et le répète sur le port Série USB
un truc du genre (ouvrez votre console à 115200 bauds)
const byte rxPin = 2; // RX est sur la pin 2 (connection au Tx du Xbee)
const byte txPin = 3; // TX est sur la pin 3 (connection au Rx du Xbee)
#include <SoftwareSerial.h>
SoftwareSerial xbeeSerial(2, 3); // RX, TX
void setup() {
Serial.begin(115200);
xbeeSerial.begin(9600); // à ouvrir au débit utilisé pour configirer votre xbee
}
void loop() {
if (Serial.available()) // si quelque chose vient du moniteur série
xbeeSerial.write(Serial.read()); // alors on l'envoie vers le xbee
if (xbeeSerial.available()) // si quelque chose vient du xbee
Serial.write(xbeeSerial.read()); // alors on l'envoie vers le moniteur série
}
rexobast7984:
mon souci est rosolu cependant savez vous ciomment emmetre d'un xbee vers un autre sachant que mon code arduino fonctionne etb mon xbee recoit les donner du pc cependant je narrive pas a les transmettre à l'autre xbee
Tu as des doigts en plus sur tes mains.... ? essaye de faire un effort de relecture avant de poster.
Sinon, ça sent le travail scolaire...
Ma configuration est la suivante:
PC1 --- ARDUINO1 -- Xbee1 ~~~~~~~ Xbee2--ARDUINO2 --- PC2
mon code d'émission est le suivant je vais tester votre code de reception.
#include <SoftwareSerial.h>
#include <SPI.h>
#include <SD.h>
File myFile;
SoftwareSerial xbee(2, 3);
int val = 4;
void setup()
{
Serial.begin(9600);
xbee.begin(9600);
pinMode(10, OUTPUT);
if (!SD.begin(4)) {
Serial.println("Erreur de chargement.");
return;
}
myFile = SD.open("test.txt");
}
void loop()
{
if (myFile) {
while (myFile.available())
{
Serial.write(myFile.read());
}
myFile.close();
}
}
sur votre code de réception vous avez oublier les accolades sur les boucles IF du coup je ne sais pas tellement comment est votre code les boucles if sont elle une dans l'autre ou doit-je me fier a la tabulation du code.Par ailleurs, sur le code que je vous ai transmit en fait on cherche a transmettre un fichier contenu sur une carte SD ici test.txt quand j’exécute ce code j’obtiens le résultat suivant dans le port série:
00 111 707500000 2 854500000 3 1603900000 4 1833300000 130 1845000000 50 2354800000 107 2464200000 60
il s'agit bien de mon fichier donc cela fonctionne en théorie.Cependant sur le terminal XCTU ces valeurs apparaissent en rouge comme si le xbee reçoit les données depuis la carte SD mais ne les envoies pas. Donc mon objectif serait de les envoyer vers l'autre xbee afin de les récupérer via votre code si vous me confirmez la position des accolades sur les boucles IF.
Ps: je ne sais pas mettre de photo sur ce site. Cela pourrait être plus explicite si vous m’expliquiez comment faire.
corrigez votre post ci dessus et rajoutez les code tags autour du code:
[code]`` [color=blue]// votre code ici[/color] ``[/code]
.
ça doit ressembler à cela:// votre code ici
(faites aussi ctrl-T (PC) or cmd-T (Mac) dans l'IDE avant de copier le code pour qu'il soit indenté correctement)
(plus de réponse après celle là tant que vous n'avez pas pris de bonne habitude pour garder le forum propre)
rexobast7984:
sur votre code de réception vous avez oublié les accolades sur les boucles IF
je n'ai rien oublié du tout... la tabulation que vous obtenez en appuyant sur ctrl-T montre bien que c'est "dans le if", même si en C++ les tabulations ne veulent rien dire (on n'est pas en python, l'indentation c'est juste pour faire beau).
un if
n'est pas une boucle c'est une condition...
la syntaxe pour un if c'est
[color=red]if ([/color] [color=blue]condition[/color] [color=red])[/color] [color=blue]statement[/color]
un statement peut prendre plusieurs formes (il y a 8 types de statements en c++).
le plus simple d'entre eux est l'expression statement et si on veut grouper des statements alors il y a le compound statement.
donc si vous n'avez qu'une seule "instruction" à mettre dans un if qui se résume à un des 8 statements de base connus (par exemple un appel de fonction dans mon code), alors pas besoin d'accolades, sinon vous fabriquez un compound statement avec des accolades pour regrouper à l'intérieur tous les statement que vous voulez regrouper. Si vous n'êtes pas sûr de vous bien sûr ça ne mange pas de pain de mettre tout le temps des accolades, mais il faut bien se rendre compte qu'on donne ainsi du boulot supplémentaire au compilateur (ça ne changera rien à l'exécution )
c'est important de bien comprendre cela pour comprendre la syntaxe du langage.
pour votre envoi de données, vous émettez en binaire ce qu'il y a dans la carte SD. si c'est du texte, ce code binaire représente des symboles en ASCII. et c'est ce que vous recevez de l'autre côté.
Ps: je ne sais pas mettre de photo sur ce site. Cela pourrait être plus explicite si vous m'expliquiez comment faire.
il faut lire comment utiliser le forum... il y a des liens pour cela en début de forum, entre autres lisez bien les "Règles du forum francophone"
OK, d'accord merci pour le tuyaux je ferai attention la prochaine fois. Le souci cependant est que je n'arrive pas a émettre avec le code que j'ai réaliser.
pas la prochaine fois. aujourd'hui. maintenant... corrigez votre post ci dessus pour mettre les balises de code...