Mot-clé - Do it yourself

Fil des billets - Fil des commentaires

Dimanche, novembre 7 2010

Lancement du projet HOMESENSE à Paris

HomeSense Logo

EDF R&D, Tinker London et l’ Université de Lancaster ont lancer le projet HomeSense.

L’objectif de celui-ci, est de mettre à disposition de plusieurs maisons réparties en Europe un kit de développement électronique basé sur la carte Arduino et un expert référent.

L’idée de projet est d’accompagner des personnes sans compétences particulières dans le domaine de l’électronique et la domotique dans une démarche de maison intelligente.

La démarche m’a beaucoup plus et j’ai donc décidé de participer au projet pour les raisons suivantes :

  • Je m’intéresse un peu à la domotique ;
  • Le matériel libre me passionne ;
  • J’aime beaucoup le rapprochement interdisciplinaire créé par la communauté Arduino, en effet, ce n’est pas simplement encore une carte de prototypage électronique rapide créée par l’industrie, mais bel et bien un rapprochement entre les “gens” du hardware, du software et du design ;
  • Cela me fait une excuse officielle pour bidouiller ;-)

Le Kit

L’Université de Lancaster a mis au point un Kit électronique basé sur la carte Arduino, il s’agit d’un kit sans soudure, un peu comme dans une boite de LEGO, l’ensemble des connections se font très simplement.
Le kit est très semblable à l’Electronic Brick de SeeedStudio

Le kit contient les briques suivantes :

  • carte Arduino ;
  • alimentation ;
  • “sensor shield” ;
  • un émulateur de clavier ;
  • des câbles ;
  • des boutons poussoirs ;
  • des capteurs de pression ;
  • des potentiomètres ;
  • des LEDs ;
  • servomoteur ;
  • un écran LCD.

Le kit est fourni avec des nombreux exemples pour exploiter ces composants.

Les Projets

Durant les trois mois du projet, nous nous sommes mis d’accord avec Maëlle pour réaliser des projets suivants :

  • La gestion des différentes radios de l’appartement pour “Écoutez la différence” ;-)
  • Le système d’illumination de l’appartement.

Nous documenterons notre démarche et l’avancement des travaux sur les différents blogs.

Références

Voici quelques références intéressantes :

Lancement du projet HOMESENSE à Paris

HomeSense Logo

EDF R&D, Tinker London et l’ Université de Lancaster ont lancer le projet HomeSense.

L’objectif de celui-ci, est de mettre à disposition de plusieurs maisons réparties en Europe un kit de développement électronique basé sur la carte Arduino et un expert référent.

L’idée de projet est d’accompagner des personnes sans compétences particulières dans le domaine de l’électronique et la domotique dans une démarche de maison intelligente.

La démarche m’a beaucoup plus et j’ai donc décidé de participer au projet pour les raisons suivantes :

  • Je m’intéresse un peu à la domotique ;
  • Le matériel libre me passionne ;
  • J’aime beaucoup le rapprochement interdisciplinaire créé par la communauté Arduino, en effet, ce n’est pas simplement encore une carte de prototypage électronique rapide créée par l’industrie, mais bel et bien un rapprochement entre les “gens” du hardware, du software et du design ;
  • Cela me fait une excuse officielle pour bidouiller ;-)

Le Kit

L’Université de Lancaster a mis au point un Kit électronique basé sur la carte Arduino, il s’agit d’un kit sans soudure, un peu comme dans une boite de LEGO, l’ensemble des connections se font très simplement.
Le kit est très semblable à l’Electronic Brick de SeeedStudio

Le kit contient les briques suivantes :

  • carte Arduino ;
  • alimentation ;
  • “sensor shield” ;
  • un émulateur de clavier ;
  • des câbles ;
  • des boutons poussoirs ;
  • des capteurs de pression ;
  • des potentiomètres ;
  • des LEDs ;
  • servomoteur ;
  • un écran LCD.

Le kit est fourni avec des nombreux exemples pour exploiter ces composants.

Les Projets

