Accéder au contenu principal

Zigbee (XBee) + Arduino


???????? 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
           OU bien


Modules XBee

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.

Image result for xbee pins

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.



Cliquez sur OK pour enregistrer la configuration et fermer la fenêtre Options. Nous cliquons sur "Connect" dans la barre de menu. Nous devrions voir le statut "Connecté" dans la barre d'état.
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


  1. Ouvrez le nouveau logiciel XCTU.
  2. Cliquez sur l'icône SEARCH en haut pour détecter les ports USB.
  3. 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

  1. Entrez le PANID sous le numéro 1111, identique à celui du coordinateur.
  2. VER VÉRIFICATION DU CANAL JV est activé
  3. Coordinator le coordinateur CE est DÉSACTIVÉ
  4. L'adresse de destination DL est laissée à 0 par défaut. (0 est l'adresse par défaut du coordinateur)
  5. 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). 



 Circuit













Commentaires

Popular posts

Different SOC multiprotocol model   Nordic Semiconductor is a company that specializes in ultra-low power performance wireless systems on a chip (SoC) and connectivity devices . It will produce several models of nRF SOC that can be used in our application, but we will choose just the most compatible and efficient SoC that ensures the good functioning of our system, so we will study and see the different specifications of some SoC, and here is the descriptive table of each model. BT module module BT832F/BT832AF BT832X BT840F BT840 SoC nRF52832/810 nRF52832 nRF52840 nRF52840 BT range,1 Mbps, LMPI 760 meters 1140 meters 1000 meters 150 meters BT range, 125 Kbps --- --- 2300 meters 320 meters Peak current RX 5.4 mA --- 6.4 mA 6.4 mA Peak current TX ...

Water flow sensor + Arduino

???Comment calculer le débit (le niveau) de liquide avec un capteur??? Dans ce tutoriel, vous apprendrez à utiliser un capteur de débit d'eau avec une carte Arduino.   Arduino Mega 2560 L'Arduino Mega 2560 est une carte à microcontrôleur basée sur l'ATmega2560. Il possède 54 broches d’entrée / sortie numériques (dont 14 peuvent être utilisées en tant que sorties PWM), 16 entrées analogiques, 4 UART (ports série matériels), un oscillateur à cristal de 16 MHz, une connexion USB, une prise de courant, un en-tête ICSP, et un bouton de réinitialisation. Il contient tout le nécessaire pour prendre en charge le microcontrôleur. connectez-le simplement à un ordinateur avec un câble USB ou alimentez-le avec un adaptateur CA / CC ou une batterie pour commencer. Le Mega est compatible avec la plupart des boucliers conçus pour les Arduino Duemilanove ou Diecimila.     water flow sensor Il est très simple de mesurer le débit d'eau ou de liquide à l'ai...

Détecteur de fumée

Détecteur de fumée I- Définition  Le détecteur de fumée est un système qui surveille de manière permanente l'air ambiant de la zone surveillée. En cas de propagation de fumée, une Alarme sonore est activée afin de prévenir les individus d'un potentiel risque d’incendie. II- Intérêt du détecteur de fumée Le détecteur de fumée permet d'aider à limiter les conséquences d'un début d'incendie. Il surveille en permanence l'air ambiant de l'habitation. Le détecteur de fumée est programmé pour détecter les fumées et alerter aussitôt grâce à une alarme sonore. III- Les composants et logiciel  1) Logiciel   On a utilisé le microcontrôleur Microchip pic16f877A pour réalisé cette tache du projet. Description  👦 Consommation :  👉moins de 2mA sous 5V à 4 MHz.  👉Architecture RISC : 35 instructions de durée 1 ou 2 cycles.  👉 Durée du cycle : Période de l'oscillateur quartz divisée par 4 soit 200 ns pour un quartz de 20 MHz.  ...

Controle d'accés à base de pic 16F877A avec clavier4*4

Controle d'accés à base de pic 16F877A avec clavier4*4 ​ ​ Il s’agit ici d’étudier les différents éléments qui constituent notre système de contrôle d’accès et qui entrent dans la conception de celle-ci. Le système est constituée d’un clavier avec des chiffres et un afficheur LCD. Le clavier et LCD étant les seules parties visibles par l’utilisateur.   La structure principale est composée d’un microcontrôleur PIC qui assure la programmation des codes d’activations.   Ce système aura pour but d’activer des relais pour la commande des dispositifs électroniques ou mécaniques.   Ce système de commande représente le cerveau. Il est constitué de parties bien visibles par l’utilisateur et d’autres qui sont invisibles.    Nous étalons la structure interne de notre projet avec ses différents composants électroniques et nous citons comme composants principaux :   Un microcontrôleur PIC qui est le cœur de ce circuit. ...

système de surveillance de la température

système de surveillance de la température  Introduction Dans cette partie, nous présentons une description détaillée de la solution adoptée pour répondre à notre cahier de charge et en abordant la conception détaillée de chaque partie du système afin d'obtenir une schématisation complète et précise. À la phase de simulation on va utiliser le logiciel ‘Proteus ISIS’ et pour la programmation de PIC en utilise le ‘MikroC PRO for PIC’. Les différents blocs de carte Notre carte comme l'indique la figure ci dessous est menue de plusieurs unités qui assurent le bon fonctionnement de la carte de commande de climatisation: Une carte d'alimentation " alimentation stabilisé ". Ce bloc a pour but l'alimentation des différents blocs de la carte électronique. Un microcontrôleur PIC 16F877A qui gère tous les traitements et les liaisons entre les différents blocs de la carte. Un afficheur LCD (2 lignes, 16 caractères) qui permet d'afficher les résultats. ...

Microprocessor characteristics & Architecture Classifications

     Microprocessor characteristics  &  Architecture Classifications A microprocessor is a processor whose all components have been sufficiently miniaturized to be grouped in a single box. Functionally, the processor is the part of a computer that executes instructions and processes program data. The integrated circuit (IC) , also called electronic chip, is an electronic component, based on a semiconductor, reproducing one or more electronic function (s) more or less complex (s), often integrating several types basic electronic components in a small volume (on a small plate), making the circuit easy to implement. There is a very wide variety of these components divided into two broad categories: analog and digital. A computer program is a set of operations intended to be executed by a computer. A source program is a code written by a computer scientist in a programming language. It can be compiled into a binary ...

Allumage automatique

Allumage Automatique        Notre objectif est l'allumage d'une led de façon intelligente:  - lorsque le capteur détecte la journée (la lumière de la journée), la lampe éteindre. - lorsque le capteur détecte la nuit (obscurité), led allumé automatiquement.  Principe   Le principe de détection de lumière est basé sur un composant électronique très connu appelé photorésistance, alors c'est quoi la photorésistance et comment elle fonctionne?  Qu'est-ce qu'une photorésistance ?   Une photorésistance est un composant dont la résistivité dépend de la luminosité ambiante. Pour faire simple, c'est une résistance dont la valeur change en fonction de la lumière qu'elle reçoit. Il existe différents types de photorésistances, chacune ayant des valeurs de résistance différentes en fonction de la luminosité ambiante. Le type le plus classique de ph otorésistances est de 1M ohms (obscurité) / 12K ohms (plei...