Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Azure IoT Edge Module Twins für Schaltzustands-Management nutzen

LED blinken lassen mittels Domain Specific Language, angewendet durch Module Twin auf Docker-Container mit Johnny 5 auf Raspberry Pi.

Story

Überblick

Azure IoT Edge ermöglicht intermittierend verbundenen Geräten, gewünschte Eigenschaften über „Module Twins“ zu erhalten. Diese Twins dienen als Desired State Configuration, um spezifisches Verhalten innerhalb von Edge Modules zu steuern. Edge Modules laufen als Container-Workloads für Self-Healing und Rapid Deployment ohne permanente Konnektivität. Bei Internetverfügbarkeit können Geräte Cloud-Services nutzen, um Methoden innerhalb von Modulen aufzurufen.

In diesem Projekt entwickeln wir ein IoT Edge Modul mit Azure IoT NodeJS SDK, das einen Desired State aus der Cloud bezieht, der GPIO-Pins auf einem Raspberry Pi konfiguriert, um gewünschte Operationen an angeschlossener Schaltung mit Johnny 5 durchzuführen.

Das ermöglicht interessante Use Cases wie:

Hintergrund

Desired State Configuration ist beliebtes Konzept bei erstmaligem Provisioning von Servern und Compliance-Enforcement in laufenden Systemen. Wir erweitern dieses Konzept auf Schaltungen mit Services, die für Resilienz und gesunden Betrieb in Gebieten mit intermittierender Netzwerkkonnektivität designed sind. Dieser Ansatz erlaubt Laufzeit-Änderung des Verhaltens verbundener Schaltungen und interessante Szenarien mit Hardware-Redundanz.

Azure IoT Edge Runtime von Microsoft bietet solide Basis. Diese Runtime läuft als Service auf lokaler Hardware und ermöglicht Orchestrierung von containerisierten „Modules“, die pro Gerät in Azure Cloud konfiguriert werden. Zwei System-Modules immer im Einsatz: Edge-Agent (holt und wendet Module Deployment Configs an) und Edge-Hub (cached Messaging zur Cloud und Inter-Module-Kommunikation).

Wir starteten mit Erstellung eines Azure IoT Edge Modules mit Azure IoT NodeJS SDK. Dieses Modul empfängt Twin-Konfiguration, die Desired und Reported Properties für ein Gerät spezifiziert. Wir nutzen eine Domain Specific Language, die in Johnny 5 Konfiguration geparsed wird. Damit definieren wir in der Cloud, wie eine Schaltung funktionieren soll, und wenden es auf unser IoT Edge Modul an.

Beispiel-Konfiguration:

"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\\"}]}"

Dieses Beispiel definiert LED-Device auf GPIO18 mit initialState Blinken an/aus alle 500 ms. LED-State kann via outputAlias an andere Module propagieren. Button auf GPIO20 publiziert State-Änderungen an alias1. In solcher Konfiguration können wir unabhängig auf State-Änderungen in zusätzlichen Modulen reagieren durch Routing des outputAlias.

Aktuell unterstützen wir Konfiguration von Thermometer, LED und Button Device via diesem Mechanismus.

Schritte zur Reproduktion

Zunächst Microsoft Azure Subscription mit deployed IoT Hub nötig.

Als Nächstes Hardware konfigurieren: LED an GPIO18 des Raspberry Pi anschließen. Anleitung hierzu finden Sie hier.

Mit Schaltung und Cloud-Services vorbereitet, Azure IoT Edge Runtime auf Raspberry Pi installieren per diesem Guide. Dann Gerät manuell provisionieren per diesen Instruktionen.

Als Nächstes spezielles Deployment in Azure erstellen, um unsere LED blinken zu lassen.

Deployment wie unten gezeigt erstellen:

Container Image URL:

toolboc/johnny5onedge:0.0.981-arm32v7

Container Create Options:

{"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/"}]}}

Module Twin's Desired Properties:

{
    "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\\"}]}"
    }
}

Speichern wenn fertig. Dann „Specify Routes“ und „Specify Metrics“ Sektionen überspringen bis „Target Devices“.

Priority auf 10 setzen und Target Condition tags.environment='blinK hinzufügen.

Read More Information…..

Desired State Configuration for Circuits

Herstellungsprozess

  1. Kubernetes auf Azure meistern: Bewährte Tools, Tipps und Best Practices
  2. Welcher Azure-Zertifizierungspfad passt zu Ihnen? Insights von Cloud Institute Experten
  3. Sollten Sie die Azure DevOps-Zertifizierung anstreben? Vorteile & Karriereauswirkungen
  4. Azure DevOps-Zertifizierungsprüfung ohne formales Training meistern
  5. Cloud Cost Management meistern: Bewährte Strategien für AWS, GCP und Azure
  6. Steuerschaltungen: Grundlagen, Anwendungen und Best Practices
  7. HMI-Konfigurationen für Hochrisiko-Operationen optimieren
  8. Fortgeschrittene geschirmte Kabel für Signalleitungen: Praktische Anschlusstechniken (Teil 2)
  9. Geschirmte Kabel für Signalleitungen: Teil 1 – Best Practices
  10. Microsoft stellt Azure Edge Zones für 5G-fähige IoT- und KI-Workloads vor