Durant les trois mois du projet, nous nous sommes mis d’accord avec Maëlle pour réaliser des projets suivants :

  • La gestion des différentes radios de l’appartement pour “Écoutez la différence” ;-)
  • Le système d’illumination de l’appartement.

Nous documenterons notre démarche et l’avancement des travaux sur les différents blogs.

Références

Voici quelques références intéressantes :

Lancement du projet HOMESENSE à Paris

HomeSense Logo

EDF R&D, Tinker London et l’ Université de Lancaster ont lancer le projet HomeSense.

L’objectif de celui-ci, est de mettre à disposition de plusieurs maisons réparties en Europe un kit de développement électronique basé sur la carte Arduino et un expert référent.

L’idée de projet est d’accompagner des personnes sans compétences particulières dans le domaine de l’électronique et la domotique dans une démarche de maison intelligente.

La démarche m’a beaucoup plus et j’ai donc décidé de participer au projet pour les raisons suivantes :

  • Je m’intéresse un peu à la domotique ;
  • Le matériel libre me passionne ;
  • J’aime beaucoup le rapprochement interdisciplinaire créé par la communauté Arduino, en effet, ce n’est pas simplement encore une carte de prototypage électronique rapide créée par l’industrie, mais bel et bien un rapprochement entre les “gens” du hardware, du software et du design ;
  • Cela me fait une excuse officielle pour bidouiller ;-)

Le Kit

L’Université de Lancaster a mis au point un Kit électronique basé sur la carte Arduino, il s’agit d’un kit sans soudure, un peu comme dans une boite de LEGO, l’ensemble des connections se font très simplement.
Le kit est très semblable à l’Electronic Brick de SeeedStudio

Le kit contient les briques suivantes :

  • carte Arduino ;
  • alimentation ;
  • “sensor shield” ;
  • un émulateur de clavier ;
  • des câbles ;
  • des boutons poussoirs ;
  • des capteurs de pression ;
  • des potentiomètres ;
  • des LEDs ;
  • servomoteur ;
  • un écran LCD.

Le kit est fourni avec des nombreux exemples pour exploiter ces composants.

Les Projets

Durant les trois mois du projet, nous nous sommes mis d’accord avec Maëlle pour réaliser des projets suivants :

  • La gestion des différentes radios de l’appartement pour “Écoutez la différence” ;-)
  • Le système d’illumination de l’appartement.

Nous documenterons notre démarche et l’avancement des travaux sur les différents blogs.

Références

Voici quelques références intéressantes :

Mardi, octobre 6 2009

Authentification à l’aide d’un lecteur RFID Phidgets

PhidgetRFID 1023

J’ai découvert les modules Phidgets dans botmag. Il s’agit d’un ensemble de modules électroniques (capteurs, relais, servomoteurs) qui fonctionnent sur la plupart des systèmes d’exploitation et sont programmable à l’aide de nombreux langages.

Je vais décrire dans cet article l’utilisation du Kit RFID pour l’authentification PAM sur une machine Debian GNU/Linux.

Présentation du PhidgetRFID Kit

Spécifications

L’interface lit les badges qui se trouvent à proximité et est équipée de 2 sorties (une commande de Led et une commande de relais). . Elle se raccorde sur un port USB et renvoie le numéro d’identification de badge.
Voici les spécifications du lecteur :

  • Consommation maxi: 100 mA ;
  • Portée (5 à 11 cm) ;
  • Sortie commande TTL ou CMOS (relais) ;
  • Sortie 5 Vcc/250 ohms (pour led) ;
  • Protocole de communication: EM4102 ;
  • Fréquence: 125KHz
  • Échantillonnage: 30 lectures/sec ;
  • Dimensions: 81 x 68 x 16 mm.

Où trouver le kit?

Le Kit est disponible chez :

Installation

Matériel

Rien de spécial, il suffit de brancher le module, et vérifier la détection à l’aide de lsusb :
# lsusb
Bus 002 Device 005: ID 06c2:0031 Phidgets Inc. (formerly GLAB)

Logiciel

