Développement d’appareil IoT

Cette vue d’ensemble présente les concepts clés relatifs au développement d’appareils qui se connectent à une solution Azure IoT classique. Chaque section inclut des liens vers du contenu qui fournit des détails et des conseils supplémentaires.

Le diagramme suivant montre une vue générale des composants d’une solution IoT classique. Cet article se concentre sur les appareils et la passerelle présentés dans le diagramme.

Diagramme montrant l’architecture de la solution IoT de haut niveau mettant en évidence les domaines de connectivité des appareils.

Dans Azure IoT, un développeur d’appareils écrit le code à exécuter sur les appareils de la solution. Ce code est généralement le suivant :

  • Établit une connexion sécurisée à un point de terminaison cloud.
  • Envoie les données de télémétrie collectées à partir de capteurs attachés au cloud.
  • Gère l’état de l’appareil et synchronise cet état avec le cloud.
  • Répond aux commandes envoyées à partir du cloud.
  • Permet l’installation des mises à jour logicielles à partir du cloud.
  • Permet à l’appareil de continuer à fonctionner pendant sa déconnexion du cloud.

Types d’appareils

Les appareils IoT peuvent être répartis en deux catégories principales : microcontrôleurs (MCU) et microprocesseurs (MPU) :

  • Les MCU sont moins chers et plus simples à utiliser que les MPU.
  • Un MCU héberge un grand nombre des fonctions, telles que la mémoire, les interfaces et les E/S, au sein de la puce elle-même. Un MPU accède à ces fonctionnalités de composants dans des puces de prise en charge.
  • Un MCU utilise souvent un système d’exploitation en temps réel (RTOS) ou s’exécute nu (sans système d’exploitation) et fournit une réponse en temps réel et des réactions très déterministes aux événements externes. Les MPU exécutent généralement un système d’exploitation à usage général, tel que Windows, Linux ou macOS, qui fournit une réponse en temps réel non déterministe. Il n’y a généralement aucune garantie quant au moment auquel une tâche sera effectuée.

Voici des exemples de matériel et de systèmes d’exploitation spécialisés :

Windows pour IoT est une version incorporée de Windows pour les MPU avec connectivité cloud qui vous permet de créer des appareils sécurisés avec un approvisionnement et une gestion faciles.

Eclipse ThreadX est un système d’exploitation en temps réel pour les appareils IoT et les périphériques avec MCU. Eclipse ThreadX est conçu pour prendre en charge des appareils à fortes contraintes alimentés par batterie et disposant de moins de 64 Ko de mémoire flash.

Azure Sphere est une plateforme d’applications générales sécurisée qui présente des fonctionnalités de sécurité et de communication intégrées pour les appareils connectés à Internet. Elle comprend une MCU transversale, connectée et sécurisée, un système d’exploitation Linux personnalisé et un service de sécurité cloud qui offre une sécurité continue et renouvelable.

Primitives

Un appareil Azure IoT peut utiliser les primitives suivantes pour interagir avec le cloud :

  • Messages appareil-à-cloud pour envoyer des données de télémétrie de série chronologique au cloud. Par exemple, les données de température collectées à partir d’un capteur attaché à l’appareil.
  • Chargements de fichiers pour les fichiers multimédias tels que les images capturées et les vidéos. Les appareils connectés par intermittence peuvent envoyer des lots de télémétrie. Les appareils peuvent compresser les chargements pour économiser de la bande passante.
  • Jumeaux d’appareil pour partager et synchroniser les données d’état avec le cloud. Par exemple, un appareil peut utiliser le jumeau d’appareil pour signaler l’état actuel d’une vanne qu’il contrôle au cloud et pour recevoir une température cible souhaitée à partir du cloud.
  • Jumeaux numériques pour représenter un appareil dans le monde numérique. Par exemple, un jumeau numérique peut représenter l’emplacement physique d’un appareil, ses fonctionnalités et ses relations avec d’autres appareils.
  • Méthodes directes pour recevoir des commandes du cloud. Une méthode directe peut avoir des paramètres et retourner une réponse. Par exemple, le cloud peut appeler une méthode directe pour demander à l’appareil de redémarrer dans 30 secondes.
  • Messages cloud-à-appareil pour recevoir des notifications unidirectionnelles du cloud. Par exemple, une notification indiquant qu’une mise à jour est prête à être téléchargée.

Pour plus d’informations, consultez les Conseils sur les communications appareil-à-cloud et Conseils sur les communications cloud-à-appareil.

Kits de développement logiciel (SDK) d’appareil

Les SDK d’appareil fournissent des abstractions de haut niveau qui vous permettent d’utiliser les primitives sans connaître les protocoles de communication sous-jacents. Les SDK d’appareil gèrent également les détails de l’établissement d’une connexion sécurisée au cloud et de l’authentification de l’appareil.

Pour les appareils MPU, les SDK d’appareil sont disponibles dans les langues suivantes :

Pour les appareils MCU, consultez :

Exemples et instructions

