Tutorial Arduino XBee Shield – partie 3

P1220388

06 mar Tutorial Arduino XBee Shield – partie 3

Nous avons réussi à connecter nos XBee…

Nous avons réussi à envoyer des données d’une XBee Arduino vers Le XBee PC sous X-CTU.

Maintenant…. Commandons une LED sur le XBee Arduino depuis le PC sous X-CTU !

Le principe est identique à ce que nous avons déjà vue :

  • On éteint la LED lors de la réception d’un ‘L’
  • On allume la LED lors de la réception d’un ‘H’

ouverture du port com et paramétrage du XBee

// intitialisation port série
Serial.begin(9600);
// initialisation XBee
Serial.print("+++");
Serial.print("ATCE 0\r");
Serial.print("ATID 111\r");
Serial.print("ATSP\r");
Serial.print("ATA1 6\r");
Serial.print("ATDL 0000FFFF\r");
Serial.print("ATDH\r");
Serial.print("ATMY\r");
Serial.print("ATSC 1FFE\r");
Serial.print("ATCN\r");

Configuration de la sortie pour la LED

pinMode(ledPin, OUTPUT);

Gestion de l’éclairage de la LED en fonction de la réception ZigBee

// see if there's incoming serial data:
if (Serial.available() > 0) {
// read the oldest byte in the serial buffer:
incomingByte = Serial.read();
// if it's a capital H (ASCII 72), turn on the LED:
if (incomingByte == 'H') {
digitalWrite(ledPin, HIGH);
}
// if it's an L (ASCII 76) turn off the LED:
if (incomingByte == 'L') {
digitalWrite(ledPin, LOW);
}
}

Code source complet

const int ledPin = 13;
int incomingByte;

void setup() {
// intitialisation port série
Serial.begin(9600);
// initialisation XBee
Serial.print("+++");
Serial.print("ATCE 0\r");
Serial.print("ATID 111\r");
Serial.print("ATSP\r");
Serial.print("ATA1 6\r");
Serial.print("ATDL 0000FFFF\r");
Serial.print("ATDH\r");
Serial.print("ATMY\r");
Serial.print("ATSC 1FFE\r");
Serial.print("ATCN\r");
// intitialisation ledpin en sortie
pinMode(ledPin, OUTPUT);
}

void loop() {
// see if there's incoming serial data:
if (Serial.available() > 0) {
// read the oldest byte in the serial buffer:
incomingByte = Serial.read();
// if it's a capital H (ASCII 72), turn on the LED:
if (incomingByte == 'H') {
digitalWrite(ledPin, HIGH);
}
// if it's an L (ASCII 76) turn off the LED:
if (incomingByte == 'L') {
digitalWrite(ledPin, LOW);
}
}
}

Voici une petite vidéo un peu flou de l’ensemble….

Reste plus qu’à définir un protocole de communication et finaliser le plugin afin de pouvoir gérer le tout vie HomeSeer….

Be Sociable, Share!
Tags:
No Comments

Post A Comment