???????? Comment configurer le module ZigBee pour envoyer et reçevoir des données????????
Dans ce toturiel, je vais utilisé l'Arduino Mega 2560 pour gérer le système et le module XBee pour la communication, à mesure que Je prend les valeurs mesurées par le capteur et les transmettons à un autre XBee relié à un autre Arduino.
Composants utilisées
- Arduino Mega 2560
- 2 ModuleS XBee
- Capteur de débit d'eau OU bien capteur d'humidité OU certain autre capteur
- Câbles de planche à pain
Software
- Arduino IDE: Lien de télechargement 👉 https://www.arduino.cc/en/main/software
- multi-platform application XCTU: Lien de télechargement 👉 https://www.digi.com/products/embedded-systems/digi-xbee-tools/xctu
Les modules XBee utilisent le protocole IEEE 802.15.4, plus connu sous le nom de ZigBee.
Zigbee est un protocole de communication sans fil basé sur la norme de communication pour les réseaux sans fil IEEE_802.15.4. Créée par Zigbee Alliance, une organisation théoriquement non lucrative, plus de 200 grandes entreprises (dont Mitsubishi, Honeywell, Philips, Odem, Invensys, entre autres) et de nombreux fabricants de semi-conducteurs.
Zigbee permet aux composants électroniques à faible consommation d’effectuer des communications sans fil. Il est particulièrement utile pour les réseaux de capteurs dans les environnements industriels, médicaux et surtout domotiques.
- Applications
Chaque module ZigBee, comme les adresses MAC des périphériques Ethernet, possède une adresse unique. Dans le cas des modules ZigBee, chacun a une adresse unique enregistrée en usine de 64 bits. D'autre part, le réseau ZigBee utilise des adresses 16 bits pour les algorithmes de routage. Chaque fois qu'un périphérique est associé à un réseau ZigBee, le coordinateur auquel il est associé lui attribue une adresse unique sur l'ensemble du réseau 16 bits. C’est pourquoi le nombre maximum théorique d’éléments pouvant être contenus dans un réseau ZigBee est 2 ^ 16 = 65535, ce qui correspond au nombre maximal d’adresses réseau pouvant être attribuées. Ces modules Xbee peuvent être configurés pour être utilisés dans des réseaux point à point, point à multipoint ou peer-to-peer.
Les modules Xbee fournissent 2 formes de communication conviviales:
Transmission série transparente (mode AT) et mode API présentant de nombreux avantages.
☝Mode AT
Il s'agit du mode de transmission série transparent (mode AT), dans lequel la communication ressemble à une transmission via un port série, car le périphérique est responsable de la création de la trame et les données qui atteignent la broche Tx seront envoyées sans fil. est considéré comme la façon d'utiliser ces nœuds plus simple, son principal inconvénient est d'envoyer des informations à d'autres nœuds est nécessaire pour entrer en mode de configuration de façon permanente pour changer l'adresse de destination.
✌Mode API
L'autre mode de communication est appelé mode API. Dans ce cas, il faut commander un microcontrôleur externe pour créer une trame spécifiant le type d'informations à envoyer. Ce mode est recommandé pour les très grands réseaux où vous ne pouvez pas perdre le temps et la sortie le mode de configuration de l'appareil. Pour les réseaux avec une topologie maillée, il s'agit du mode à utiliser.
👉Logiciel à configurer
Les modules Xbee peuvent être configurés à partir du PC à l'aide des programmes X-CTU, Moltosenso ou Cool Terms, en plus des autres. Les termes Moltosenso et Cool nous permettent de travailler sur plusieurs plates-formes, alors que X-CTU ne fonctionne que sous Windows.
Les Xbees peuvent communiquer dans des architectures de réseau point à point, point à point ou multipoint. Choisir le bon module XBee implique le choix du type d'antenne (connecteur à puce, fil ou SMA) et de la puissance de transmission (2 mW pour 300 pieds ou 60 mW pour un kilomètre maximum).
Le module nécessite une alimentation de 2,8 à 3,4 V, la connexion à la terre et les lignes de transmission de données via UART (TXD et RXD) pour communiquer avec un microcontrôleur ou directement sur un port série. Utiliser un convertisseur adapté aux niveaux de tension.
👉Communication Xbee
Les communications ZigBee s'effectuent dans la bande libre de 2,4 GHz. Contrairement à Bluetooth, il n'utilise pas le saut de fréquence (FHSS), mais établit des communications via une seule fréquence, c'est-à-dire un canal. Normalement, un canal peut être sélectionné parmi 16 canaux possibles. La portée dépend de la puissance d'émission de l'appareil ainsi que du type d'antenne utilisée (céramique, dipôles ...). La portée normale avec antenne dipôle en vision directe est généralement approximative (exemple de MaxStream dans la version 1 mW). De puissance) de 100m et environ 30m à l'intérieur. La vitesse de transmission de données d'un réseau ZigBee peut atteindre 256 kbps. Enfin, supposons qu’un réseau ZigBee puisse théoriquement être constitué de 65535 ordinateurs, c’est-à-dire que le protocole est prêt à être en mesure de contrôler cette énorme quantité de périphériques dans le même réseau. La réalité est plus petite, il s’agit en tout cas de milliers d’équipes.
✋Xbee Shield
Le bouclier XBee pour Arduino vous permet de communiquer sans fil avec Arduino à l’aide de ZigBee.
👉Configuration du cavalier
Le blindage Xbee a deux cavaliers (les petits couvercles en plastique situés sur les trois broches étiquetées Xbee / USB). Ils déterminent le mode de connexion de la communication série du Xbee entre le microcontrôleur ATmega2560 et la puce de la série FTDI sur la carte Arduino.
Avec le cavalier dans Xbee (les deux plus proches de l'intérieur de la plaque à broches), la broche DOUT du module Xbee est connectée à la broche RX du microcontrôleur; et la broche DIN est connectée à TX. Notez que les broches RX et TX du microcontrôleur sont toujours connectées aux broches TX et RX (respectivement) de la puce FTDI - les données envoyées par le microcontrôleur seront transmises à l'ordinateur via USB et simultanément envoyées sans fil par le module Xbee. Cependant, le microcontrôleur ne peut recevoir que des données du module XBee, pas de la clé USB de l'ordinateur.
Les cavaliers étant en position USB (les deux les plus proches du bord de la plaque), les broches DOUT du module Xbee sont connectées à la broche RX de la broche FTDI de la broche et le module DIN Xbee à la broche TX du FTDI puce. Cela signifie que le module Xbee peut communiquer directement avec l'ordinateur. Toutefois, cela ne fonctionne que si le microcontrôleur a été retiré de la carte Arduino. Si le microcontrôleur reste Arduino, vous pouvez communiquer avec l'ordinateur via USB, mais ni l'ordinateur ni le microcontrôleur ne peuvent communiquer avec le module XBee.
👉Envoyer et recevoir des données par xbee
Dans cette application, nous établirons la connexion radio entre deux modules connectés à deux Arduino. Il s'agit d'envoyer et de recevoir les valeurs mesurées par le capteur d'humidité (ou capteur de débit d'eau) qui seront envoyées par l'un ou l'autre PC sous la forme d'un chat (bidirectionnel).
✋Configuration xbee
Il existe plusieurs programmes de communication avec le port série pour effectuer la programmation du module. Dans ce cas, nous utiliserons CoolTerm car il fonctionne avec tous les systèmes d’exploitation Windows, Mac et Linux et est également gratuit.
Nous mettons les cavaliers en position USB (les deux broches les plus proches du bord de la carte). Nous pouvons maintenant les connecter: nous marquons le premier module XBee avec lequel nous allons travailler.
Nous insérons le module XBee sur le bouclier XBee et celui-ci sur l’Arduino UNO. Nous connectons maintenant l’Arduino à l’ordinateur via le câble USB.
a) Configurez le logiciel CoolTerm:
Nous ouvrons le logiciel CoolTerm et sélectionnons "Options". Nous sélectionnons le port série par lequel le module XBee a été connecté.
Nous devons nous assurer que le débit en bauds est défini sur 9600. Le nombre de bits dans les données est 8. La parité est définie sur "aucun". Le nombre de bits d'arrêt est défini sur 1.
Nous écrivons "+++" pour entrer en mode commande. Le système renvoie "OK".
Configuration du premier appareil radio:
+++
OK
ATID 3001
OK
ATMY 1
OK
ATDH 0
OK
ATDL 2
OK
ATID
3001
ATMY 1
ATDH 0
ATDL 2
Configuration de la deuxième unité radio:
Nous insérons le module XBee sur le bouclier XBee et celui-ci sur l’Arduino UNO.
Maintenant, nous connectons l’Arduino à l’ordinateur avec le câble USB et nous cliquons sur "Connecter" dans le programme CoolTerm. Ensuite, nous suivons les mêmes étapes que nous avons déjà effectuées avec le module 1. Dans ce cas, définissez ATMY 2 et la valeur de ATDL 1.
✋Configuration avec le logiciel X-CTU
Voici les types d'appareils de Xbee
ZigBee définit trois types de périphériques différents: coordinateur, routeur et périphérique final.
👉Coordinateur
Les réseaux ZigBee ont toujours un seul périphérique coordinateur. Cet appareil démarre le réseau en sélectionnant le canal et le PAN ID. Distribue les adresses, permettant ainsi aux routeurs et aux périphériques de se connecter au réseau. Met en mémoire tampon les paquets de données sans fil pour les enfants de périphériques endormis.
Le coordinateur gère les autres fonctions qui définissent le réseau, le sécurisent et le maintiennent en bonne santé. Cet appareil ne peut pas dormir et doit être allumé à tout moment.
👉Routeur
Un routeur est un nœud ZigBee complet. Cet appareil peut rejoindre des réseaux existants et envoyer, recevoir et acheminer des informations. Le routage implique de servir de messager pour les communications entre d’autres périphériques trop éloignés pour transmettre des informations par eux-mêmes.
Peut mettre en mémoire tampon des paquets de données sans fil pour les enfants de périphériques endormis Peut permettre à d'autres routeurs et périphériques de rejoindre le réseau. Ne peut pas dormir et doit être allumé à tout moment. Peut avoir plusieurs routeurs dans un réseau.
👉Dispositif final
Un périphérique final est essentiellement une version réduite d'un routeur. Cet appareil peut rejoindre des réseaux existants et envoyer et recevoir des informations, mais ne peut servir de messager entre aucun autre appareil. Impossible d'autoriser d'autres périphériques à rejoindre le réseau.
Utilise du matériel moins coûteux et peut s’éteindre par intermittence, économisant de l’énergie en entrant temporairement en mode veille. Un routeur ou le coordinateur doit toujours être son périphérique parent. Le parent aide les terminaux à rejoindre le réseau et stocke les messages pour eux lorsqu'ils sont endormis.
Les réseaux ZigBee peuvent avoir un nombre quelconque de terminaux. En fait, un réseau peut être composé d'un coordinateur, de plusieurs périphériques finaux et de zéro routeur.
- Pour configurer le XBEE, vous avez besoin d'un adaptateur USB XBEE qui peut être facilement connecté au port USB de votre PC.
- Ou nous pouvons utiliser la carte Arduino comme USB-UART. Pour cela, nous devons connecter RST d’Arduino à GND. Cela contourne le chargeur de démarrage d’Arduino et la carte peut être utilisée pour la communication série. Nous connectons Rx à Rx, Tx à Tx (connexion directe et NON inversée) entre Arduino et XBEE lors de la configuration.
Étapes de configuration du coordinateur
- Ouvrez le nouveau logiciel XCTU.
- Cliquez sur l'icône SEARCH en haut pour détecter les ports USB.
- Sélectionnez les ports COM sur lesquels vous avez connecté les adaptateurs USB.
Dans mon cas, l'un des adaptateurs USB se voit attribuer COM6 et l'autre COM7.
La première chose à faire est de définir l'ID PAN du réseau. Cela peut aller de 0 à FFFF hex. Dans mon cas, je le règle sur 1111. Les autres radios doivent également être réglées dans le même PAN ID.
4. Faites défiler davantage et activez le CE (Coordinateur activé)
- L'adresse de destination DH est laissée à 0 par défaut.
- L'adresse de destination DL est définie sur hexadécimal FFFF, ce qui permet à la radio de fonctionner en mode BROADCAST afin de pouvoir communiquer avec toutes les radios du même PANID.
- L'identifiant de nœud peut recevoir n'importe quel nom tel que «coordinateur». Cette dénomination est facultative.
- L’icône PENCIL en haut pour ÉCRIRE les modifications apportées.
Étapes de configuration du routeur
- Entrez le PANID sous le numéro 1111, identique à celui du coordinateur.
- VER VÉRIFICATION DU CANAL JV est activé
- Coordinator le coordinateur CE est DÉSACTIVÉ
- L'adresse de destination DL est laissée à 0 par défaut. (0 est l'adresse par défaut du coordinateur)
- Cliquez sur le bouton WRITE pour enregistrer les modifications apportées.
La communication
Les modules sont appariés et prêts pour la communication.
Maintenant, laissez-nous tester la communication.
👉 Dans la fenêtre XCTU, supprimez la deuxième radio. Cliquez sur la première radio pour charger les paramètres.
👉En laissant la fenêtre XCTU ouverte, démarrez une autre instance de XCTU et positionnez-la à gauche de la fenêtre précédente.
👉La radio ROUTER est à gauche et la radio COORDINATOR à droite.
👉Cliquez sur l'icône TERMINAL dans les deux fenêtres pour passer en mode Terminal.
👉Cliquez sur l'icône CONNEXION SÉRIE des deux fenêtres pour passer en mode de connexion série.
👉Maintenant, nous pouvons taper n'importe quel message dans la fenêtre de journal de la console et voir celui reçu sur l'autre radio. Le message transmis est en BLEU et le message reçu est en ROUGE.
Test
Mesurer le débit d'eau et envoyer les données à l'aide d'Arduino et de Xbee
Au début, nous mesurerons le débit d'eau en litres par heure dans le tuyau et nous écrirons les valeurs mesurées sur le moniteur série de l'ordinateur à l'aide d'Arduino IDE. Ensuite, nous allons sauvegarder ces valeurs et les transmettre en utilisant le module xbee. Nous avons donc un émetteur (xbee 1) et un récepteur (xbee 2).
Measure water flow: Voir https://microcontrolleur.blogspot.com/search/label/Water%20flow%20sensor
Circuit
Commentaires
Enregistrer un commentaire