TP 3: Communications entre capteurs
Auteur: Congduc Pham, UPPA
TRES IMPORTANT: Avant toute
manipulation pour enlever des composants électroniques des
capteurs, il faut que le capteur soit éteint ou non alimenté par
le port USB par exemple
Dans ce TP vous allez mettre en
oeuvre des communications entre les capteurs. Tous les capteurs
ont une radio 802.15.4 avec un débit binaire de 250kbps. Au
niveau applicatif, les communications s'effectuent avec une API
spécifique.
Informations préliminaires sur les modules XBee pour les cartes
Arduino et les capteurs Waspmote
Les cartes Arduino ont une connectivité 802.15.4 grâce à un module
XBee de chez Digi.
Avant de commencer, vous pouvez lire cette petite présentation
synthétique sur le module XBee. Tous les modules XBee sont
configurés pour les TPs avec la configuration suivante en la liaison
série:
- baud rate : 38400
- flow control: none
- data bit: 8
- parity: none
- stop bits: 1
Ensuite, ces modules ont été configurés avec des commandes AT de la
manière suivante:
atid3332 (PAN ID 0x3332)
atchc (channel 0x0C)
atap2 (API mode 2)
atbd5 (38400 baud)
atee0 (no encryption)
atmm2 (mac mode 2, default 802.15.4 with ack)
atmyffff (no 16-bit address)
Ce qui veut dire que les modules XBee sont tous dans le réseau
0x3332, sur le canal 0xC, utilisent le mode mac 2 (802.15.4 avec
acquittement), désactivent les adresses 16-bit, n'utilisent pas
d'encryption et utilise le mode API 2 (API en mode paquet). Pour l'instant, ne faites aucune
modification de la configuration par défaut.
Plus de détails peuvent être trouvés dans la documentation du module XBee
fournie par Digi.
Communication avec des Arduino MEGA 2560
Les Arduino MEGA2560 utilise
le module Xbee qui est connecté par le biais de la 'XBee wireless
shield'.
Il est possible d'utiliser les commandes AT pour envoyer des données
à la radio mais ce mode de fonctionnement n'est pas pratique du tout
et nous allons utiliser la librairie de communication xbee-arduino.
Installation de la librairie de communication:
- Récupérer l'archive xbee.zip qui
est une librairie de communication pour module XBee et
décompresser le dans votre dossier sketch/libraries
- Vous pouvez aussi récupérer la documentation
associée à cette librairie
Premiers pas avec des exemples simple de communication:
- Lire ces transparents
au prélable qui explique le fonctionnement de ces module XBee
avec les Arduino.
- Récupérer l'archive de Arduino_tutorial_Xbee_Send
et mettez le dans votre répertoire sketch.
- Avec l'IDE, ouvrez cet exemple, étudiez le et programmer un
capteur Arduino avec ce programme
- Récupérer l'archive de Arduino_tutorial_Xbee_Receive
et mettez le dans votre répertoire sketch.
- Avec l'IDE, ouvrez cet exemple, étudiez le et programmer un
capteur Arduino avec ce programme
- Avec le Send et le Receive, mettez vous par pair, changer les
adresses de destination, changer le contenu de ce qui est envoyé
et vérifier que vous recevez bien.
- Répéter les étapes 3-6 avec Arduino_tutorial_Xbee_SendBinary
et Arduino_tutorial_Xbee_ReceiveBinary
- (optionnel) En vous inspirant de ces exemples, écrivez un
programme d'envoi et de réception de données plus complexes:
flottant, structure,... Un capteur enverra les données, un
autre, relié à l'ordinateur écrira sur le port série les données
reçues. Vous pouvez utiliser le SerialMonitor de l'IDE ou bien minicom ou
cutecom
sous Linux pour afficher les données série reçues (sur le port /dev/ttyACM0).
L'avantage de cutecom est qu'il permet
d'afficher les données en hexadécimal pour le déboggage.
Utiliser l'écran OLED
- Un exemple simple (.zip)
pour afficher sur écran OLED. Sur Arduino MEGA2560 ou Arduino Uno, utiliser les pins 7 (pour GND), 6, 5 et 4 (#define 7GND654) ou bien les pins GND, 13, 12 et 11 (#define GND13_12_11); sur Arduino Nano, utiliser les pins GND, 2, 3 et 4 (#define GND234) ou les pins 9 (pour GND), 8, 7 et 6 (#define 9GND876). Nécessite la librairie
U8G2 (.zip)
à installer dans sketch/libraries. Si vous aviez déjà installé l'archive sketch.zip du TP1, cette librairie U8G2 est déjà incluse.