Arduino Forum

International => Français => Topic started by: BonCourage on Mar 19, 2015, 05:17 pm

Title: Problème de programmes ..
Post by: BonCourage on Mar 19, 2015, 05:17 pm
Bonjour, je vient sollicité votre aide suite à de longue recherche sans résultat ..
Tout d'abord je suis au Lycée et le travail que je vais vous présentez et mon projet en STI2D.
Voilà, notre projet consiste à utilisé un capteur volumétrique avec comme support une carte Arduino Uno, détecter un individu puis ensuite renvoyer l'information à une autre carte Arduino Uno.
Mon travail consiste à crée un programme pour mon capteur volumétrique celui ci et fonctionnel.

Voici le programme :


int calibrationTime = 10;       // 10 secondes de calibrage


int inputPin = 2;               // Définir l'ensemble des variables utilisé
int pirState = LOW;             
int val = 0;                   

void setup() {

  pinMode(inputPin, INPUT);     // Déclaration du capteur en entrer
  Serial.begin(9600);

  Serial.print("Calibrage du Capteur Volumetrique ");     // Initialisation en cours
  for(int i = 0; i < calibrationTime; i++){
    Serial.print(".");
    delay(1000);
  }
}

void loop(){
  val = digitalRead(inputPin);     // Lire la valeur d'entrer : 0 Rien à signaler
  Serial.println(val);
  if (val == HIGH) {
    delay(100);            //  Vitesse de rafraichissement des informations

    if (pirState == LOW) {

      Serial.println(" !! MOUVEMENT SUSPECT ");    // Message de prévention (allumage d'une led possible)
      pirState = HIGH;
    }
  } else {
    delay(100);
    if (pirState == HIGH){
      // we have just turned of
      Serial.println("!! PLUS DE MOUVEMENT !!");      // Message de prévention, plus de signal
      pirState = LOW;
    }
  }
}

La suite de mon travail consiste désormais a envoyer l'information binaire (1-0) à une autre carte Arduino Uno, celle ci s'occupera de traiter l'information et à juger si oui ou non la menace est réel et alerter l'utilisateur de la présence d'un intrus dans la zone protéger par le capteur.

Voici désormais le programme qui enverra l'information (sous Xbee)

#include <SoftwareSerial.h>
// RX, TX : Définition ports séries du module XBee
SoftwareSerial XbeeSerial(10, 11);


//config d'Arduino initiale

void setup() {         
  Serial.begin(9600);
  XbeeSerial.begin(9600);
 
  //Lance le réglage par défaut du module XBee pour la partie émettrice
  Configuration();
}


//Programme en boucle ... (attente d'un message de l'arduino + recon. vocale)

void loop() {
  delay(15000);
  Serial.println("Ready !"); //UNIQUEMENT POUR LE DEBOGAGE PC
  char reception[20];
  String decryption;
  int i;
  //Reste en attente de réception dans cette boucle
  while(1){
    i = 0 ;
    while ( Serial.available()>0 )      {
      //Si reçoit quelque chose, commence à inscrire caractère par caractère dans la chaîne 'decryption'
      //'reception' sert d'intermède pour mettre l'entièreté de la valeur reçue dans 'decryption'
      reception = Serial.read();
      decryption += reception;
      i++;
      delay(100);
    }
    if (i>0) {
      //Serial.println(decryption); //UNIQUEMENT POUR LE DEBOGAGE PC
      XbeeSerial.print(decryption); //Envoi l'information reçue au récepteur XBee
      delay(1000);
      decryption = ""; //Remet à zéro la variable decryption
    }
  }
}


//Configuration du XBEE (automatique)

