Bonjour,
Dans le cadre d'un projet étudiant, j'ai eu à réaliser un système domotique sans fils fonctionnant avec un capteur relié à un arduino lequel transmettant des information via un module XBEE.
Mon problème est que je n'arrive pas à communiquer avec le module XBEE malgré mes efforts et mes recherches sur le sujet.
Je ne reçoit aucune confirmation lors de la phase de configuration, or un message "ok" devrait être reçu.
Je réalise la configuration directement dans le code arduino, sans passer par XCTU (je n'ai pas le matériel permettant un branchement direct sur un pc), mais je ne pense pas que ça puisse poser soucis.
J'utilise la librairie "softwareSerial" pour émuler un second port série, lequel sert à communiquer avec le module XBEE, le premier étant pris par le port USB relié au PC.
Matériel:
Arduino UNO
Module XBEE 2
Shield xbee-arduino

Code:
Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
 
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP183.h>
#include <SoftwareSerial.h>
 
 
 
#define BMP183_CLK  13
#define BMP183_SDO  12  // AKA MISO
#define BMP183_SDI  11  // AKA MOSI
#define BMP183_CS   10
 
#define SP2_RX 2
#define SP2_TX 3
 
SoftwareSerial xbee(SP2_RX, SP2_TX); 
 
Adafruit_BMP183 bmp = Adafruit_BMP183(BMP183_CLK, BMP183_SDO, BMP183_SDI, BMP183_CS);
 
 
float temperature;
float pressure;
//utiliser des var volatiles pour les infos à récup par xbee
 
void setup(void) {
  Serial.begin(9600);
 Serial.println("BMP183 Pressure Sensor Test"); Serial.println("");
 
  /* Initialise the sensor */
  if(!bmp.begin())
  {
    /* There was a problem detecting the BMP183 ... check your connections */
    Serial.print("Ooops, no BMP183 detected ... Check your wiring!");
    while(1);
  }
  else
    Serial.print("BMP connected");
  setDestination();
}
 
void loop() {
 getTemp();
 //gerer ici le "compteur" pour le xbee
//fonction du xbee
//Xbee();
delay(300);
}
 
 
 
 
 
//functions area
void getTemp()
{
 
 Serial.print("Pressure:    ");
    pressure = bmp.getPressure();
    Serial.print(pressure / 100);
    Serial.println(" millibar (hPa)");
 
    temperature = bmp.getTemperature();
    Serial.print("Temperature: ");
    Serial.print(temperature);
    Serial.println(" C");
 
 
}
 
void setDestination(){
  xbee.begin(9600);
   xbee.print("+++");
   char thisByte =0;
   while(thisByte != '\r')
   {
     if(xbee.available()>0)
     {
       thisByte =xbee.read();
       Serial.println(thisByte);
     }
   }
   xbee.print("ATRE\r");
   xbee.print("ATDL12\r"); //  xbee destinator number is 12, could be modify
   xbee.print("ATMY10\r"); //this xbee number is 10, could be modify
   xbee.print("ATID1111\r"); // Personal Area Network ID, both emettor and destinator should have the same
   xbee.print("ATCN\r");
}

EN vous remerciant d'avance de l'attention porté à mon problème