Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Exploiter les Jumeaux de Module Azure IoT Edge pour la Gestion d'État de Circuit

Faire clignoter une LED en utilisant un langage spécifique au domaine appliqué via un Jumeau de Module à un conteneur Docker exécutant Johnny 5 sur un Raspberry Pi.

Histoire

Vue d'ensemble :

Azure IoT Edge permet aux dispositifs faiblement connectés d'obtenir les propriétés souhaitées via des « Jumeaux de Module » (Module Twins). Ces jumeaux peuvent être utilisés comme configuration d'état souhaité pour piloter un comportement spécifique au sein des Modules Edge. Les Modules Edge s'exécutent comme des charges de travail conteneurisées pour permettre l'auto-guérison et le déploiement rapide sans besoin de connectivité constante. Lorsque l'internet est disponible, les dispositifs peuvent profiter des services cloud pour appeler des méthodes au sein des modules.

Dans ce projet, nous développons un Module IoT Edge en utilisant le SDK Azure IoT NodeJS qui obtient un état souhaité depuis le cloud qui configure les broches GPIO sur un Raspberry Pi pour effectuer des opérations souhaitées sur un circuit attaché en utilisant Johnny 5.

Cela peut permettre des cas d'utilisation intéressants comme :

Contexte :

La configuration d'état souhaité est un concept populaire souvent utilisé lors du provisionnement initial de serveurs et pour assurer la conformité dans les systèmes en cours d'exécution. Nous étendons ce concept à la circuiterie en utilisant des services conçus pour la résilience et le fonctionnement sain dans les zones où la connectivité réseau peut être intermittente. Cette approche nous permet de changer le comportement d'une circuiterie connectée à l'exécution et de permettre des scénarios intéressants impliquant la redondance matérielle.

Le runtime Azure IoT Edge de Microsoft nous permet de former une base solide pour le projet. Ce runtime s'exécute en tant que service sur du matériel local et permet l'orchestration de « modules » conteneurisés qui sont configurés par dispositif dans le cloud Azure. Deux modules système sont toujours employés, l'edge-agent qui obtient et applique les configurations de déploiement de module et l'edge-hub qui permet la messagerie mise en cache vers le cloud et la communication inter-module.

Nous avons commencé par créer un module Azure IoT Edge en utilisant le SDK Azure IoT NodeJS. Ce module reçoit une configuration de jumeau qui spécifie les propriétés souhaitées et rapportées pour un dispositif donné. Nous employons un langage spécifique au domaine (DSL) qui est analysé en une configuration Johnny 5. Cela nous permet de définir comment un circuit doit fonctionner dans le cloud, et de l'appliquer à notre module IoT Edge.

Un exemple de configuration est fourni ci-dessous :

"config": "{\"peripherals\":[{\"type\":\"Led\",\"name\":\"alarm\",\"settings\":{\"pin\":\"GPIO18\"},\"initialState\":{\"method\":\"blink\",\"period\":500},\"outputAlias\":\"alias2\"},{\"type\":\"Button\",\"name\":\"button\",\"settings\":{\"pin\":\"GPIO20\"},\"outputAlias\":\"alias1\"}]}"

Cet exemple définit un dispositif LED sur GPIO18 avec un initialState de clignotement on/off toutes les 500 ms. L'état de la LED est capable de se propager vers d'autres modules en utilisant l'outputAlias. Un bouton est également employé sur GPIO20 qui publie les changements d'état vers alias1. Dans une telle configuration, nous pouvons répondre indépendamment aux changements d'état dans des modules supplémentaires en routant l'outputAlias.

Nous prenons actuellement en charge la configuration d'un thermomètre, LED et dispositif Bouton en utilisant ce mécanisme.

Étapes pour Reproduire :

Pour commencer, vous aurez besoin d'un abonnement Microsoft Azure avec un IoT Hub déployé.

Ensuite, vous voudrez commencer la configuration de votre matériel en connectant une LED à GPIO18 du Raspberry Pi. Les instructions pour ce processus peuvent être trouvées ici.

Avec la circuiterie et les services cloud préparés, vous voudrez installer le runtime Azure IoT Edge sur votre Raspberry Pi en suivant ce guide. Une fois le runtime installé, vous devrez provisionner manuellement le dispositif en suivant ces instructions.

Ensuite, nous créerons un déploiement spécial dans Azure qui nous permettra de faire clignoter notre LED.

Créez un déploiement comme indiqué ci-dessous :

L'URL de l'image :

toolboc/johnny5onedge:0.0.981-arm32v7

Les options de création du conteneur :

{"ExposedPorts":{"9229/tcp":{}},"HostConfig":{"PortBindings":{"9229/tcp":[{"HostPort":"9229"}]},"Privileged":true,"Devices":[{"PathOnHost":"/dev/i2c-1","PathInContainer":"/dev/i2c-1","CgroupPermissions":"rwm"},{"PathOnHost":"/dev/gpiomem","PathInContainer":"/dev/gpiomem","CgroupPermissions":"rwm"}],"Mounts":[{"Type":"bind","Source":"/lib/modules/","Target":"/lib/modules/"}]}}

Les propriétés souhaitées du Jumeau de Module :

{
"properties.desired": {
"config": "{\"peripherals\":[{\"type\":\"Led\",\"name\":\"alarm\",\"settings\":{\"pin\":\"GPIO18\"},\"initialState\":{\"method\":\"blink\",\"period\":500},\"outputAlias\":\"alias2\"},{\"type\":\"Button\",\"name\":\"on\",\"settings\":{\"pin\":\"GPIO20\"},\"outputAlias\":\"alias1\"}]}"
}
}

Enregistrez lorsque vous avez terminé. Puis passez les sections « Specify Routes » et « Specify Metrics » jusqu'à « Target Devices ».

Définissez la Priorité à 10 et ajoutez une condition cible de tags.environment='blinK

Lire Plus d'Informations…..

Configuration d'État Souhaité pour Circuits

Processus de fabrication

  1. Maîtriser Kubernetes sur Azure : Outils Prouvés, Astuces et Meilleures Pratiques
  2. Quel Parcours de Certification Azure Est Fait pour Vous ? Avis d'Experts Cloud Institute
  3. Devriez-vous poursuivre une certification Azure DevOps ? Avantages et impact sur la carrière
  4. Maîtrisez l'examen de certification Azure DevOps sans formation formelle
  5. Maîtrisez la gestion des coûts Cloud : stratégies éprouvées pour AWS, GCP et Azure
  6. Circuits de Commande : Fondamentaux, Applications et Bonnes Pratiques
  7. Optimiser les configurations HMI pour les opérations à haut risque
  8. Câbles blindés avancés pour circuits de signal : techniques de connexion pratiques (Partie 2)
  9. Câbles blindés pour circuits de signal : Partie 1 – Bonnes pratiques