Club robotique de Sophia-Antipolis

Accueil > POBOTpedia > Communications > Réseaux ZigBee > Les 10 erreurs du ZigBee

Les 10 erreurs du ZigBee

dimanche 26 juin 2011, par Eric P., Julien H.

Ce petit article permet de recenser les erreurs fréquentes qu’on a pu commettre en concevant et en développant un réseau de capteurs ZigBee. Certaines erreurs sont communes à tout montage électronique, d’autres à tous types de modems radio, mais toutes s’avèrent particulièrement critiques dans le domaine d’un réseau de capteurs ou d’une communication ZigBee entre différentes applications mobiles.

Numéro 1 : un seul ne suffit pas

Pour communiquer, il faut être deux. Donc lorsque vous achetez vos modems, pensez à prendre 2 exemplaires, pas un seul.

Cette erreur pourrait paraitre impossible, mais on l’a déjà vu, par exemple lorsqu’on souhaite se connecter à un capteur ZigBee autonome. Commandez donc toujours deux modules radio du même type, afin de vérifier d’abord le bon fonctionnement de votre programme, puis de s’assurer que c’est votre code qui pose problème et pas la radio qui est morte, enfin d’avoir une solution de remplacement si le premier vous laisse tomber.

Numéro 2 : incompatibilité des versions

On vous l’accorde bien volontiers, le protocole ZigBee devrait permettre à tous les modèles de composants de communiquer entre eux.

La réalité est toute autre, notamment à cause de la confusion entre la norme IEEE 802.15.4, le protocole ZigBee plus ou moins bien implémenté, et les tentatives propriétaires.

Chez les amateurs, ce problème est très important car la marque la plus connue, Digi (ex-Maxstream), propose deux séries incompatibles : les Series 1 (802.15.4) et les Series 2 ou 2B (ZigBee). Il y a même des premières versions de la série 2 qui n’étaient pas encore ZigBee mais ZNet... et ces séries (1 et 2) ne peuvent fonctionner ensemble. Par contre, les versions 2 et 2B communiquent ensemble, d’ailleurs 2B est le successeur des Series 2 et va totalement les remplacer (meilleure consommation d’énergie, mode programmable, réapparition du point-à-point sans coordinateur).

Et pour ajouter à la confusion, la gamme de produits dont il est question s’appelle... XBee. Avouez qu’il y a de quoi se faire des noeuds au cerveau quand on débarque dans cette galaxie ;)

Numéro 3 : une pile incomplète

Comme Bluetooth, la norme ZigBee permet différents profils appelés "standards" par l’Alliance ZigBee et tous les constructeurs n’implémentent pas tous les standards dans leur module radio : Home Automation, Remote Control, Smart Energy, mais aussi plus spécialisés comme Health Care (santé), Retail Services (achats) ou 3D Sync (appareillages vidéo 3D)...

Si vous souhaitez ou devez utiliser ces modes de communication "haut niveau" et ne pas implémenter votre propre protocole au-dessus de la couche transport ZigBee, vérifiez bien que toutes les radios de votre réseau ZigBee sans-fil supportent bien le standard souhaité.

Ce problème ne concerne pas les développeurs de robots que nous sommes, mais avec le développement de la domotique programmable et l’apparition de produits certifiés ZigBee (interrupteurs, prises électriques, capteurs domestiques, ...), cette erreur deviendra plus fréquente.

Numéro 4 : mauvaise interface

Pour une communication série (sans utiliser d’entrées/sorties), un modem ZigBee n’a pas beaucoup de connexions : l’alimentation (2 fils), les données (2 fils), voire quelques signaux d’échanges (CTS, RTS, DTR).

Pourtant, des connaissances particulières en électronique sont nécessaires pour réaliser une bonne carte d’interface. Il est donc préférable d’utiliser une carte du commerce quand on débute.

