Configuration du flux de publication des données - AWS IoT SiteWise

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.

Configuration du flux de publication des données

Le flux de publication des données utilise trois nœuds pour créer un pipeline qui envoie vos données industrielles vers le cloud. Ce flux est essentiel pour permettre l'analyse basée sur le cloud, le stockage à long terme et l'intégration avec d'autres AWS services. Tout d'abord, les données de l'appareil simulé sont envoyées au broker SiteWise Edge MQTT. La passerelle récupère les données auprès du courtier, ce qui permet de les transmettre au AWS IoT SiteWise cloud, où vous pouvez tirer parti de puissantes fonctionnalités d'analyse et de visualisation.

  • Entrée de données - Reçoit les données de l'appareil à partir de votre équipement industriel ou de vos simulateurs

  • Traducteur de données pour AWS IoT SiteWise : traduit les données au AWS IoT SiteWise format pour garantir la compatibilité avec la passerelle SiteWise Edge

  • Éditeur MQTT : publie les données sur le courtier SiteWise Edge MQTT, les mettant à la disposition des consommateurs locaux et du cloud

Schéma illustrant le flux de publication de données Node-RED. Il envoie les données de l'appareil simulées au courtier SiteWise Edge MQTT pour qu'elles soient récupérées par SiteWise Edge Gateway, puis sur le AWS IoT SiteWise cloud.

Configuration du nœud de saisie de données

Dans cet exemple, le nœud de saisie de données utilise un dispositif d'éolienne simulé qui génère des données sur la vitesse du vent. Ce nœud sert de point d'entrée pour vos données industrielles, qu'elles proviennent de sources simulées (comme dans notre exemple) ou d'équipements industriels réels dans des environnements de production.

Nous utilisons un format JSON personnalisé pour la charge utile des données afin de fournir une structure standardisée qui fonctionne efficacement avec les outils de traitement locaux et le service AWS IoT SiteWise cloud. Ce format inclut des métadonnées essentielles telles que les horodatages et les indicateurs de qualité ainsi que les valeurs de mesure réelles, ce qui permet une gestion complète des données et un suivi de la qualité tout au long de votre pipeline. Importez le nœud d'injection pour recevoir des données simulées dans ce format JSON standardisé avec des horodatages, des indicateurs de qualité et des valeurs.

Pour plus d'informations sur le nœud d'injection Node-RED, consultez la section Inject de la Node-RED documentation.

Le simulateur de turbine génère des données sur la vitesse du vent chaque seconde dans ce format JSON standardisé :

