Le nouveau Digi XBee
® Les modules RF embarqués de la ligne 3 sont dotés d'une intelligence de pointe qui facilite l'exécution des règles de gestion et bien plus encore. En exécutant de simples scripts basés sur Python sur Digi XBee 3, vous pouvez faire des économies, prolonger la durée de vie de la batterie, améliorer la réactivité et renforcer la fiabilité du système.
La meilleure façon de comprendre la puissance de l'edge intelligence est la pratique. Dans cette série, nous vous présentons des exemples simples que vous pouvez utiliser directement, puis personnaliser et étendre pour apporter la puissance de la programmation à la gamme de modules radio préférée de tous.
MicroPython est un langage de programmation open-source basé sur Python 3, modifié pour s'adapter aux petits appareils et optimisé pour les microcontrôleurs. Grâce à MicroPython, un langage de script et de programmation , vous pouvez rapidement prototyper des comportements intelligents à la périphérie de votre réseau. Les lectures des capteurs peuvent être transformées en données utiles, les transmissions excessives peuvent être filtrées intelligemment et les capteurs et actionneurs peuvent être utilisés directement, les procédures complexes étant exécutées localement si nécessaire.
Démarrer avec Digi XBee Programmation MicroPython
XCTU v6.3.8 et les versions ultérieures comportent un nouveau terminal MicroPython, permettant à l'utilisateur d'interagir avec MicroPython sur les modules Digi XBee 3. Grâce à l'interface série du terminal, les utilisateurs peuvent écrire, tester, charger et exécuter du code MicroPython en utilisant l'invite interactive REPL familière.
C'est simple pour commencer. Commencez par le . (Les autres kits de Digi XBee 3 Cellular sont similaires).

- Assemblez le matériel et connectez-le au XCTU logiciel de configuration. Des instructions complètes, si nécessaire, peuvent être trouvées dans le Guide de démarrage.
- Ouvrez le programme XCTU.
- Ajouter un périphérique(aide).
- Le modem cellulaire XBee apparaît sous la forme d'une boîte dans le panneau d'information Modules radio. Cliquez sur cette boîte pour sélectionner le périphérique et charger ses paramètres actuels.
- Réglez le débit en bauds du périphérique à 115200 bps pour une expérience optimale. Dans le champ BD, sélectionnez 115200 [7] et cliquez sur le bouton Write.
- Pour mettre le modem cellulaire XBee en mode MicroPython, dans le champ AP, sélectionnez MicroPython REPL [4] et cliquez sur le bouton Write.
- Notez quel(s) port(s) COM le modem cellulaire XBee utilise, car vous aurez besoin de cette information lorsque vous utiliserez la communication par terminal. Le panneau d'information des modules radio indique le port COM utilisé.
Pour utiliser le terminal MicroPythondans XCTU :
- Cliquez sur le menu déroulant Outils et sélectionnez MicroPython Terminal.
- Cliquez sur Ouvrir. Si vous n'avez pas encore ajouté de dispositifs à XCTU :
- Dans la zone Sélectionner le port série/USB, cliquez sur le port COM que le périphérique utilise.
- Vérifiez que le débit en bauds et les autres paramètres sont corrects.
- Cliquez sur OK. (L'icône Ouvrir se transforme en Fermer, indiquant que le périphérique est correctement connecté).
- Appuyez sur Ctrl+B pour obtenir la bannière et l'invite de la version de MicroPython.
Exemple de Hello World
Chargeons un simple code "Hello World" pour confirmer que tout fonctionne. En utilisant un éditeur de texte, tel que Notepad sous Windows ou TextEdit sous MacOS, tapez ce court script :
1
2 3 4 |
Importer le sommeil
2) |
-
- Dans XCTU du terminal MicroPython, appuyez sur Ctrl+F à l'invite >>> pour mettre MicroPython en mode Flash Compile.
- Copiez le script depuis votre éditeur de texte et collez-le dans le terminal MicroPython, puis appuyez sur Ctrl+D pour terminer.
- Vous n'aurez pas besoin d'exécuter ce code au démarrage, alors répondez N quand on vous le demande.
- Enfin, appuyez sur Ctrl+R pour exécuter votre code. Il commencera à imprimer Hello World à l'écran toutes les deux secondes. Vous pouvez arrêter l'exécution en appuyant sur Ctrl-C. Voici à quoi devrait ressembler l'ensemble de votre session :
|
MicroPython v1.9.4-797-g4361c12 le 2018-09-20 ; XBC LTE-M/NB-IoT Global avec EFR32MG
Type "help()" for more information. >>> flash compile mode; Ctrl-C to cancel, Ctrl-D to finish 1^^^ from time import sleep 2^^^ while True: 3^^^ print("Hello World!") 4^^^ sleep(2) 5^^^ Compiling 67 bytes of code... Used 10/371 QSTR entries. stack: 424 out of 3584 GC: total: 32000, used: 224, free: 31776 No. of 1-blocks: 6, 2-blocks: 2, max blk sz: 4, max free sz: 1933 Compiled 67 bytes of code to 108/31232 bytes of flash. Automatically run this code at startup [y/N]? N Stored code will not run at startup. Press CTRL-R in the REPL to run the code at any time. MicroPython v1.9.4-797-g4361c12 on 2018-09-20; XBC LTE-M/NB-IoT Global with EFR32MG Type "help()" for more information. >>> Running 108 bytes of stored bytecode... Hello World! Hello World! Hello World! Hello World! Hello World! Traceback (most recent call last): File "<stdin>", line 4, in <module> KeyboardInterrupt: >>> |
Résumé de Hello World
En terminant cet exemple de Hello World, vous avez maintenant toutes les compétences nécessaires pour commencer à utiliser l'edge intelligence. Vous avez installé le matériel Digi XBee 3, vous l'avez connecté au logiciel de configuration, vous avez ouvert MicroPython, vous avez chargé du code fonctionnel et vous l'avez exécuté vous-même. Vous êtes prêt à exécuter votre première application réelle.
Détecter, transformer et transmettre une valeur
Maintenant que nous savons comment créer du code MicroPython sur la plateforme Digi XBee 3, faisons quelque chose d'utile avec. De nombreux systèmes IoT sont fondamentalement des réseaux de capteurs. Ils échantillonnent localement une certaine valeur, comme la température, la pression de l'eau ou la présence humaine, puis envoient ces informations pour qu'elles soient enregistrées, traitées et prises en compte par des applications en ligne. Pour notre prochain projet, nous allons prendre une mesure de température à l'aide d'un simple capteur, puis l'envoyer à votre téléphone sous la forme d'un message texte SMS. Ce cycle de mesure se répète toutes les minutes, s'arrêtant après 10 tours pour protéger votre santé mentale.
De nombreux capteurs produisent une simple tension variable qui doit être transformée dans les unités appropriées. Par exemple, à 25º Celsius, un capteur de température peut émettre 750 mV. Bien qu'il soit possible d'envoyer le nombre sans signification 750 à l'application en nuage, il serait beaucoup plus clair d'envoyer 25ºC au lieu de la température réelle. Ceci est facilement réalisable en MicroPython, et ces transformations seront de plus en plus utiles à mesure que nous construirons des systèmes plus intelligents.
Tout d'abord, attachons un capteur à notre modem cellulaire Digi XBee 3. Pour faciliter les choses, nous utiliserons un capteur de température TMP36, qui s'auto-calibre et communique sur un seul fil.
Pièces à commander
Préparer la carte pour connecter les composants
La manière la plus simple de connecter des composants supplémentaires à la carte de développement XBIB est de souder l'un des éléments suivants ces en-têtes à la prise à 20 broches sur le XBIB étiqueté P1. Vous pouvez maintenant utiliser des fils de liaison pour fixer des périphériques tels que des capteurs ou des moteurs.
Remarque : si vous ne disposez pas de fils de liaison ou d'un en-tête, vous pouvez également souder des fils ou des capteurs directement sur la carte XBIB.
Assemblage du matériel
Utilisez des fils de liaison pour connecter le capteur de température TMP36 à la carte XBIB.
- Avec le côté plat du TMP36 face à vous, le fil le plus à gauche est connecté à la broche 1, VCC sur la carte XBIB.
- Le fil du milieu se connecte à la broche 20 (juste à côté) DIO0.
- Le fil le plus à droite va à la broche 10, GND.