Et c’est là que l’erreur peut être commise : même si on trouve un modem ZigBee peu onéreux (une vingtaine d’euros), on peut rechigner à dépenser le double voire le triple pour une carte d’interface.

Heureusement il existe des modèles assez simples, mais dans ce cas les fonctionnalités sont réduites (USB, alimentation), parfois à l’extrême avec seulement une recopie des signaux sur des connecteurs au pas standard de 2,54 mm.

Numéro 5 : tension trop forte

Rien de spécifique au ZigBee dans cette erreur. Mais il faut le répéter : chaque composant électronique est conçu pour une tension d’alimentation particulière qu’il faut respecter. Et pour les modules les plus récents, la tension "CMOS" de 3,3 volts est répandue, tandis que vos robots ou vos montages peuvent encore utiliser la tension "TTL" de 5 volts.

Il ne faut pas céder à l’impatience, et prendre le temps de choisir un bon circuit de conversion : il existe certaines cartes d’interface qui proposent une conversion 5v à 3.3v, préférez ces modèles.

Ce site faisant la part belle à une certaine carte électronique appelée Arduino, précisons que les deux tensions sont disponibles sur le connecteur du modèle standard. De même les extensions pour module ZigBee de Digi ("shield XBee") possèdent un convertisseur dédié.

Ce qui est valable pour les tensions d’alimentation l’est aussi pour les signaux. En effet, même si on lit parfois que les XBee sont 5V-tolerent, pas la peine de tenter le diable. Cela veut dire que si le signal UART qui sort de votre micro-contrôleur est en 5V (du fait de sa tension d’alimentation), il faut le réduire dans la zone des 3V pour ne pas surcharger inutilement l’entrée du XBee.

Il existe des tas de circuits pour faire de la conversion de niveau bi-directionnelle, nécessaires dans des cas comme l’I2C par exemple. Pour envoyer un signal UART d’un micro 5V vers l’entrée 3VV du XBee on peut faire plus simple avec un banal pont diviseur constitué de deux résistances (3k3 + 1k2 par exemple). Une autre option est de placer une simple diode en série, dirigée vers la pin de sortie du micro. En effet, l’entrée UART du XBee est forcée à l’état haut par défaut, et les signaux de communication sont actif à l’état bas (logique inverse). Donc quand un bit est envoyé par le micro, il passe sa ligne Tx à 0V. Notre diode va donc répercuter cela sur l’entrée du XBee. Et lorsque la sortie du micro est à l’état 1 (et donc à 5V), la diode empêche que cette tension soit appliquée sur l’entrée du XBee. Dans l’autre sens (ie XBee -> micro) pas de précaution particulière, car un signal de 3V3 est vu comme un état 1 en logique TTL. Donc une simple liaison directe suffit ici. Cette solution a été proposée par Eric, qui l’a employée pour des modules capteurs ad’hoc réalisés dans le cadre de ses activités professionnelles.

Numéro 6 : mauvaise manipulation

Là encore, rien de spécifique mais fréquent, surtout avec les XBee. Je pense que c’est le cas avec les autres modems, comme avec tout composant complexe donc plus sensible (GPS, Bluetooth, ...).

Deux possibilités de mauvaise manip’ :
- le débrochage à chaud, vous enlevez un composant sous tension
- les tests de continuité au multimètre

Concernant la première manipulation, on peut lire dans le livre de Rob Faludi qu’il conseille de débrancher le XBee lors de sa reprogrammation, afin de provoquer un "hard reset", redémarrage permettant au bootloader (le chargeur de firmware) de reprendre la main... Je l’ai effectivement constaté avec les modems XBee S2B, avec un message particulier dans la console, mais je ne le conseille pas aux débutants qui risqueraient d’en abuser.

Concernant le second, il peut vous étonner mais c’est vrai : un multimètre en mode "testeur de continuité" envoie une tension importante dans le circuit, ce qui peut provoquer des court-circuits ou des surtensions et griller les composants. Utilisez-le toujours avec votre carte hors tension et si possible en retirant les composants actifs. La plupart des débutants l’ignorent malheureusement.

