Exercice – Envoyer des données du capteur d’environnement de la pièce temps réel Azure RTOS à IoT Hub

Effectué

Dans cet exercice, nous allons associer une application de haut niveau pour qu’elle envoie des données du capteur d’environnement de la pièce temps réel Azure RTOS à IoT Hub.

Étape 1 : Ouvrir le projet

  1. Démarrez Visual Studio Code pour ouvrir votre projet.

  2. Dans le menu, cliquez sur Fichier, puis Ouvrir le dossier.

  3. Ouvrez le dossier du labo Azure-Sphere.

  4. Ouvrez le dossier Lab_7_Partnering_with_RTOS_environment.

  5. Cliquez sur Sélectionner un dossier ou sur le bouton OK pour ouvrir le projet.

Si vous avez installé l’extension Peacock de Visual Studio Code, Visual Studio Code passe en bleu. L’instance de couleur bleue est connectée à l’application de haut niveau qui s’exécute sur le cœur Cortex-A7.

Étape 2 : Définir la configuration de votre carte de développement

Ces labos prennent en charge les cartes de développement Avnet et Seeed Studio. Vous devez définir la configuration qui correspond à votre carte de développement.

Par défaut, la carte de développement est configurée pour le starter kit Avnet Azure Sphere Révision 1. Si vous avez cette carte, aucune configuration supplémentaire n’est requise.

  1. Ouvrez le fichier CMakeList.txt.

  2. Ajoutez # au début de la ligne « set Avnet » pour la désactiver.

  3. Supprimez les marques de commentaire pour la commande set qui correspond à votre carte de développement d’appareil Azure Sphere.

    set(AVNET TRUE "AVNET Azure Sphere Starter Kit Revision 1 ")
    # set(AVNET_REV_2 TRUE "AVNET Azure Sphere Starter Kit Revision 2 ")
    # set(SEEED_STUDIO_RDB TRUE "Seeed Studio Azure Sphere MT3620 Development Kit (aka Reference Design Board or rdb)")
    # set(SEEED_STUDIO_MINI TRUE "Seeed Studio Azure Sphere MT3620 Mini Dev Board")
    
  4. Enregistrez le fichier. Le cache CMake est généré automatiquement.

Étape 3 : Configurer les informations de connexion Azure IoT

  1. Ouvrez le fichier app_manifest.json.

  2. NE COPIEZ PAS le fichier app_manifest.json que vous avez enregistré dans le Bloc-notes, car il existe de nouvelles propriétés dans ce manifeste d’application.

  3. Mettez à jour les propriétés de connexion du hub Azure IoT Hub.

    • Mettez à jour CmdArgs avec l’étendue de votre ID Azure IoT DPS.
    • Mettez à jour DeviceAuthentication avec votre ID de locataire Azure Sphere. Rappelez-vous qu’il s’agit de la valeur numérique résultant de l’exécution de la commande azsphere tenant show-selected.
  4. Mettez à jour AllowedConnections avec le point de terminaison global Device Provisioning Service, votre point de terminaison DPS et votre point de terminaison Azure IoT Hub. Consultez l’exemple ci-dessous pour savoir quel est le bon format de ces points de terminaison.

  5. Vous pouvez mettre en forme le document app_manifest. JSON en cliquant avec le bouton droit de la souris sur le document et en sélectionnant Mettre le de document en forme dans le menu contextuel.

  6. Passez en revue votre fichier app_manifest.json mis à jour. Il doit ressembler à ce qui suit.

    {
        "SchemaVersion": 1,
        "Name": "AzureSphereIoTCentral",
        "ComponentId": "25025d2c-66da-4448-bae1-ac26fcdd3627",
        "EntryPoint": "/bin/app",
        "CmdArgs": [ "--ConnectionType", "DPS", "--ScopeID", "0ne0099999D" ],
        "Capabilities": {
            "Gpio": [
            "$NETWORK_CONNECTED_LED",
            "$LED_RED",
            "$LED_GREEN",
            "$LED_BLUE"
            ],
            "PowerControls": [
            "ForceReboot"
            ],
            "AllowedConnections": [
                "global.azure-devices-provisioning.net",
                "<Your device provisioning service endpoint>",
                "<Your Azure IoT hub endpoint>"
            ],
            "DeviceAuthentication": "9d7e79eb-9999-43ce-9999-fa8888888894"
            "AllowedApplicationConnections": [ "6583cf17-d321-4d72-8283-0b7c5b56442b" ]
        },
        "ApplicationType": "Default"
    }
    

