AWS IoTDémo de la bibliothèque d'emplois - Gratuit RTOS

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

AWS IoTDémo de la bibliothèque d'emplois

Important

Cette démo est hébergée sur le référentiel Amazon-FreeRTOS qui est obsolète. Nous vous recommandons de commencer par cette étape lorsque vous créez un nouveau projet. Si vous possédez déjà un projet FreeRTOS basé sur le référentiel Amazon-FreeRTOS, désormais obsolète, consultez leGuide de migration du référentiel RTOS Github gratuit sur Amazon.

Introduction

La démo de la bibliothèqueAWS IoT Jobs vous montre comment vous connecter au serviceAWS IoT Jobs via une connexion MQTTAWS IoT, récupérer une tâche et la traiter sur un appareil. Le projet de démonstrationAWS IoT Jobs utilise le port Windows FreeRTOS. Il peut donc être créé et évalué avec la version Visual Studio Community sur Windows. Aucun matériel de microcontrôleur n'est nécessaire. La démo établit une connexion sécurisée au courtierAWS IoT MQTT à l'aide du protocole TLS de la même manière que leDémonstration d'authentification mutuelle CoreMQTT.

Note

Pour configurer et exécuter les démos FreeRTOS, suivez les étapes décrites dansCommencez avec Free RTOS.

Organisation du code source

Le code de démonstration se trouve dans lejobs_demo.c fichier et se trouve sur le GitHubsite Web ou dans lefreertos/demos/jobs_for_aws/ répertoire.

Configuration de la connexion au courtierAWS IoT MQTT

Dans cette démo, vous utilisez une connexion MQTT au courtierAWS IoT MQTT. Cette connexion est configurée de la même manière que leDémonstration d'authentification mutuelle CoreMQTT.

Fonctionnalité

La démo montre le flux de travail utilisé pour recevoir des tâchesAWS IoT et les traiter sur un appareil. La démonstration est interactive et vous oblige à créer des tâches à l'aide de laAWS IoT console ou duAWS Command Line Interface (AWS CLI). Pour de plus amples informations sur la création d'une tâche, veuillez consulter create-tâche dans le manuel de référence desAWS CLI commandes. La démo nécessite que le document de travail comporte uneaction touche définieprint pour imprimer un message sur la console.

Veuillez consulter le format suivant pour ce document de tâche.

{ "action": "print", "message": "ADD_MESSAGE_HERE" }

Vous pouvez utiliser leAWS CLI pour créer une tâche comme dans l'exemple de commande suivant.

aws iot create-job \ --job-id t12 \ --targets arn:aws:iot:region:123456789012:thing/device1 \ --document '{"action":"print","message":"hello world!"}'

La démo utilise également un document de travail dont laaction clé est définiepublish pour republier le message dans une rubrique. Veuillez consulter le format suivant pour ce document de tâche.

{ "action": "publish", "message": "ADD_MESSAGE_HERE", "topic": "topic/name/here" }

La démo fonctionne en boucle jusqu'à ce qu'elle reçoive un document de travail avec laaction clé définieexit pour quitter la démo. Le format du document de travail est le suivant.

{ "action: "exit" }

Point d'entrée de la démo Jobs

Le code source de la fonction de point d'entrée de démonstration de Jobs se trouve sur GitHub. Cette fonction effectue les opérations suivantes :

  1. Établissez une connexion MQTT à l'aide des fonctions d'assistance demqtt_demo_helpers.c.

  2. Abonnez-vous à la rubrique MQTT relative à l'NextJobExecutionChangedAPI, en utilisant les fonctions d'assistance dansmqtt_demo_helpers.c. La chaîne de rubrique a été assemblée précédemment à l'aide de macros définies par la bibliothèqueAWS IoT Jobs.

  3. Publiez dans la rubrique MQTT de l'StartNextPendingJobExecutionAPI, à l'aide des fonctions d'assistance demqtt_demo_helpers.c. La chaîne de rubrique a été assemblée précédemment à l'aide de macros définies par la bibliothèqueAWS IoT Jobs.

  4. AppelezMQTT_ProcessLoop à plusieurs reprises pour recevoir les messages entrants qui sont transmisprvEventCallback pour traitement.

  5. Une fois que la démo a reçu l'action de sortie, désabonnez-vous de la rubrique MQTT et déconnectez-vous à l'aide des fonctions d'assistance dumqtt_demo_helpers.c fichier.

Rappel pour les messages MQTT reçus

La prvEventCallbackfonction appelleJobs_MatchTopic depuis la bibliothèqueAWS IoT Jobs pour classer le message MQTT entrant. Si le type de message correspond à une nouvelle tâche,prvNextJobHandler() est appelé.

La fonction prvNextJobHandler et les fonctions qu'elle appelle analysent le document de travail à partir du message au format JSON et exécutent l'action spécifiée par la tâche. LaprvSendUpdateForJob fonction est particulièrement intéressante.

Envoyer une mise à jour pour une tâche en cours

La fonction prvSendUpdateForJob() appelleJobs_Update() depuis la bibliothèque Jobs pour renseigner la chaîne de rubrique utilisée dans l'opération de publication MQTT qui suit immédiatement.