Dans notre
Premier article de la série de publications sur la programmation MicroPython pour la périphérie.nous avons parlé de la manière de collecter les relevés des capteurs et de leur donner un sens en utilisant le logiciel
Digi XBee 3 Kit Cellulaire LTE-Mainsi que le logiciel de configuration gratuit de Digi,
Digi XCTUet un peu de code MicroPython simple. Bienvenue dans la deuxième partie de cette série.
L'intelligence périphérique fournie par la gamme de modules RF intégrés XBee 3 de Digis permet d'envoyer des données vers le cloud en un clin d'œil. Pour notre deuxième projet de cette série de travaux pratiques, nous montrons comment télécharger les relevés de température mesurés à partir d'un module LTE-M cellulaire Digi XBee 3 vers des "flux de données" sur le site Web de l'entreprise.
Digi Remote Manager® (Digi RM).
Les développeurs peuvent utiliser gratuitement cette plateforme de gestion des données et des appareils. La ligne Digi XBee 3 Cellular prend en charge les normes de communication ouvertes, de sorte qu'elle peut également partager des données avec Amazons IoT Platform, Microsoft Azure, Adafruit.io, Google Cloud IoT, ThingSpeak, IBM Watson et bien d'autres. Recherchez des tutoriels pratiques ou plusieurs d'entre eux dans les projets futurs.
Les lecteurs de notre premier projet se souviendront que 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. En utilisant MicroPython, vous pouvez rapidement créer des connexions aux services en nuage directement à partir des limites de votre réseau.
Envoyer des données à Digi Remote Manager
De nombreux systèmes IoT transmettent des données à des plateformes en ligne sur Internet. Ils échantillonnent généralement une certaine valeur localement, comme la température, puis envoient les relevés à l'une des nombreuses applications en ligne pour l'enregistrement, le traitement et la visualisation des données. Dans ce projet, nous allons prendre des mesures de température à l'aide d'un simple capteur, puis les envoyer à Digi Remote Manager sous la forme d'un "flux de données" qui peut être visualisé de différentes manières, accessible via une API ouverte ou stocké pour une utilisation ultérieure.
Nous commençons avec la même configuration matérielle que celle utilisée dans le projet "Sense, Transform and Send a Value", y compris le capteur de température TMP36.
Configurer le matériel
Si vous avez manqué notre premier article, veuillez visiter
Exemples pratiques de programmation MicroPython pour l'Edge Computing : 1ère partie et travaillez sur les points suivants pour vous préparer à ce deuxième projet :
- Mise en route : Démontre comment installer le matériel et les logiciels dont vous aurez besoin.
- Exemple de Hello World : Enseigne comment télécharger du code sur Digi XBee 3.
- Capter, transformer et envoyer une valeur : Montre comment prendre une température et l'envoyer sous forme de message texte.
Une fois que vous avez configuré le matériel Digi XBee 3, branché le capteur de température TMP36, connecté au logiciel de configuration et ouvert le terminal MicroPython dans XCTU, vous êtes prêt à commencer. Votre configuration devrait ressembler à celle-ci :