Étape 4 : Définir un point d’arrêt dans la fonction de rappel InterCoreHandler

  1. Ouvrez main.c.

  2. Faites défiler jusqu’à la fonction nommée InterCoreHandler.

    Notes

    Utilisez Accéder au symbole dans l’éditeur dans Visual Studio Code. Utilisez le raccourci clavier Ctrl+Maj+O et commencez à taper InterCoreHandler. Vous verrez souvent un nom de fonction listé deux fois dans la liste déroulante. Le premier est le prototype ou la déclaration de signature avancée de la fonction, et le second est l’implémentation de la fonction.

  3. Définissez un point d’arrêt dans la fonction interCoreHandler sur la ligne où figure passage (ic_message_block->cmd)

    Notes

    Vous pouvez découvrir comment définir des points d’arrêt dans cet article : Débogage dans Visual Studio Code.

    The illustration shows how to set a breakpoint in the InterCoreHandler callback function.

Étape 5 : Démarrer le processus de création et de déploiement de l’application

  1. Sélectionnez CMake : [Déboguer] : Prêt dans la barre d’état de Visual Studio Code.

  2. Dans Visual Studio Code, appuyez sur F5 pour générer, déployer et démarrer votre application, qui s’exécute sur l’appareil Azure Sphere, et attacher le débogueur distant.

Étape 6 : Débogage de l’application de haut niveau et de l’application du cœur temps réel

  1. Quand l’application de haut niveau a démarré, elle demande des données de l’environnement à l’application du cœur temps réel.

  2. Sans fermer ou arrêter l’application de haut niveau, passez à l’instance de Visual Studio code que vous avez laissée connectée au cœur temps réel.

  3. L’exécution du code va bientôt s’arrêter au point d’arrêt défini dans le code temps réel.

  4. Parcourez pas à pas le code temps réel, puis appuyez sur F5 pour poursuivre l’exécution.

  5. Revenez à l’instance de Visual Studio Code connectée à l’application de haut niveau. L’exécution du code doit s’être arrêtée au point d’arrêt que vous avez défini dans la fonction InterCoreHandler.

  6. Répétez ce processus plusieurs fois, puis supprimez les points d’arrêt afin que le code continue à s’exécuter.

Étape 7 : Comportement attendu de l’appareil

Le starter kit Avnet Azure Sphere Révisions 1 et 2 a un capteur de température intégré. Pour les autres cartes, une température aléatoire de 25 +/- 5 degrés Celsius est générée.

Starter kit Azure Sphere MT3620 Révision 1 et 2

The illustration shows the Avnet Azure Sphere kit.

  • La LED WLAN clignote toutes les 5 secondes quand il est connecté à Azure.

  • La LED RGB passe au rouge si la température mesurée est inférieure à la température souhaitée, au bleu si la température mesurée est supérieure à la température souhaitée et au vert si la température mesurée correspond à la température souhaitée.

Kit de développement Seeed Studio Azure Sphere MT3620

The illustration shows the Seeed Studio Azure Sphere kit.

  • La LED WLAN clignote toutes les 5 secondes quand il est connecté à Azure.

  • La LED RGB passe au rouge si la température mesurée est inférieure à la température souhaitée, au bleu si la température mesurée est supérieure à la température souhaitée et au vert si la température mesurée correspond à la température souhaitée.

Carte de développement Seeed Studio MT3620 Mini

The illustration shows the Seeed Studio Mini Azure Sphere kit.

  • La LED User (Utilisateur) clignote toutes les 5 secondes quand il est connecté à Azure.

Étape 8 : Définir la température désirée

La définition de la température désirée s’apparente au réglage d’un thermostat dans une pièce. Un message de propriété de jumeau d’appareil concernant la température souhaitée est envoyé à Azure Sphere, où il sera traité.

Quand le capteur de température est lu sur l’appareil Azure Sphere, il est comparé à la température souhaitée.

  1. Ouvrez Azure IoT Explorer.

  2. Cliquez sur Afficher les appareils de ce hub.

  3. Cliquez sur votre appareil.

  4. Cliquez sur Composants IoT Plug-and-Play dans le menu latéral.

  5. Cliquez sur Composant par défaut.

  6. Sélectionnez Propriétés (accessibles en écriture) dans le menu.

  7. Définissez la propriété Température souhaitée.

  8. Cliquez sur le bouton Mettre à jour la valeur souhaitée.

Fermer Visual Studio

À présent, fermez Visual Studio.