Exemple : Charge utile de données sur les turbines
{ name: string, // Property name/identifier timestamp: number, // Epoch time in nanoseconds quality: "GOOD" | "UNCERTAIN" | "BAD", value: number | string | boolean }

Ce format présente plusieurs avantages :

  • Le name champ identifie la propriété ou la mesure spécifique, ce qui vous permet de suivre plusieurs points de données à partir du même appareil

  • La valeur timestamp en nanosecondes garantit un suivi précis du temps pour une analyse historique précise

  • L'qualityindicateur vous aide à filtrer et à gérer les données en fonction de leur fiabilité

  • Le value champ flexible prend en charge différents types de données pour s'adapter aux différentes sorties de capteurs

Exemple : Nœud d'injection d'un simulateur de turbine
[ { "id": "string", "type": "inject", "z": "string", "name": "Turbine Simulator", "props": [ { "p": "payload.timestamp", "v": "", "vt": "date" }, { "p": "payload.quality", "v": "GOOD", "vt": "str" }, { "p": "payload.value", "v": "$random()", "vt": "jsonata" }, { "p": "payload.name", "v": "/Renton/WindFarm/Turbine/WindSpeed", "vt": "str" } ], "repeat": "1", "crontab": "", "once": false, "onceDelay": "", "topic": "", "x": 270, "y": 200, "wires": [ [ "string" ] ] } ]

Configuration d'un nœud pour la traduction des données

La passerelle SiteWise Edge nécessite des données dans un format spécifique pour garantir la compatibilité avec AWS IoT SiteWise le cloud. Le nœud de traduction est un composant important qui convertit vos données d'entrée au format de AWS IoT SiteWise charge utile requis. Cette étape de traduction garantit que vos données industrielles peuvent être correctement traitées, stockées et analysées ultérieurement dans l'environnement AWS IoT SiteWise cloud.

En normalisant le format des données à ce stade, vous permettez l'intégration entre vos appareils périphériques et le service cloud, où vous pouvez utiliser les fonctionnalités de modélisation, d'analyse et de visualisation des actifs. Utilisez cette structure :

Exemple : Structure de charge utile pour l'analyse des données SiteWise Edge
{ "propertyAlias": "string", "propertyValues": [ { "value": { "booleanValue": boolean, "doubleValue": number, "integerValue": number, "stringValue": "string" }, "timestamp": { "timeInSeconds": number, "offsetInNanos": number }, "quality": "GOOD" | "UNCERTAIN" | "BAD", }] }
Note

Faites correspondre le propertyAlias à votre hiérarchie de sujets MQTT (par exemple,/Renton/WindFarm/Turbine/WindSpeed). Cela garantit que vos données sont correctement associées à la propriété d'actif appropriée dans AWS IoT SiteWise. Pour plus d'informations, consultez le concept « Alias de flux de données » dansAWS IoT SiteWise concepts.

  1. Importez le nœud de fonction d'exemple pour la traduction de AWS IoT SiteWise la charge utile. Cette fonction gère la conversion de votre format d'entrée standardisé vers un format AWS IoT SiteWise compatible, garantissant ainsi un formatage d'horodatage, des indicateurs de qualité et une saisie de valeur appropriés.

    [ { "id": "string", "type": "function", "z": "string", "name": "Translate to SiteWise payload", "func": "let input = msg.payload;\nlet output = {};\n\noutput[\"propertyAlias\"] = input.name;\n\nlet propertyVal = {}\n\nlet timeInSeconds = Math.floor(input.timestamp / 1000);\nlet offsetInNanos = (input.timestamp % 1000) * 1000000;\n\npropertyVal[\"timestamp\"] = {\n \"timeInSeconds\": timeInSeconds,\n \"offsetInNanos\": offsetInNanos,\n};\n\npropertyVal[\"quality\"] = input.quality\n\nlet typeNameConverter = {\n \"number\": (x) => Number.isInteger(x) ? \"integerValue\" : \"doubleValue\",\n \"boolean\": (x) => \"booleanValue\",\n \"string\": (x) => \"stringValue\", \n}\nlet typeName = typeNameConverter[typeof input.value](input.value)\npropertyVal[\"value\"] = {}\npropertyVal[\"value\"][typeName] = input.value;\n\noutput[\"propertyValues\"] = [propertyVal]\n\nreturn {\n payload: JSON.stringify(output)\n};", "outputs": 1, "timeout": "", "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 530, "y": 200, "wires": [ [ "string" ] ] } ]
  2. Vérifiez que le JavaScript code traduit correctement les données de vitesse du vent. La fonction exécute plusieurs tâches importantes :

    • Extrait le nom de la propriété de l'entrée et le définit comme PropertyAlias

    • Convertit l'horodatage en millisecondes au format requis en secondes et nanosecondes

    • Préserve l'indicateur de qualité pour le suivi de la fiabilité des données

    • Détecte automatiquement le type de valeur et le formate en fonction des AWS IoT SiteWise besoins

  3. Connectez le nœud à votre flux, en le liant entre le nœud d'entrée de données et l'éditeur MQTT.

Pour obtenir des conseils sur la rédaction d'une fonction spécifique aux besoins de votre entreprise, consultez la section Fonctions d'écriture dans la Node-REDdocumentation

Configuration de l'éditeur MQTT

Après la traduction, les données sont prêtes à être publiées sur le broker SiteWise Edge MQTT.

Configurez l'éditeur MQTT avec les paramètres suivants pour envoyer des données au courtier SiteWise Edge MQTT :

Pour importer le nœud MQTT sortant
  1. Importez un nœud de configuration MQTT en utilisant"type": "mqtt out". Les nœuds de sortie MQTT vous permettent de partager la configuration d'un broker.

  2. Entrez des paires clé-valeur pour les informations relatives à la connexion au courtier MQTT et au routage des messages.

Importez le mqtt out nœud d'exemple.

[ { "id": "string", "type": "mqtt out", "z": "string", "name": "Publish to MQTT broker", "topic": "/Renton/WindFarm/Turbine/WindSpeed", "qos": "1", "retain": "", "respTopic": "", "contentType": "", "userProps": "", "correl": "", "expiry": "", "broker": "string", "x": 830, "y": 200, "wires": [] }, { "id": "string", "type": "mqtt-broker", "name": "emqx", "broker": "127.0.0.1", "port": "1883", "clientid": "", "autoConnect": true, "usetls": false, "protocolVersion": "5", "keepalive": 15, "cleansession": true, "autoUnsubscribe": true, "birthTopic": "", "birthQos": "0", "birthPayload": "", "birthMsg": {}, "closeTopic": "", "closePayload": "", "closeMsg": {}, "willTopic": "", "willQos": "0", "willPayload": "", "willMsg": {}, "userProps": "", "sessionExpiry": "" } ]

L'exemple de nœud de sortie MQTT crée la connexion MQTT avec les informations suivantes :

  • Serveur : 127.0.0.1

  • Port : 1883

  • Protocole : MQTT V5

Le nœud de sortie MQTT configure ensuite le routage des messages avec les informations suivantes :

  • Sujet: /Renton/WindFarm/Turbine/WindSpeed

  • QoS : 1

Déployer et vérifier les nœuds

Après avoir configuré les trois nœuds du flux de publication des données, procédez comme suit pour déployer le flux et vérifier que les données sont correctement transmises à AWS IoT SiteWise

Pour déployer et vérifier les connexions
  1. Connectez les trois nœuds comme indiqué dans le flux de publication des données.

    Data publish flow diagram showing input from turbine simulator to AWS IoT SiteWise to MQTT broker.
  2. Choisissez Déployer pour appliquer toutes les modifications de connexion aux nœuds.

  3. Accédez à la AWS IoT SiteWise console et choisissez Data streams.

  4. Assurez-vous que le préfixe Alias est sélectionné dans le menu déroulant. Recherchez ensuite l'/Renton/WindFarm/Turbine/WindSpeedalias.

Si vous voyez le bon alias dans votre recherche, cela signifie que vous avez déployé le flux et vérifié la transmission des données.