TMP36, Digi XBee 3 Cellular, XBIB connecté au terminal MicroPython dans XCTU
À propos de Digi Remote Manager
Digi Remote Manager vous permet de configurer et de gérer des réseaux dynamiques de dispositifs, avec une gamme d'outils de développement d'applications, de gestion de dispositifs et d'API. L'une des caractéristiques les plus importantes de Digi Remote Manager est la possibilité de mettre à jour les appareils par voie aérienne (OTA), n'importe où sur le terrain. Cela est particulièrement important si vous créez une application avec des modules distants, très dispersés ou difficiles d'accès, ou si vous créez un grand déploiement. Visitez
boutique.digi.com pour commencer avec Digi Remote Manager.
Digi Remote Manager Configuration du compte
Si vous avez besoin d'aide pour configurer ou utiliser votre compte, consultez le site Web de la Commission européenne. Digi Remote Manager Guide de l'utilisateur.
Le nom d'utilisateur et le mot de passe de votre compte Remote Manager permettront à votre Digi XBee 3 Cellular de télécharger des flux de données, dans ce cas des mesures de température. Il fournit une couche de sécurité adaptée à cet exemple simple. De nombreuses autres couches de sécurité et d'authentification sont disponibles pour assurer une protection accrue des applications de production, mais nous ne les examinerons pas maintenant pour nous concentrer sur les bases.
Téléchargements de la bibliothèque
Pour rendre notre code plus simple et plus lisible, nous nous appuyons sur deux éléments
bibliothèques téléchargées dans le système de fichiers à l'intérieur du module Digi XBee 3 Cellular. Ces bibliothèques sont des collections de code pré-écrit. Elles fournissent des moyens simples d'appeler des routines complexes sans que les routines elles-mêmes n'encombrent votre programme. Pour cet exemple, nous utiliserons la bibliothèque remotemanager, et la bibliothèque urequests que remotemanager requiert.
- Localisez les bibliothèques remotemanager.py et urequests.py sur cette page GitHub : https://github.com/digidotcom/xbee-micropython/tree/master/lib.
- Cliquez avec le bouton droit de la souris sur chaque nom de fichier et sélectionnez Télécharger pour créer une copie locale de chaque fichier sur votre ordinateur. (Les utilisateurs de GitHub peuvent également cloner ou télécharger l'ensemble du dépôt ici : https://github.com/digidotcom/xbee-micropython).
- Une fois que votre Digi XBee 3 et votre carte XBIB ont été ajoutés au XCTU, ouvrez le menu Outils et sélectionnez Gestionnaire de système de fichiers.
- Cliquez sur Ouvrir pour connecter le gestionnaire de système de fichiers à votre système de fichiers Digi XBee 3s.
- Naviguez dans les dossiers "Local Path" dans la colonne de gauche pour trouver les fichiers remotemanager.py et urequests.py que vous venez de télécharger.
- Utilisez les dossiers "Remote Path" dans la colonne de droite pour ouvrir le répertoire "lib" ("/flash/lib").
- Faites glisser les fichiers remotemanager.py et urequests.py depuis votre répertoire local et déposez-les dans le répertoire "lib" distant pour les stocker sur le XBee 3.
- Lorsque vous avez terminé, fermez la fenêtre du gestionnaire de système de fichiers.
Actuellement, le programme MicroPython collé à l'invite Ctrl-F dans le REPL est le seul moyen d'exécuter un programme au démarrage. Une fois que ce programme collé est en cours d'exécution, il peut importer des modules à partir du système de fichiers ainsi qu'écrire des fichiers sur celui-ci. Le lancement à partir d'un fichier du système de fichiers est sur la feuille de route du développement de Digis, alors attendez cette fonctionnalité dans les futurs firmwares.
Le module est configuré de manière identique à notre premier
Détecter, transformer et transmettre une valeur projet. Si quelque chose a pu changer, montez 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 être réglé sur 115200 [7] et l'activation de l'API AP sur MicroPython REPL [4].
- 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 nom d'utilisateur et votre mot de passe, en remplaçant "votre_nom_d'utilisateur_ici" et "votre_mot_de_passe_ici" avant de télécharger le code. Par défaut, ce programme envoie un relevé de température au flux de données Digi Remote Manager une fois par minute, sur 24 heures (1440 échantillons). 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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
# Digi XBee3 Cellulaire Digi Remote Manager Exemple
# utilise un TMP36 pour mesurer la température et la transmettre à Digi Remote Manager
# par défaut répétition une fois par minute, 1440 fois au total, arrêt après un jour
# Saisissez votre nom d'utilisateur et votre mot de passe Digi RM, en remplaçant "votre_nom_d'utilisateur_ici", etc. AVANT DE TÉLÉCHARGER CE CODE !
import RemoteManagerConnection
Importation de l 'ADC
Importer le sommeil
import atcmd
cycles # nombre de répétitions
wait_time # secondes entre les mesures
nom d'utilisateur #entrez votre nom d'utilisateur !
password #entrer votre mot de passe !
Info sur la connexion du Device Cloud
stream_id température
stream_type FLOAT
stream_units degrés F
Description "Exemple de température".
# préparer la connexion
informations d'identification : mot de passe}
stream_info "description": description,
"id": stream_id,
"type": stream_type,
"unités": stream_units}
ai_desc = {
CONNECTÉ,
S'INSCRIRE AU RÉSEAU,
SE CONNECTER À INTERNET,
RÉCUPÉRATION_NÉCESSAIRE,
RÉSEAU_REG_FAILURE,
AIRPLANE_MODE,
USB_DIRECT,
PSM_DORMANT,
BYPASS_MODE_ACTIVE,
MODEM_INITIALISATION,
}
watch_ai() :
old_ai -1
0x00:
nouveau_ai AI)
!= old_ai :
UNKNOWN)))
ancien_ai = nouveau_ai
autre:
dormir(0.01)
Programme principal
# créer une connexion
rm =credentials)
# mettre à jour les informations du flux de données
"")
essayez:
rm.update_datastream(stream_id, stream_info)
"fait")
comme e :
statut str(e)
\
\
exception :, e)
C'est vrai:
"vérification de la connexion...")
watch_ai()
"connecté")
gamme(cycles) :
# lire la valeur de la température et l'imprimer pour le débogage
temp_pin "D0")
temp_raw .read()
% temp_raw)
# convertir la température en unités appropriées
températureC 10)
% de la températureC)
températureF 32.0) ;
% températureF)
# envoyer les points de données à Digi RM
"")
essayez:
status # envoie les données au Device Cloud
"fait")
.code_statut)
comme e :
\
\
exception :, e)
# attendre entre les cycles
sleep(wait_time)
|
Utilisez-le
Avec l'exemple Data to Digi Remote Manager en cours, une nouvelle mesure de température sera téléchargée vers un flux de données Digi RM chaque minute. Si vous avez laissé les paramètres par défaut, vous recevrez 1440 téléchargements, espacés d'une minute, soit l'équivalent de 24 heures. Pour surveiller le flux de données :
- Connectez-vous sur Digi Remote Manager et sélectionnez le Services de données onglet.
- Cliquez sur le flux nommé "température" pour le sélectionner.
- Localisez la zone Graphiques et données brutes ci-dessous. Il peut être utile de faire glisser la ligne de séparation vers le haut pour agrandir cette zone.
- Cliquez sur Données brutes pour voir les points de données qui ont été téléchargés
- Cliquez sur Graphiques pour voir les graphiques linéaires des données de température. Des graphiques récapitulatifs quotidiens, hebdomadaires, mensuels et annuels peuvent être générés.
Digi Remote Manager dispose d'une API complète permettant de partager vos données avec d'autres systèmes en ligne. Grâce à son interface RESTful, elle peut accepter des requêtes standard (utilisant HTTP GET) à partir d'un navigateur web. Utilisez ce lien pour consulter vos données de température. Vous serez invité à saisir votre nom d'utilisateur et votre mot de passe.
La sortie sera au format XML, et ressemblera à ceci :

Digi Remote Manager Réponse XML
Résumé
Cet exemple Digi Remote Manager démontre une façon de centraliser les téléchargements de données de vos systèmes IoT . Vous pouvez maintenant créer plusieurs capteurs qui transfèrent tous des données vers un emplacement central en ligne. Vous avez créé votre premier compte Digi RM, localisé vos données et les avez visualisées. Nous avons également abordé le téléchargement de bibliothèques vers Digi XBee 3 cellular en utilisant le gestionnaire de système de fichiers dans XCTU. Le gestionnaire de système de fichiers peut également gérer les fichiers clés et les certificats de sécurité qui sont requis par de nombreuses plateformes en ligne IoT . Dans les prochains articles, nous aborderons le téléchargement de données vers d'autres 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.
Vos commentaires sur cette série sont les bienvenus. Veuillez poster vos questions ou suggestions dans les commentaires ci-dessous.