void Configuration() {
  Serial.println("START CONFIG"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("+++");
  delay(3000);
  Serial.println("BAUD RATE : 9600"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATBD3\r");
  delay(90);
  Serial.println("CHANNEL : 12"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATCH12\r");
  delay(90);
  Serial.println("ID CHANNEL : 2014"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATID2014\r");
  delay(90);
  Serial.println("MODULE ADRESS : 1"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATMY1\r");
  delay(90);
  Serial.println("DESTINATION ADRESS : 2"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATDL2\r");
  delay(90);
  Serial.println("AES KEY : ATKY26CF2FD6DE74D631A7ED434125997B3D"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATKY26CF2FD6DE74D631A7ED434125997B3D\r");
  delay(90);
  Serial.println("AES ENABLED"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATEE1\r");
  delay(90);
  Serial.println("NO PARITY"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATNB0\r");
  delay(90);
  Serial.println("MODULE NAME"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATNI MODULE1\r");
  delay(90);
  Serial.println("WRITE CONFIGURATION"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATWR\r");
  delay(90);
  Serial.println("CLOSE NODE"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATCN\r");
  delay(90);
  Serial.println("BACK TO LOOP"); //UNIQUEMENT POUR LE DEBOGAGE PC
 
  //Retour à la boucle principale du programme
  loop();

Voici maintenant mon problème

Je cherche à combiner les deux programme si dessus .. seulement je ne trouve rien, aucune information sur la combinaison de deux programmes simultané. j'ai entendu parler de la librairy write mais je ne sais pas comment m'y prendre, si vous avez des informations pour avance un peut, la revu de projet approche et j'ai peur de montrer quelque chose de peu concluant  :smiley-confuse:

Merci encore  :smiley-lol:  :smiley-lol:
Title: Re: Problème de programmes ..
Post by: vohu on Mar 19, 2015, 05:37 pm
haha, t'as pris le temps de fouiller pour voir comment on met un avatar, mais pas comment on met les balises code :D  Modifie ton post et n'oublie pas pour la suite de les utiliser.


Qu'appelles tu "combinaison de deux programmes simultané" ??? Tu veux dire lancer tes 2 programmes en même temps ?
Si c'est ça, ce n'est pas possible car un arduino n'est pas un PC multitaches. Il faut que tu fusionnes tes 2 programmes à la main :)
Title: Re: Problème de programmes ..
Post by: BonCourage on Mar 20, 2015, 05:36 pm
Salut merci de ta réponse si rapide, en effet je recherche à combiner les deux programmes en un seul, est-ce possible ? Si oui comment s'y prendre ? Merci encore
Title: Re: Problème de programmes ..
Post by: infobarquee on Mar 20, 2015, 05:42 pm
bonjour,
balise code svp.
envoyer comment l'info?
fil, radio, pigeon voyageur? :)
vu le code je présume xbee.
déjà si tu essayais de faire les codes démo du xbee pour voir comment ca fonctionne pour envoyer les trames avec info.
a partir de la, ton boulot est presque terminé ;)
Title: Re: Problème de programmes ..
Post by: BonCourage on Mar 23, 2015, 09:12 am
Merci pour votre réponse, en effet je travail sur un module xbee, j'utilise des files ainsi qu'un module xbee comme celui ci : http://www.google.fr/imgres?imgurl=http://djynet.net/wp/wp-content/uploads/2012/04/10414-01-500x500.jpg&imgrefurl=http://djynet.net/?p%3D96&h=500&w=500&tbnid=8Oai3GVMG08tOM:&zoom=1&q=module+xbee&tbnh=91&tbnw=91&usg=__pHFvpBcwhGZIfkeAv-jn2-G_cEw=&docid=JQuqR9Cx34qBdM&sa=X&ei=p8oPVYLYLpL7aLfZgKAG&ved=0CCQQ9QEwAA

Des informations supplémentaire sur les codes de démo ?? merci pour tout
Title: Re: Problème de programmes ..
Post by: pierrotm777 on Mar 23, 2015, 09:43 am
J'ai compilé tes deux codes et ça pourrait donner cela:
Code: [Select]
#include <SoftwareSerial.h>
// RX, TX : Définition ports séries du module XBee
SoftwareSerial XbeeSerial(10, 11);

int calibrationTime = 10;       // 10 secondes de calibrage
int inputPin = 2;               // Définir l'ensemble des variables utilisé
int pirState = LOW;             
int val = 0;                   

void setup()
{

  pinMode(inputPin, INPUT);     // Déclaration du capteur en entrer
  Serial.begin(9600);

  Serial.print("Calibrage du Capteur Volumetrique ");     // Initialisation en cours
  for(int i = 0; i < calibrationTime; i++){
    Serial.print(".");
    delay(1000);
  }
 
  setupXbee();
}

void loop()
{
  val = digitalRead(inputPin);     // Lire la valeur d'entrer : 0 Rien à signaler
  Serial.println(val);
  if (val == HIGH) {
    delay(100);            //  Vitesse de rafraichissement des informations

    if (pirState == LOW) {

      Serial.println(" !! MOUVEMENT SUSPECT ");    // Message de prévention (allumage d'une led possible)
      pirState = HIGH;
    }
  } else {
    delay(100);
    if (pirState == HIGH){
      // we have just turned of
      Serial.println("!! PLUS DE MOUVEMENT !!");      // Message de prévention, plus de signal
      pirState = LOW;
    }
  }
 
  loopXbee();
}


//config d'Arduino initiale

void setupXbee()
{         
//  Serial.begin(9600);
  XbeeSerial.begin(9600);
 
  //Lance le réglage par défaut du module XBee pour la partie émettrice
  Configuration();
}


//Programme en boucle ... (attente d'un message de l'arduino + recon. vocale)

void loopXbee() {
  delay(15000);
  Serial.println("Ready !"); //UNIQUEMENT POUR LE DEBOGAGE PC
  char reception[20];
  String decryption;
  int i;
  //Reste en attente de réception dans cette boucle
  while(1){
    i = 0 ;
    while ( Serial.available()>0 )      {
      //Si reçoit quelque chose, commence à inscrire caractère par caractère dans la chaîne 'decryption'
      //'reception' sert d'intermède pour mettre l'entièreté de la valeur reçue dans 'decryption'
      reception = Serial.read();
      decryption += reception;
      i++;
      delay(100);
    }
    if (i>0) {
      //Serial.println(decryption); //UNIQUEMENT POUR LE DEBOGAGE PC
      XbeeSerial.print(decryption); //Envoi l'information reçue au récepteur XBee
      delay(1000);
      decryption = ""; //Remet à zéro la variable decryption
    }
  }
}


//Configuration du XBEE (automatique)

void Configuration() {
  Serial.println("START CONFIG"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("+++");
  delay(3000);
  Serial.println("BAUD RATE : 9600"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATBD3\r");
  delay(90);
  Serial.println("CHANNEL : 12"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATCH12\r");
  delay(90);
  Serial.println("ID CHANNEL : 2014"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATID2014\r");
  delay(90);
  Serial.println("MODULE ADRESS : 1"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATMY1\r");
  delay(90);
  Serial.println("DESTINATION ADRESS : 2"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATDL2\r");
  delay(90);
  Serial.println("AES KEY : ATKY26CF2FD6DE74D631A7ED434125997B3D"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATKY26CF2FD6DE74D631A7ED434125997B3D\r");
  delay(90);
  Serial.println("AES ENABLED"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATEE1\r");
  delay(90);
  Serial.println("NO PARITY"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATNB0\r");
  delay(90);
  Serial.println("MODULE NAME"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATNI MODULE1\r");
  delay(90);
  Serial.println("WRITE CONFIGURATION"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATWR\r");
  delay(90);
  Serial.println("CLOSE NODE"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATCN\r");
  delay(90);
  Serial.println("BACK TO LOOP"); //UNIQUEMENT POUR LE DEBOGAGE PC
 
Title: Re: Problème de programmes ..
Post by: BonCourage on Mar 23, 2015, 10:45 am
Salut pierrotm777 ! Merci pour ton aide ! C'est déjà moins le bazar sur mon moniteur ^^ le programme que tu ma donner marche en effet, cependant un problème persiste : /
J'ai l'impression que le capteur s'arrête de marcher certainement un problème de boucle je pense ?

Voici l'écran du moniteur si sa peut aider à y voir plus clair :

Calibrage du Capteur Volumetrique .....START CONFIG
BAUD RATE : 9600
CHANNEL : 12
ID CHANNEL : 2014
MODULE ADRESS : 1
DESTINATION ADRESS : 2
AES KEY : ATKY26CF2FD6DE74D631A7ED434125997B3D
AES ENABLED
NO PARITY
MODULE NAME
WRITE CONFIGURATION
CLOSE NODE
BACK TO LOOP
0
Ready !


Merci encore :) !
Title: Re: Problème de programmes ..
Post by: pierrotm777 on Mar 23, 2015, 10:58 am
Probablement à cause du while(1) de la fonction loopXbee() !
Tu reste dans cette boucle while

essai ça pour voir ?

Code: [Select]
void loopXbee() {
  delay(15000);
  Serial.println("Ready !"); //UNIQUEMENT POUR LE DEBOGAGE PC
  char reception[20];
  String decryption;
  int i;
  //Reste en attente de réception dans cette boucle
//  while(1){
    i = 0 ;
    while ( Serial.available()>0 )      {
      //Si reçoit quelque chose, commence à inscrire caractère par caractère dans la chaîne 'decryption'
      //'reception' sert d'intermède pour mettre l'entièreté de la valeur reçue dans 'decryption'
      reception = Serial.read();
      decryption += reception;
      i++;
      delay(100);
    }
    if (i>0) {
      //Serial.println(decryption); //UNIQUEMENT POUR LE DEBOGAGE PC
      XbeeSerial.print(decryption); //Envoi l'information reçue au récepteur XBee
      delay(1000);
      decryption = ""; //Remet à zéro la variable decryption
    }
//  }
}
Title: Re: Problème de programmes ..
Post by: BonCourage on Mar 23, 2015, 11:08 am
Re, après avoir changer la fonction loopXbee() voici le résultat :


Calibrage du Capteur Volumetrique ..........START CONFIG
BAUD RATE : 9600
CHANNEL : 12
ID CHANNEL : 2014
MODULE ADRESS : 1
DESTINATION ADRESS : 2
AES KEY : ATKY26CF2FD6DE74D631A7ED434125997B3D
AES ENABLED
NO PARITY
MODULE NAME
WRITE CONFIGURATION
CLOSE NODE
BACK TO LOOP
1
 !! MOUVEMENT SUSPECT
Ready !
0
!! PLUS DE MOUVEMENT !!
Ready !
0
Ready !
1
 !! MOUVEMENT SUSPECT
Ready !
1
Ready !
1
Ready !
1
Ready !
1
Ready !
1
Ready !
0
!! PLUS DE MOUVEMENT !!


Le capteur à l'air de fonctionner mais un peut trop long à mon gout je vais changer de delay, mais un autre problème persiste encore, la deuxième carte ne reçoit toujours rien : /

Merci encore :)

Title: Re: Problème de programmes ..
Post by: pierrotm777 on Mar 23, 2015, 11:12 am
Quelle deuxième carte ?
Title: Re: Problème de programmes ..
Post by: pierrotm777 on Mar 23, 2015, 11:14 am
A oui , je suppose que tu as une deuxième carte uno  avec un xbee en réception ?
Title: Re: Problème de programmes ..
Post by: BonCourage on Mar 23, 2015, 11:24 am
Oui en effet j'ai retoucher le programme afin d'éviter les spam inutile de "Ready" tout marche à merveille désormais, seul problème c'est la réception de la deuxième carte sous xBee en effet :)

Merci encore :)
Title: Re: Problème de programmes ..
Post by: pierrotm777 on Mar 23, 2015, 11:28 am
As tu configuré les deux xbee pour qu'ils communiquent ensemble !
Ils remplacent une liaison série je suppose. Tu pourrais tester entre les deux arduinos sans les xbee.
Puis configurer les xbee (différents soft existent pour cela) et les ajouter à ton montage !
Title: Re: Problème de programmes ..
Post by: pierrotm777 on Mar 23, 2015, 11:31 am
Voir ici ?

http://sysml-gadgeteer.pagesperso-orange.fr/Xbee%20Prise%20en%20main%20rapide%20module%20Xbee.pdf (http://sysml-gadgeteer.pagesperso-orange.fr/Xbee%20Prise%20en%20main%20rapide%20module%20Xbee.pdf)
Title: Re: Problème de programmes ..
Post by: BonCourage on Mar 23, 2015, 11:34 am
J'ai un shield mp3 implanté sur la deuxième depuis qu'il est installer je n'arrive plus à communiquer avec elle, c'est peut être la cause du problème non ?
Autrement oui les cartes ont était tester et la communication entre elle était fonctionnel jusqu'à l'arriver du shield mp3

Merci encore :)
Title: Re: Problème de programmes ..
Post by: BonCourage on Mar 23, 2015, 11:41 am
Ah ! J'ai réussi à communiquer avec la carte malgre le shield mp3 avec un programme d'émission (1er poste)
Cependant avec le programme final rien n'y fait la deuxième carte ne reçoit toujours rien : /
Title: Re: Problème de programmes ..
Post by: BonCourage on Mar 23, 2015, 11:47 am
Ah la communication marche avec le programme d'émission (voir 1er post) Mais le programme final ne marche toujours pas rien ne passe vers la deuxième carte : /
Title: Re: Problème de programmes ..
Post by: BonCourage on Mar 23, 2015, 11:52 am
Voici le programme de réception de la deuxième carte ( si sa peut aider ) :

#include <SoftwareSerial.h>
// RX, TX : Définition ports séries du module XBee
SoftwareSerial XbeeSerial(10, 11);

int calibrationTime = 10;       // 10 secondes de calibrage
int inputPin = 2;               // Définir l'ensemble des variables utilisé
int pirState = LOW;             
int val = 0;                   

void setup()
{
   
  pinMode(inputPin, INPUT);     // Déclaration du capteur en entrer
  Serial.begin(9600);

  Serial.print("Calibrage du Capteur Volumetrique ");     // Initialisation en cours
  for(int i = 0; i < calibrationTime; i++){
    Serial.print(".");
    delay(1000);
  }
 
  setupXbee();
}

void loop()
{
  val = digitalRead(inputPin);     // Lire la valeur d'entrer : 0 Rien à signaler
  Serial.println(val);
  if (val == HIGH) {
    delay(100);            //  Vitesse de rafraichissement des informations

    if (pirState == LOW) {

      Serial.println(" !! MOUVEMENT SUSPECT ");    // Message de prévention (allumage d'une led possible)
      pirState = HIGH;
    }
  } else {
    delay(100);
    if (pirState == HIGH){
      // we have just turned of
      Serial.println("!! PLUS DE MOUVEMENT !!");      // Message de prévention, plus de signal
      pirState = LOW;
    }
  }
 
  loopXbee();
}


//config d'Arduino initiale

void setupXbee()
{         
//  Serial.begin(9600);
  XbeeSerial.begin(9600);
 
  //Lance le réglage par défaut du module XBee pour la partie émettrice
  Configuration();
}


//Programme en boucle ... (attente d'un message de l'arduino + recon. vocale)

void loopXbee() {
  delay(500);
 
  char reception[20];
  String decryption;
  int i;
  //Reste en attente de réception dans cette boucle
//  while(1){
    i = 0 ;
    while ( Serial.available()>0 )      {
      //Si reçoit quelque chose, commence à inscrire caractère par caractère dans la chaîne 'decryption'
      //'reception' sert d'intermède pour mettre l'entièreté de la valeur reçue dans 'decryption'
      reception = Serial.read();
      decryption += reception;
      i++;
      delay(1000);
    }
    if (i>0) {
      //Serial.println(decryption); //UNIQUEMENT POUR LE DEBOGAGE PC
      XbeeSerial.print(decryption); //Envoi l'information reçue au récepteur XBee
      delay(1000);
      decryption = ""; //Remet à zéro la variable decryption
    }
//  }
}


//Configuration du XBEE (automatique)

void Configuration() {
  Serial.println("START CONFIG"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("+++");
  delay(3000);
  Serial.println("BAUD RATE : 9600"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATBD3\r");
  delay(90);
  Serial.println("CHANNEL : 12"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATCH12\r");
  delay(90);
  Serial.println("ID CHANNEL : 2014"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATID2014\r");
  delay(90);
  Serial.println("MODULE ADRESS : 1"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATMY1\r");
  delay(90);
  Serial.println("DESTINATION ADRESS : 2"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATDL2\r");
  delay(90);
  Serial.println("AES KEY : ATKY26CF2FD6DE74D631A7ED434125997B3D"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATKY26CF2FD6DE74D631A7ED434125997B3D\r");
  delay(90);
  Serial.println("AES ENABLED"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATEE1\r");
  delay(90);
  Serial.println("NO PARITY"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATNB0\r");
  delay(90);
  Serial.println("MODULE NAME"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATNI MODULE1\r");
  delay(90);
  Serial.println("WRITE CONFIGURATION"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATWR\r");
  delay(90);
  Serial.println("CLOSE NODE"); //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATCN\r");
  delay(90);
  Serial.println("BACK TO LOOP"); //UNIQUEMENT POUR LE DEBOGAGE PC
}

Merci encore :)
Title: Re: Problème de programmes ..
Post by: icare on Mar 23, 2015, 11:59 am
Bonjour,
Si tu lisais la charte du forum, tu verrais que le code doit être mis avec les "balises codes".
(http://psl.ibidouille.net/Images_forum/code.jpg)
Title: Re: Problème de programmes ..
Post by: vohu on Mar 23, 2015, 12:01 pm
D'autant plus qu'il a trouvé un p****n pour faire ses devoirs :D il a le temps de la lire...
Title: Re: Problème de programmes ..
Post by: pierrotm777 on Mar 23, 2015, 12:25 pm
Je ne sais pas . Enlève le shield et configure tes xbee . 1 emetteur et un recepteur.
Ou tu les remplace par 2 fils entre rx et tx des pins 10 et 11.
Title: Re: Problème de programmes ..
Post by: pierrotm777 on Mar 23, 2015, 12:38 pm
Quel est le code du 2ème arduino !
Title: Re: Problème de programmes ..
Post by: BonCourage on Mar 23, 2015, 07:27 pm
Le code de réception à était mis un peut plus haut, merci encore et pour ton commentaire vohu sache que je demande juste de l'aide .. rien ne sert d'insulter ou cracher sur les gens parce qu'il aide d'autre personne enfin bref je ferai attention pour les balise merci à toi icare :)
Title: Re: Problème de programmes ..
Post by: vohu on Mar 23, 2015, 07:30 pm
Tu demandes pas "juste un peu" d'aide, tu veux qu'on le fasse à ta place. C'est juste malhonnête.
Title: Re: Problème de programmes ..
Post by: pierrotm777 on Mar 23, 2015, 07:46 pm
Oui vohu , je donne du temps et de l'aide quand j'en suis capable !
Title: Re: Problème de programmes ..
Post by: pierrotm777 on Mar 23, 2015, 07:50 pm
As tu testé juste avec les ports série ?
Title: Re: Problème de programmes ..
Post by: pierrotm777 on Mar 23, 2015, 08:08 pm
Ce sujet est trés intéressant :

http://jeromeabel.net/ressources/xbee-arduino (http://jeromeabel.net/ressources/xbee-arduino)

Voir la partie en fin de page '4.0 Montages' ...
Title: Re: Problème de programmes ..
Post by: pierrotm777 on Mar 23, 2015, 08:11 pm
En 4.3 et 4.4, tu as des exemples émission/réception ...
Title: Re: Problème de programmes ..
Post by: BonCourage on Mar 23, 2015, 08:57 pm
Merci je vais regarder tout sa :) Je retourne au labo jeudi soir j'aurai le montage sous les yeux et je pourrait en dire plus (voir photo de mon montage si c'est possible depuis le forum) en tout cas merci encore pour toute ton aide si précieuse j'en suis reconnaissant mille merci :D
Title: Re: Problème de programmes ..
Post by: BonCourage on Mar 26, 2015, 05:03 pm
J'ai pris quelque photo de nos montages (émission et récéption) je les upload ce soir en rentrant chez moi :) Bonne fin de journée à vous !
Title: Re: Problème de programmes ..
Post by: BonCourage on Mar 30, 2015, 09:37 am
Rebonjour à tous, le programme est terminer tout marche correctement j'ai pris le temps d'y rajouté les commentaires pour rendre ça plus clair. Le seul problème persistant encore à ce jour c'est la réception sur la deuxième carte. Je ne comprend pas le programme de réception à était correctement implanté pourtant (merci à pierrotm777).

Code: [Select]
// RX, TX : Définition ports séries du module XBee

#include <SoftwareSerial.h>
SoftwareSerial XbeeSerial(10, 11);  // Ports utilisé : 10 / 11




         ///////// DEBUT DU PROGRAMME /////////

int calibrationTime = 5;       // 5 secondes de calibrage
int inputPin = 2;              // Définir l'ensemble des variables utilisé
int pirState = LOW;             
int val = 0;                   

void setup()
{

  pinMode(inputPin, INPUT);                               // Déclaration du capteur en entrer
  Serial.begin(9600);

  Serial.print("Calibrage du Capteur Volumetrique ");     // Initialisation en cours
  for(int i = 0; i < calibrationTime; i++){
    Serial.print("..");
    delay(1000);
  }
 
  setupXbee();
}

void loop()
{
  val = digitalRead(inputPin);     // Lire la valeur d'entrer : 0 Rien à signaler
  Serial.println(val);
  if (val == HIGH) {
    delay(100);                    // Vitesse de rafraichissement des informations

    if (pirState == LOW) {

      Serial.println("!! MOUVEMENT SUSPECT !!");       // Message de prévention (allumage d'une led possible)
      pirState = HIGH;
    }
  } else {
    delay(100);
    if (pirState = HIGH){
      Serial.println("!! PLUS DE MOUVEMENT !!");      // Message de prévention, plus de signal
      pirState = LOW;
    }
  }
 
   
 
                       // Sous programme Xbee LoopXbee


  loopXbee();
}


                       // Configuration d'Arduino initiale

void setupXbee()
{         

  XbeeSerial.begin(9600);               //  Serial.begin(9600);
 
  Configuration();                      //Lance le réglage par défaut du module XBee pour la partie émettrice
}
                                        //Programme en boucle ... (attente d'une réponse de la carte Arduino)

void loopXbee() {
  delay(200);
 
  char reception[20];
  String decryption;
  int i;
    i = 0 ;
    while ( Serial.available()>0 ) {
                                                    //Si reçoit quelque chose, commence à inscrire caractère par caractère dans la chaîne 'decryption'
                                                    //'reception' sert d'intermède pour mettre l'entièreté de la valeur reçue dans 'decryption'
      reception[i] = Serial.read();
      decryption += reception;
      i++;
      delay(1000);
    }
    if (i>0) {
                                                   //Serial.println(decryption); //UNIQUEMENT POUR LE DEBOGAGE PC
      XbeeSerial.print(decryption);                //Envoi l'information reçue au récepteur XBee
      delay(1000);
      decryption = "";                             //Remet à zéro la variable decryption
    }
}


        //Configuration du XBEE (AUTOMATIQUE)

void Configuration() {
  Serial.println("CAPTEUR OPERATIONNEL");                                  //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("+++");
  delay(3000);
  Serial.println("BAUD RATE : 9600");                                      //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATBD3\r");
  delay(90);
  Serial.println("CHANNEL : 12");                                          //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATCH12\r");
  delay(90);
  Serial.println("ID CHANNEL : 2014");                                     //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATID2014\r");
  delay(90);
  Serial.println("MODULE ADRESS : 1");                                     //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATMY1\r");
  delay(90);
  Serial.println("DESTINATION ADRESS : 2");                                //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATDL2\r");
  delay(90);
  Serial.println("AES KEY : ATKY26CF2FD6DE74D631A7ED434125997B3D");        //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATKY26CF2FD6DE74D631A7ED434125997B3D\r");
  delay(90);
  Serial.println("AES ENABLED");                                           //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATEE1\r");
  delay(90);
  Serial.println("NO PARITY");                                             //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATNB0\r");
  delay(90);
  Serial.println("MODULE NAME");                                           //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATNI MODULE1\r");
  delay(90);
  Serial.println("WRITE CONFIGURATION");                                   //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATWR\r");
  delay(90);
  Serial.println("CLOSE NODE");                                            //UNIQUEMENT POUR LE DEBOGAGE PC
  XbeeSerial.print("ATCN\r");
  delay(90);
  Serial.println("BACK TO LOOP");                                          //UNIQUEMENT POUR LE DEBOGAGE PC
}



                                                                          ///////// FIN PROGRAMME /////////



Je vous rajoute les photos de mon montage réception + émission
Merci à tous bonne journée.  ;D