Numéro 7 : débit trop élevé

Une autre erreur, cette fois-ci à la conception : on essaie de faire passer sur un réseau ZigBee des signaux qui ne sont pas prévus pour la bande passante et le débit disponible. Pas de flux vidéo avec un réseau ZigBee !

Certaines applications conçues pour une communication série peuvent également demander un débit trop élevé : si un modem radio supporte de recevoir un débit important (au-dessus de 19200 bps), c’est surtout pour être compatible avec des périphériques série existant, mais le transfert radio utilisera un débit plus faible : la bande passante est limitée, et un envoi trop fréquent d’un nombre d’octets important va saturer la liaison.

Numéro 8 : pas de coordination

Dans les réseaux maillés, il faut un noeud coordinateur. Pour les débutants, il n’est pas aisé de modifier le firmware d’un modem radio pour changer son rôle, et on se retrouve avec un réseau impossible de communiquer.

Heureusement certains modems n’ont pas besoin de modification et réalisent une liaison point-à-point automatiquement.

La lecture de la documentation ou de livres dédiés est donc préconisée.

Numéro 9 : distance mal évaluée

Même si les constructeurs peuvent annoncer des distances importantes même pour les premiers modèles économiques, comme 30 mètres, cette distance dépend du type d’antenne utilisé, de la conception de la carte, de la configuration physique du système (ne faites pas fonctionner vos montages dans une boite en métal sans antenne externe), de la présence d’autres systèmes de communication (Wifi, Bluetooth) dans la même bande d’ondes (2,4 GHz par exemple).

Pour des applications outdoors, n’oubliez pas également que pour des fréquences dans la zone des 2.4GHz, l’humidité est un obstacle majeur. C’est ce qui explique que bon nombre de portiers radio qu’on peut acheter en GSB se mettent à mal fonctionner dès que la haie qui est sur la ligne de visée a poussé un peu ou bien qu’il pleut ou fait humide. Donc si vous avez noté une porté en champ libre par jour de beau temps, il est sage de la diviser par deux pour être certain que ça fonctionnera toujours en hiver. Surtout si vous habitez une région où la pluie et/ou le brouillard sont fréquents.

Attention également à l’effet de sol. Plus les antennes sont proches du sol, et plus celui-ci va jouer le rôle de plan de masse et absorber l’énergie. Les antennes doivent être à au moins 1 mètre du sol. Ceci est d’autant plus vrai si vous transmettez au-dessus d’un plan d’eau. D’ailleurs, pour des applications outdoors, si vous faites une liaison point à point, il est fortement conseillé d’utiliser une antenne directionnelle (type Yagi par exemple) sur au moins un des points (celui que vous pouvez pointer sur l’autre).

Numéro 10 : no magic

Enfin, une erreur fréquente est de croire qu’un produit répandu sera simple à utiliser : certes vous trouverez un grand nombre d’exemples, mais votre propre expérience peut s’avérer plus complexe que la majorité des usages, pour peu que vous ayez des besoins spécifiques.


Merci à MATLOG pour leurs conseils et leurs produits qui nous ont permis en peu de temps d’avoir une expérience significative dans le domaine des modems ZigBee.

Merci à Rob Faludi pour son blog qui nous a permis de débuter rapidement avec XBee, et plus récemment pour son livre "Building Wireless Sensor Networks", copyright 2011 Robert Faludi, ISBN 978-0-596-80773-3 chez O’Reilly.