L’ensemble des composants Phidgets utilisent un SDK unique, qui fourni une bibliothèque d’accès; dont voici la procédure d’installation :
# cd /usr/src
# wget http://www.phidgets.com/downloads/libraries/Phidgetlinux_2.1.6.20090928.tar.gz
# tar xzvf Phidgetlinux_2.1.6.20090928.tar.gz
# cd Phidgetlinux/phidget21
# make
# make install

Test de fonctionnement du lecteur

La 1ère étape consiste à tester le fonctionnement du lecteur à l’aide du programme mhc_rfid :
# cd /usr/src
# wget http://www.cmatthew.net/mhc_rfid/mhc_rfid.c
# gcc -o mhc_rfid mhc_rfid.c -g -O0 -Wall -lphidget21 -lm
# ./mhc_rfid
Waiting for RFID to be attached....Phidget RFID 2-output 78185 attached!
Output: 0 > State: 0
Output: 1 > State: 0
PhidgetRFID
Serial Number: 78185
Version: 206
# Outputs: 2
Antenna Status: 1
Onboard LED Status: 0
Press any key to start.....
Antenna ON Reading.....
Press any key to end.....
Got: 0107759322
Output: 1 > State: 1
Lost: 0107759322
Output: 1 > State: 0
Closing...

L’identifiant de la carte est 0107759322.

Gestion des droits

Par défaut l’accès aux périphériques USB est limité à l’utilisateur root. Pour donner l’accès à un utilisateur simple. Il faut configurer udev à l’aide du fichier fourni dans le kit de développement :
# cd /usr/src/Phidgetlinux/phidget21/udev
# cp 99-phidgets.rules /etc/udev/rules.d/

Débrancher et rebrancher le lecteur. Vous pourrez ensuite l’utiliser en tant que simple utilisateur.

Configuration de PAM

Pour utiliser ce lecteur comme système d’authentification, il faut installer et configurer un module PAM spécifique : PAM mhcrfid

Installation du module


# apt-get install libpam-dev
# cd /usr/src
# wget http://www.cmatthew.net/pam_mhcrfid/0.1.4/pam_mhcrfid.c
# gcc -Wall -fPIC -c pam_mhcrfid.c
# gcc -shared -o pam_mhcrfid.so pam_mhcrfid.o -lpam -lm -lphidget21
# mv pam_mhcrfid.so /lib/security

Configuration d’un service

Voici un exemple de configuration pour xscreensaver :
$ cat /etc/pam.d/xscreensaver
#
# /etc/pam.d/xscreensaver - PAM behavior for xscreensaver
#
auth sufficient pam_mhcrfid.so

L’utilisateur qui lance le service doit avoir un fichier .authtag contenant l’identifiant du tag :
$ cat -e ~/.authtag
0107759322$

Et voilà ;-)

Conclusion

Le système d’authentification n’est pas très solide, il n’y a aucune protection contre le rejeux et il est possible de sniffer l’identifiant du tag, etc…
Si vous cherchez une solution d’authentification plus forte, il faut regarder du côté du projet OpenPCD.
Mais cela peut être utile et très pratique dans certaines configurations, comme l’accès à certaines ressources de mon réseau domotique ;-)

Authentification à l’aide d’un lecteur RFID Phidgets

PhidgetRFID 1023

J’ai découvert les modules Phidgets dans botmag. Il s’agit d’un ensemble de modules électroniques (capteurs, relais, servomoteurs) qui fonctionnent sur la plupart des systèmes d’exploitation et sont programmable à l’aide de nombreux langages.

Je vais décrire dans cet article l’utilisation du Kit RFID pour l’authentification PAM sur une machine Debian GNU/Linux.

Présentation du PhidgetRFID Kit

Spécifications