Configurer le XBee
Avec le Digi XBee 3 Cellular sur la carte XBIB et connecté à votre ordinateur par USB, lancez le programme XCTU.
- Ajoutez un module radio, puis cliquez sur ce dispositif dans la liste pour le configurer.
- Le débit de laBD Baud doit déjà être réglé sur 115200 [7] et l'activation de l'API AP sur MicroPython REPL [4].
- Une fois ces deux éléments confirmés, repérez le champ P# Destination Phone Number (numéro de téléphone de destination) et saisissez le numéro de téléphone mobile auquel vous souhaitez envoyer les messages de température.
- Inscrivez ces paramètres dans le module, en utilisant l'icône du crayon en haut.
Charger le code
Copiez le code ci-dessous dans un éditeur de texte comme Notepad. Veillez à saisir votre propre numéro de téléphone, en remplaçant "votre_numéro_mobile_ici" avant de télécharger le code. Entrez-le comme vous le feriez sur un téléphone portable, en incluant le symbole + si nécessaire. Par défaut, ce programme envoie un relevé de température une fois par minute, soit 10 fois au total. Vous pouvez personnaliser cela en modifiant les variables wait_time ou cycles comme vous le souhaitez.
N'oubliez pas que cet exemple de code doit être modifié avant d'être téléchargé.
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# Digi XBee 3 Exemple de base cellulaire
Attendre entre les cycles sleep(wait_time) |
Une fois que le code a été modifié en ajoutant votre numéro de téléphone mobile, il peut être téléchargé dans XCTU au terminal MicroPython de la manière habituelle :
- Appuyez sur Ctrl+F à l'invite >>> pour mettre MicroPython en mode Flash Compile.
- Copiez le script depuis votre éditeur de texte et collez-le dans le terminal MicroPython.
- Appuyez sur Ctrl+D pour terminer et répondez N quand on vous le demande.
- Enfin, appuyez sur Ctrl+R pour exécuter votre code. Vous pouvez arrêter l'exécution en appuyant sur Ctrl-C.
Utilisez-le
Une fois l'exemple de SMS de température lancé, vous devriez commencer à recevoir des messages texte. Si vous avez laissé les paramètres par défaut, vous recevrez dix messages, espacés d'une minute. Les résultats sur votre téléphone devraient ressembler à ceci :

Résumé
En complétant cet exemple de SMS, vous avez créé une intelligence périphérique réelle, bien que basique. Vous savez maintenant comment brancher un capteur, enregistrer ses valeurs, les transformer en unités utiles et les envoyer à un téléphone mobile. Dans les prochains articles, nous examinerons le téléchargement de données vers des applications en nuage, le déclenchement d'alertes, l'amélioration de l'autonomie de la batterie, la réduction des coûts de bande passante et bien d'autres choses encore.