Vos commentaires

  • Le 1er juillet à 09:26, par edmarc En réponse à : Les 10 erreurs du ZigBee

    Bonjour,
    Dans le cadre d’un projet scolaire, je me demandai combien de contact/capteur je peux connecter à un module Xbee ? Faut-il un module pour chaque équipement ?
    Merci d’avance,

    • Le 18 août à 18:42, par Eric P. En réponse à : Les 10 erreurs du ZigBee

      Il y a 5 I/O mixtes (c’est à dire input analogique ou input/output logique) sur un XBee. Une 6ème est également disponible mais est aussi utilisée comme indicateur d’association selon la configuration.
      On peut donc raccorder autant de capteurs (soit au moins 5) pour autant qu’ils communiquent un simple signal analogique ou logique.

    Répondre à ce message

  • Le 16 mars 2015 à 13:04, par Benaissa Abdenour En réponse à : Les 10 erreurs du ZigBee

    Merci Monsieur pour la critique constructive.
    Je suis un étudiant (spécialisé en Gestion des infrastructures de transport En fin de cycle) et je veux utiliser un des protocoles de réseau de capteurs sans fils (capteur de Vitesse des véhicules routiers pour détecter la congestion du trafic).
    Merci d’avance.

    Répondre à ce message

  • Le 24 juillet 2011 à 08:17, par Syrinx En réponse à : Les 10 erreurs du ZigBee

    Bonjour,

    Très intéressant.

    Je réfléchis à un montage à base de modules Arduino qui communique sans fil de l’avant d’une voiture (capot moteur) à l’arrière de la voiture (coffre).

    Il y a quelques années, sans Arduino, j’avais fait des essais en Bluetooth et j’avais remarqué que ça passe mal, surtout en roulant. Je comprends mieux avec vos remarques du point 9 : eau, proche du sol, antenne réduite à son minimum, fréquence 2.4 Ghz.

    Quelle technologie sans fils serait la mieux pour un véhicule ? Merci. A bientôt.

    • Le 24 juillet 2011 à 10:56, par Julien H. En réponse à : Les 10 erreurs du ZigBee

      Bon exemple. Je pense qu’il y aura deux problèmes à l’utilisation d’ondes radio dans une voiture (Zigbee ou autre) :

      1) l’effet "cage de Faraday" : une structure métallique bloque les ondes. Ce qui nécessite de mettre une antenne extérieure. Dans l’habitacle, nos GPS et nos téléphones mobiles continuent à fonctionner, mais sous le capot et dans le coffre, j’ai des doutes.

      2) l’utilisation de téléphones portables dans les stations d’essence est prohibé. Sans rentrer dans un débat sur la réalité de ce danger, le doute, bonne conseillère de la raison, devrait inciter à ne pas tenter le diable et de ne pas utiliser de modem sans-fil sous son capot.

      Donc si j’avais à réaliser ce système, je tirerais un fil où je profiterais d’un fil existant.

    • Le 24 juillet 2011 à 14:47, par Syrinx En réponse à : Les 10 erreurs du ZigBee

      Je me demande si un système en Radio frequency (RF) ne serait pas plus efficace. Comme celui-ci en 433 Mhz (http://www.hwkitchen.com/products/a433mhz-rf-link-kit/).

      Ayant utiliser ce type d’émetteur dans les mêmes circonstances, ça avait l’air de mieux fonctionner.

    • Le 24 juillet 2011 à 15:47, par Julien H. En réponse à : Les 10 erreurs du ZigBee

      Oui bien sûr. Si vous l’avez testé, n’hésitez pas à l’utiliser.

    • Le 24 juillet 2011 à 16:12, par Syrinx En réponse à : Les 10 erreurs du ZigBee

      Voici une étude qui précise qu’à 433 Mhz, il y a 10 % de perte de paquets quand l’émetteur est placé sous le capot moteur et que le véhicule roule.

      http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.123.971&rep=rep1&type=pdf

    • Le 25 juillet 2011 à 01:03, par Julien H. En réponse à : Les 10 erreurs du ZigBee

      10% seulement ? J’aurais pensé plus.

      Après, tout dépend si l’intégrité des messages reçus est importante ou pas.

    Répondre à ce message

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document