L’interface lit les badges qui se trouvent à proximité et est équipée de 2 sorties (une commande de Led et une commande de relais). . Elle se raccorde sur un port USB et renvoie le numéro d’identification de badge.
Voici les spécifications du lecteur :

  • Consommation maxi: 100 mA ;
  • Portée (5 à 11 cm) ;
  • Sortie commande TTL ou CMOS (relais) ;
  • Sortie 5 Vcc/250 ohms (pour led) ;
  • Protocole de communication: EM4102 ;
  • Fréquence: 125KHz
  • Échantillonnage: 30 lectures/sec ;
  • Dimensions: 81 x 68 x 16 mm.

Où trouver le kit?

Le Kit est disponible chez :

Installation

Matériel

Rien de spécial, il suffit de brancher le module, et vérifier la détection à l’aide de lsusb :
# lsusb
Bus 002 Device 005: ID 06c2:0031 Phidgets Inc. (formerly GLAB)

Logiciel

L’ensemble des composants Phidgets utilisent un SDK unique, qui fourni une bibliothèque d’accès; dont voici la procédure d’installation :
# cd /usr/src
# wget http://www.phidgets.com/downloads/libraries/Phidgetlinux_2.1.6.20090928.tar.gz
# tar xzvf Phidgetlinux_2.1.6.20090928.tar.gz
# cd Phidgetlinux/phidget21
# make
# make install

Test de fonctionnement du lecteur

La 1ère étape consiste à tester le fonctionnement du lecteur à l’aide du programme mhc_rfid :
# cd /usr/src
# wget http://www.cmatthew.net/mhc_rfid/mhc_rfid.c
# gcc -o mhc_rfid mhc_rfid.c -g -O0 -Wall -lphidget21 -lm
# ./mhc_rfid
Waiting for RFID to be attached....Phidget RFID 2-output 78185 attached!
Output: 0 > State: 0
Output: 1 > State: 0
PhidgetRFID
Serial Number: 78185
Version: 206
# Outputs: 2
Antenna Status: 1
Onboard LED Status: 0
Press any key to start.....
Antenna ON Reading.....
Press any key to end.....
Got: 0107759322
Output: 1 > State: 1
Lost: 0107759322
Output: 1 > State: 0
Closing...

L’identifiant de la carte est 0107759322.

Gestion des droits

Par défaut l’accès aux périphériques USB est limité à l’utilisateur root. Pour donner l’accès à un utilisateur simple. Il faut configurer udev à l’aide du fichier fourni dans le kit de développement :
# cd /usr/src/Phidgetlinux/phidget21/udev
# cp 99-phidgets.rules /etc/udev/rules.d/

Débrancher et rebrancher le lecteur. Vous pourrez ensuite l’utiliser en tant que simple utilisateur.

Configuration de PAM

Pour utiliser ce lecteur comme système d’authentification, il faut installer et configurer un module PAM spécifique : PAM mhcrfid

Installation du module


# apt-get install libpam-dev
# cd /usr/src
# wget http://www.cmatthew.net/pam_mhcrfid/0.1.4/pam_mhcrfid.c
# gcc -Wall -fPIC -c pam_mhcrfid.c
# gcc -shared -o pam_mhcrfid.so pam_mhcrfid.o -lpam -lm -lphidget21
# mv pam_mhcrfid.so /lib/security

Configuration d’un service

Voici un exemple de configuration pour xscreensaver :
$ cat /etc/pam.d/xscreensaver
#
# /etc/pam.d/xscreensaver - PAM behavior for xscreensaver
#
auth sufficient pam_mhcrfid.so

L’utilisateur qui lance le service doit avoir un fichier .authtag contenant l’identifiant du tag :
$ cat -e ~/.authtag
0107759322$

Et voilà ;-)

Conclusion

Le système d’authentification n’est pas très solide, il n’y a aucune protection contre le rejeux et il est possible de sniffer l’identifiant du tag, etc…
Si vous cherchez une solution d’authentification plus forte, il faut regarder du côté du projet OpenPCD.
Mais cela peut être utile et très pratique dans certaines configurations, comme l’accès à certaines ressources de mon réseau domotique ;-)

Authentification à l’aide d’un lecteur RFID Phidgets

PhidgetRFID 1023