Tous les SDK d’appareil incluent des exemples qui montrent comment utiliser le kit de développement logiciel pour se connecter au cloud, envoyer des données de télémétrie et utiliser les autres primitives.

Le site de développement d’appareils IoT comprend des tutoriels et des guides pratiques qui vous montrent comment implémenter du code pour une gamme de types d’appareils et de scénarios.

Vous trouverez d’autres exemples dans le navigateur d’exemple de code.

Pour en savoir plus sur l’implémentation des reconnexions automatiques aux points de terminaison, consultez Gérer les reconnexions d’appareils pour créer des applications résilientes.

Développement d’appareils sans SDK d’appareil

Bien qu’il soit recommandé d’utiliser l’un des Kits de développement logiciel (SDK) de l’appareil, il est possible qu’il y ait des scénarios où vous préférez ne pas l’utiliser. Dans ces scénarios, votre code d’appareil doit utiliser directement l’un des protocoles de communication que prennent en charge IoT Hub et le Service de provisionnement d’appareil (DPS).

Pour plus d'informations, consultez les pages suivantes :

Modélisation d’appareil

IoT Plug-and-Play permet aux créateurs de solutions d’intégrer des appareils IoT dans leurs solutions sans configuration manuelle. Au cœur de IoT Plug-and-Play, il y a un modèle d’appareil qu’un appareil utilise pour publier ses fonctionnalités dans une application IoT Plug-and-Play telle que IoT Central. Ce modèle est structuré sous la forme d’un ensemble d’éléments qui définissent ce qui suit :

  • Propriétés qui représentent l’état en lecture seule ou en écriture d’un appareil ou d’une autre entité. Par exemple, un numéro de série d’appareil peut être une propriété en lecture seule et une température cible sur un thermostat peut être une propriété accessible en écriture.
  • Télémétrie qui correspond aux données émises par un appareil, qu’il s’agisse d’un flux régulier de relevés de capteurs, d’une erreur occasionnelle ou d’un message d’information.
  • Commandes qui décrivent une fonction ou une opération qui peut être effectuée sur un appareil. Par exemple, une commande peut redémarrer une passerelle ou prendre une photo à l’aide d’une caméra distante.

Vous pouvez regrouper ces éléments dans des interfaces afin de les réutiliser dans différents modèles pour faciliter la collaboration et accélérer le développement.

Le modèle est spécifié à l’aide du langage DTDL (Digital Twins Definition Language).

L’utilisation de IoT Plug-and-Play, de modélisation et de DTDL est facultative. Vous pouvez utiliser les primitives d’appareil IoT sans utiliser de IoT Plug-and-Play ou de modélisation. Le service Azure Digital Twins utilise également des modèles DTDL pour créer des graphiques de jumeaux basés sur des modèles numériques d’environnements tels que des bâtiments ou des usines.

En tant que développeur d’appareils, lorsque vous implémentez un appareil IoT Plug-and-Play, il existe un ensemble de conventions à suivre. Ces conventions fournissent un moyen normalisé d’implémenter le modèle d’appareil dans le code à l’aide des primitives disponibles dans les SDK d’appareil.

Pour en savoir plus, consultez :

Code d’appareil conteneurisé

Si vous utilisez des conteneurs, tel que dans Docker, vous pouvez déployer du code dans vos appareils pour exécuter votre code d’appareil en utilisant des fonctionnalités de l’infrastructure de conteneur. Les conteneurs vous permettent également de définir un environnement d’exécution pour votre code avec toutes les versions de bibliothèque et de package requises installées. Les conteneurs facilitent le déploiement des mises à jour et la gestion du cycle de vie de vos appareils IoT.

Azure IoT Edge exécute le code de l’appareil dans des conteneurs. Vous pouvez utiliser Azure IoT Edge pour déployer des modules de code sur vos appareils. Pour plus d’informations, consultez Développer vos propres modules IoT Edge.

Conseil

Azure IoT Edge active plusieurs scénarios. En plus d’exécuter le code de votre appareil IoT dans des conteneurs, vous pouvez utiliser Azure IoT Edge pour exécuter des services Azure sur vos appareils et implémenter des passerelles locales. Pour plus d’informations, consultez Qu’est-ce qu’Azure IoT Edge ?

Outils de développement

Le tableau suivant répertorie certains des outils de développement IoT disponibles :

Outil Description
Azure IoT Hub (extension VS Code) Cette extension VS Code vous permet de gérer vos ressources et appareils IoT Hub à partir de VS Code.
Explorateur Azure IoT Cet outil multiplateforme vous permet de gérer vos ressources et appareils IoT Hub à partir d’une application de bureau.
Extension Azure IoT pour Azure CLI Cette extension CLI comprend des commandes telles que az iot device simulate, az iot device c2d-messageet az iot hub monitor-events qui vous aident à tester les interactions avec les appareils.

Étapes suivantes

Maintenant que vous avez eu une vue d’ensemble du développement d’appareils dans les solutions Azure IoT, voici quelques-unes des étapes suivantes suggérées :