Problème communication XBEE-Arduino
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:
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 :)