J’ai découvert les modules Phidgets dans botmag. Il s’agit d’un ensemble de modules électroniques (capteurs, relais, servomoteurs) qui fonctionnent sur la plupart des systèmes d’exploitation et sont programmable à l’aide de nombreux langages.

Je vais décrire dans cet article l’utilisation du Kit RFID pour l’authentification PAM sur une machine Debian GNU/Linux.

Présentation du PhidgetRFID Kit

Spécifications

L’interface lit les badges qui se trouvent à proximité et est équipée de 2 sorties (une commande de Led et une commande de relais). . Elle se raccorde sur un port USB et renvoie le numéro d’identification de badge.
Voici les spécifications du lecteur :

  • Consommation maxi: 100 mA ;
  • Portée (5 à 11 cm) ;
  • Sortie commande TTL ou CMOS (relais) ;
  • Sortie 5 Vcc/250 ohms (pour led) ;
  • Protocole de communication: EM4102 ;
  • Fréquence: 125KHz
  • Échantillonnage: 30 lectures/sec ;
  • Dimensions: 81 x 68 x 16 mm.

Où trouver le kit?

Le Kit est disponible chez :

Installation

Matériel

Rien de spécial, il suffit de brancher le module, et vérifier la détection à l’aide de lsusb :
# lsusb
Bus 002 Device 005: ID 06c2:0031 Phidgets Inc. (formerly GLAB)

Logiciel

L’ensemble des composants Phidgets utilisent un SDK unique, qui fourni une bibliothèque d’accès; dont voici la procédure d’installation :
# cd /usr/src
# wget http://www.phidgets.com/downloads/libraries/Phidgetlinux_2.1.6.20090928.tar.gz
# tar xzvf Phidgetlinux_2.1.6.20090928.tar.gz
# cd Phidgetlinux/phidget21
# make
# make install

Test de fonctionnement du lecteur

La 1ère étape consiste à tester le fonctionnement du lecteur à l’aide du programme mhc_rfid :
# cd /usr/src
# wget http://www.cmatthew.net/mhc_rfid/mhc_rfid.c
# gcc -o mhc_rfid mhc_rfid.c -g -O0 -Wall -lphidget21 -lm
# ./mhc_rfid
Waiting for RFID to be attached....Phidget RFID 2-output 78185 attached!
Output: 0 > State: 0
Output: 1 > State: 0
PhidgetRFID
Serial Number: 78185
Version: 206
# Outputs: 2
Antenna Status: 1
Onboard LED Status: 0
Press any key to start.....
Antenna ON Reading.....
Press any key to end.....
Got: 0107759322
Output: 1 > State: 1
Lost: 0107759322
Output: 1 > State: 0
Closing...

L’identifiant de la carte est 0107759322.

Gestion des droits

Par défaut l’accès aux périphériques USB est limité à l’utilisateur root. Pour donner l’accès à un utilisateur simple. Il faut configurer udev à l’aide du fichier fourni dans le kit de développement :
# cd /usr/src/Phidgetlinux/phidget21/udev
# cp 99-phidgets.rules /etc/udev/rules.d/

Débrancher et rebrancher le lecteur. Vous pourrez ensuite l’utiliser en tant que simple utilisateur.

Configuration de PAM

Pour utiliser ce lecteur comme système d’authentification, il faut installer et configurer un module PAM spécifique : PAM mhcrfid

Installation du module


# apt-get install libpam-dev
# cd /usr/src
# wget http://www.cmatthew.net/pam_mhcrfid/0.1.4/pam_mhcrfid.c
# gcc -Wall -fPIC -c pam_mhcrfid.c
# gcc -shared -o pam_mhcrfid.so pam_mhcrfid.o -lpam -lm -lphidget21
# mv pam_mhcrfid.so /lib/security

Configuration d’un service

Voici un exemple de configuration pour xscreensaver :
$ cat /etc/pam.d/xscreensaver
#
# /etc/pam.d/xscreensaver - PAM behavior for xscreensaver
#
auth sufficient pam_mhcrfid.so

L’utilisateur qui lance le service doit avoir un fichier .authtag contenant l’identifiant du tag :
$ cat -e ~/.authtag
0107759322$

Et voilà ;-)

Conclusion

Le système d’authentification n’est pas très solide, il n’y a aucune protection contre le rejeux et il est possible de sniffer l’identifiant du tag, etc…
Si vous cherchez une solution d’authentification plus forte, il faut regarder du côté du projet OpenPCD.
Mais cela peut être utile et très pratique dans certaines configurations, comme l’accès à certaines ressources de mon réseau domotique ;-)

Dimanche, septembre 6 2009

Communication à l’aide du protocole ZigBee entre un PC et une carte Arduino

L’objectif de ce montage est de faire communiquer un PC avec une carte Arduino à l’aide du protocole ZigBee
Voici l’architecture de montage :

Cette article décrit la mise en place d’une topologie réseau simple, permettant de communiquer entre un PC et une carte Arduino à l’aide de modules XBee série 1 de chez Digi.

Les composants

Le montage nécessite les composants suivants :

  • un PC, fonctionnant sous Debian GNU/Linux pour ma part ;
  • une carte Arduino ou bien un adaptateur USB relié au PC ;
  • deux modules de communication XBee ;
  • une carte Arduino avec un adaptateur XBee.

A propos du protocole ZigBee

ZigBee est un protocole de haut niveau permettant la communication de petites radios, à consommation réduite, basée sur la norme IEEE 802.15.4 pour les réseaux à dimension personnelle (WPANs).

C’est vraiment un très bon protocole, qui est bien plus simple à mettre en œuvre que le protocole Bluetooth. Je ne sais pas si vous avez déjà vu la stack du protocole. Il y a de quoi avoir peur ;-)

xBee, ZigBee et beeee?

Si vous êtes perdus avec tous ces sigles, c’est normal. Moi aussi ;-) Voici ce que j’ai compris :

  • ZigBee : est le nom du protocole ;
  • XBee : est le nom du produit chez le constructeur Digi ;
  • IEEE 802.15.4 : c’est le nom du standard qui définit le communication dans un WPAN ;

Ok, c’est vraiment pas plus claire ;-) Mais c’est dit.

Liste des composants

Vous avez besoin des composants suivants :

Nom du composant Archeter chez Quantité Prix
Platine d’interface USB pour modules “XBEE” Lextronic 1 (optionnel) 23€ TTC
Module xBee Matlog 1 (optionnel) 20€ TTC
Arduino Duemilanove Libelium 2 24€ TTC
Arduino Xbee ZB 2mW + UFL Antenna Libelium 2 50€ TTC

Partie PC

La connexion entre le module Xbee et un PC peut se faire de deux manières :

  • à l’aide d’un adaptateur USB ;
  • à l’aide d’une carte Arduino et d’un Shield XBee ;

L’objectif pour la partie PC du montage est de communiquer avec le module XBee, à fin de lui envoyer des commandes.
Cette communication se fait à l’aide d un convertisseur USB-Serial, ce rôle est joué par l’adaptateur USB ou bien par la carte Arduino + Shield.

Connexion à l’aide de l’adaptateur USB

L’adaptateur XBee se connect directement sur le port USB du PC :

Un fois branché, le module est visible à l’aide de la commande lsusb :

Bus 002 Device 013: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

Communication à l’aide d’une carte Arduino + XBee Shield

L’adaptateur XBee se connecte directement sur la carte Arduino :

Il est nécessaire de modifier la configuration par du shield pour mettre la carte en mode USB-Serial.
Pour cela, il faut mettre les deux jumper à droite (éloigner du port USB), comme sur cette photo : Configuration mode USB-serial
Vous pouvez ensuite brancher la carte Arduino et voir le module XBee à l’aide de la commande lsusb :

Bus 002 Device 013: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

Connexion à l’aide d’un gestionnaire de terminal

Une fois que le module XBee est connecté au PC, il doit être disponible sur /dev/ttyUSB0 :

[31016.280327] ftdi_sio 2-8.3:1.0: FTDI USB Serial Device converter detected
[31016.280354] /build/buildd/linux-2.6.24/drivers/usb/serial/ftdi_sio.c: Detected FT232RL
[31016.280449] usb 2-8.3: FTDI USB Serial Device converter now attached to ttyUSB0

Pour communiquer avec le module, il faut utiliser un programme de gestion de terminal ( gtkterm, minicom ou bien l’IDE de la carte Arduino).
Voici la configuration pour gtkterm :

Configuration du module XBee

Une fois que vous etes connecté au module XBee, vous pouvez lui envoyer des commandes à l’aide du gestionnaire de terminal.
Le module dispose de deux mode de fonctionnement : normal et configuration.
Pour passer en mode configuration, il faut saisir +++ (sans CR, retour à la ligne).
Si le module a compris la commande, alors il retourne OK.
Voici un exemple de session :
.

Configuration d’un réseau bidirectionnelle simple

Voici les différentes instructions pour configurer un réseau simple, c’est à dire une communication bidirectionnelle entre deux cartes Arduino ou bien entre un PC et une carte Arduino

Configuration sur la carte reliée au PC


+++OK
ATMY1234
OK
ATDL5678
OK
ATDH0
OK
ATID1111
OK

Configuration du module Arduino


+++OK
ATMY5678
OK
ATDL1234
OK
ATDH0
OK
ATID1111
OK

Les commandes importantes sont :

  • ATMY : adresse source ;
  • ATDL : adresse de destination (bite de poids faible) ;
  • ATDH : adresse de destination (bite de poids fort) ;
  • ATID : identifiant du réseau ;

Utilisation au niveau de la carte Arduino

Il faut inscrire le programme suivant dans la mémoire de la carte :

void setup() {
Serial.begin(9600);
Serial.print("+++");
Serial.print("ATDH0\r");
Serial.print("ATDL1234\r");
Serial.print("ATMY5678\r");
Serial.print("ATID1111\r");
Serial.print("ATCN\r");
}
void loop() {
delay(1000);
Serial.print("42\n");
}

La programmer et changer le sens des deux “jumper” pour faire communiquer le module avec la carte.

Référence

Si vous voulez vous simplifier la vie, il existe une bibliothèque pour la programmation des modules xbee : xbee-arduino.

Communication à l’aide du protocole ZigBee entre un PC et une carte Arduino

L’objectif de ce montage est de faire communiquer un PC avec une carte Arduino à l’aide du protocole ZigBee
Voici l’architecture de montage :

Cette article décrit la mise en place d’une topologie réseau simple, permettant de communiquer entre un PC et une carte Arduino à l’aide de modules XBee série 1 de chez Digi.

Les composants

Le montage nécessite les composants suivants :

  • un PC, fonctionnant sous Debian GNU/Linux pour ma part ;
  • une carte Arduino ou bien un adaptateur USB relié au PC ;
  • deux modules de communication XBee ;
  • une carte Arduino avec un adaptateur XBee.

A propos du protocole ZigBee

ZigBee est un protocole de haut niveau permettant la communication de petites radios, à consommation réduite, basée sur la norme IEEE 802.15.4 pour les réseaux à dimension personnelle (WPANs).

C’est vraiment un très bon protocole, qui est bien plus simple à mettre en œuvre que le protocole Bluetooth. Je ne sais pas si vous avez déjà vu la stack du protocole. Il y a de quoi avoir peur ;-)

xBee, ZigBee et beeee?

Si vous êtes perdus avec tous ces sigles, c’est normal. Moi aussi ;-) Voici ce que j’ai compris :

  • ZigBee : est le nom du protocole ;
  • XBee : est le nom du produit chez le constructeur Digi ;
  • IEEE 802.15.4 : c’est le nom du standard qui définit le communication dans un WPAN ;

Ok, c’est vraiment pas plus claire ;-) Mais c’est dit.

Liste des composants

Vous avez besoin des composants suivants :

Nom du composant Archeter chez Quantité Prix
Platine d’interface USB pour modules “XBEE” Lextronic 1 (optionnel) 23€ TTC
Module xBee Matlog 1 (optionnel) 20€ TTC
Arduino Duemilanove Libelium 2 24€ TTC
Arduino Xbee ZB 2mW + UFL Antenna Libelium 2 50€ TTC

Partie PC

La connexion entre le module Xbee et un PC peut se faire de deux manières :

  • à l’aide d’un adaptateur USB ;
  • à l’aide d’une carte Arduino et d’un Shield XBee ;

L’objectif pour la partie PC du montage est de communiquer avec le module XBee, à fin de lui envoyer des commandes.
Cette communication se fait à l’aide d un convertisseur USB-Serial, ce rôle est joué par l’adaptateur USB ou bien par la carte Arduino + Shield.

Connexion à l’aide de l’adaptateur USB

L’adaptateur XBee se connect directement sur le port USB du PC :

Un fois branché, le module est visible à l’aide de la commande lsusb :

Bus 002 Device 013: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

Communication à l’aide d’une carte Arduino + XBee Shield

L’adaptateur XBee se connecte directement sur la carte Arduino :

Il est nécessaire de modifier la configuration par du shield pour mettre la carte en mode USB-Serial.
Pour cela, il faut mettre les deux jumper à droite (éloigner du port USB), comme sur cette photo : Configuration mode USB-serial
Vous pouvez ensuite brancher la carte Arduino et voir le module XBee à l’aide de la commande lsusb :

Bus 002 Device 013: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

Connexion à l’aide d’un gestionnaire de terminal

Une fois que le module XBee est connecté au PC, il doit être disponible sur /dev/ttyUSB0 :

[31016.280327] ftdi_sio 2-8.3:1.0: FTDI USB Serial Device converter detected
[31016.280354] /build/buildd/linux-2.6.24/drivers/usb/serial/ftdi_sio.c: Detected FT232RL
[31016.280449] usb 2-8.3: FTDI USB Serial Device converter now attached to ttyUSB0

Pour communiquer avec le module, il faut utiliser un programme de gestion de terminal ( gtkterm, minicom ou bien l’IDE de la carte Arduino).
Voici la configuration pour gtkterm :

Configuration du module XBee

Une fois que vous etes connecté au module XBee, vous pouvez lui envoyer des commandes à l’aide du gestionnaire de terminal.
Le module dispose de deux mode de fonctionnement : normal et configuration.
Pour passer en mode configuration, il faut saisir +++ (sans CR, retour à la ligne).
Si le module a compris la commande, alors il retourne OK.
Voici un exemple de session :
.

Configuration d’un réseau bidirectionnelle simple

Voici les différentes instructions pour configurer un réseau simple, c’est à dire une communication bidirectionnelle entre deux cartes Arduino ou bien entre un PC et une carte Arduino

Configuration sur la carte reliée au PC


+++OK
ATMY1234
OK
ATDL5678
OK
ATDH0
OK
ATID1111
OK

Configuration du module Arduino


+++OK
ATMY5678
OK
ATDL1234
OK
ATDH0
OK
ATID1111
OK

Les commandes importantes sont :

  • ATMY : adresse source ;
  • ATDL : adresse de destination (bite de poids faible) ;
  • ATDH : adresse de destination (bite de poids fort) ;
  • ATID : identifiant du réseau ;

Utilisation au niveau de la carte Arduino

Il faut inscrire le programme suivant dans la mémoire de la carte :

void setup() {
Serial.begin(9600);
Serial.print("+++");
Serial.print("ATDH0\r");
Serial.print("ATDL1234\r");
Serial.print("ATMY5678\r");
Serial.print("ATID1111\r");
Serial.print("ATCN\r");
}
void loop() {
delay(1000);
Serial.print("42\n");
}

La programmer et changer le sens des deux “jumper” pour faire communiquer le module avec la carte.

Référence

Si vous voulez vous simplifier la vie, il existe une bibliothèque pour la programmation des modules xbee : xbee-arduino.

- page 1 de 3