Delen via


Zelfstudie: Een hiërarchie maken van IoT Edge-apparaten

Van toepassing op: IoT Edge 1.5-vinkje IoT Edge 1.5 Vinkje voor IoT Edge 1.4 IoT Edge 1.4

Belangrijk

IoT Edge 1.5 LTS en IoT Edge 1.4 LTS worden ondersteund releases. IoT Edge 1.4 LTS eindigt op 12 november 2024. Raadpleeg IoT Edge bijwerken als u een eerdere versie hebt.

U kunt Azure IoT Edge-knooppunten implementeren in netwerken die zijn ingedeeld in hiërarchische lagen. Elke laag in een hiërarchie is een gateway-apparaat dat berichten en aanvragen verwerkt van apparaten in de onderliggende laag. Deze configuratie wordt ook wel geneste rand genoemd.

U kunt een hiërarchie van apparaten structuren, zodat alleen de bovenste laag verbinding heeft met de cloud en de lagere lagen alleen kunnen communiceren met aangrenzende upstream- en downstreamlagen. Deze netwerklagen vormen de basis van de meeste industriële netwerken die voldoen aan de ISA-95-standaard.

Deze zelfstudie begeleidt u bij het maken van een hiërarchie van IoT Edge-apparaten, het implementeren van IoT Edge-runtimecontainers op uw apparaten en het lokaal configureren van uw apparaten. U voert de volgende taken uit:

  • De relaties in een hiërarchie van IoT Edge-apparaten maken en definiëren.
  • De IoT Edge-runtime op de apparaten in uw hiërarchie configureren.
  • Consistente certificaten in de hiërarchie van uw apparaat installeren.
  • Workloads toevoegen aan de apparaten in uw hiërarchie.
  • Gebruik de Api-proxymodule van IoT Edge om HTTP-verkeer veilig te routeren via één poort vanaf uw apparaten met een lagere laag.

Tip

Deze zelfstudie bevat een combinatie van handmatige en geautomatiseerde stappen voor een presentatie van geneste IoT Edge-functies.

Als u een volledig geautomatiseerd overzicht wilt hebben van het instellen van een hiërarchie van IoT Edge-apparaten, volgt u het script azure IoT Edge voor industrial IoT-voorbeeld. Met dit scriptscenario worden virtuele Azure-machines geïmplementeerd als vooraf geconfigureerde apparaten om een fabrieksomgeving te simuleren.

Als u een uitgebreid overzicht wilt van de handmatige stappen voor het maken en beheren van een hiërarchie van IoT Edge-apparaten, raadpleegt u de handleiding voor ioT Edge-apparaatgatewayhiërarchieën.

In deze zelfstudie worden de volgende netwerklagen gedefinieerd:

  • Bovenste laag: IoT Edge-apparaten op deze laag kunnen rechtstreeks verbinding maken met de cloud.

  • Lagere lagen: IoT Edge-apparaten op lagen onder de bovenste laag kunnen niet rechtstreeks verbinding maken met de cloud. Ze moeten via een of meer tussenliggende IoT Edge-apparaten gaan om gegevens te verzenden en te ontvangen.

In deze zelfstudie wordt voor het gemak een hiërarchie van twee apparaten gebruikt. Het apparaat met de bovenste laag vertegenwoordigt een apparaat op de bovenste laag van de hiërarchie die rechtstreeks verbinding kan maken met de cloud. Dit apparaat wordt het bovenliggende apparaat genoemd. Het apparaat met een lagere laag vertegenwoordigt een apparaat op de onderste laag van de hiërarchie die niet rechtstreeks verbinding kan maken met de cloud. U kunt zo nodig meer apparaten toevoegen om uw productieomgeving weer te geven. Apparaten op lagere lagen worden onderliggende apparaten genoemd.

Structuur van de zelfstudiehiërarchie, die twee apparaten bevat: het apparaat van de bovenste laag en het apparaat met de onderste laag

Notitie

Een onderliggend apparaat kan een downstreamapparaat of een gatewayapparaat in een geneste topologie zijn.

Vereisten

Als u een hiërarchie van IoT Edge-apparaten wilt maken, hebt u het volgende nodig:

  • Een computer (Windows of Linux) met internetverbinding.

  • Een Azure-account met een geldig abonnement. Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.

  • Een gratis of standaard IoT-hub-laag in Azure.

  • Een Bash-shell in Azure Cloud Shell met behulp van Azure CLI waarop de Azure IoT-extensie is geïnstalleerd. Deze zelfstudie maakt gebruik van de Azure Cloud Shell. Als u uw huidige versies van de Azure CLI-modules en -extensies wilt zien, voert u az-versie uit.

  • Twee Linux-apparaten om uw hiërarchie te configureren. Als er geen apparaten beschikbaar zijn, kunt u virtuele Azure-machines maken voor elk apparaat in uw hiërarchie met behulp van de IoT Edge Azure Resource Manager-sjabloon. IoT Edge versie 1.5 is vooraf geïnstalleerd met deze Resource Manager-sjabloon. Als u IoT Edge op uw eigen apparaten installeert, raadpleegt u Azure IoT Edge voor Linux installeren of IoT Edge bijwerken.

  • Om de netwerkcommunicatie tussen apparaten te vereenvoudigen, moeten de virtuele machines zich in hetzelfde virtuele netwerk bevinden of peering van virtuele netwerken gebruiken.

  • Zorg ervoor dat de volgende poorten zijn geopend voor alle apparaten, met uitzondering van het apparaat met de laagste laag: 443, 5671, 8883:

    • 443: Wordt gebruikt tussen bovenliggende en onderliggende edge-hubs voor REST API-aanroepen en om Docker-containerinstallatiekopieën op te halen.
    • 5671, 8883: Wordt gebruikt voor AMQP en MQTT.

    Zie voor meer informatie hoe u poorten opent naar een virtuele machine met Azure Portal.

    Tip

    U gebruikt de SSH-ingang en het FQDN- of IP-adres van elke virtuele machine voor configuratie in latere stappen, dus houd deze informatie bij. U vindt het IP-adres en de FQDN in Azure Portal. Ga voor het IP-adres naar uw lijst met virtuele machines en noteer het veld Openbaar IP-adres. Ga voor de FQDN naar de overzichtspagina van elke virtuele machine en zoek naar het veld DNS-naam. Ga voor de SSH-ingang naar de verbindingspagina van elke virtuele machine.

Uw IoT Edge-apparaathiërarchie maken

IoT Edge-apparaten vormen de lagen van uw hiërarchie. In deze zelfstudie maakt u een hiërarchie van twee IoT Edge-apparaten: het apparaat met de bovenste laag en het apparaat met de onderste laag. U kunt naar behoefte meer downstreamapparaten maken.

Als u uw hiërarchie van IoT Edge-apparaten wilt maken en configureren, gebruikt u de opdracht az iot edge devices create Azure CLI. De opdracht vereenvoudigt de configuratie van de hiërarchie door verschillende stappen te automatiseren en samen te vatten:

  • Apparaten maken in uw IoT Hub
  • Hiermee stelt u de bovenliggende en onderliggende relaties in om communicatie tussen apparaten te autoriseren
  • Het implementatiemanifest toepassen op elk apparaat
  • Genereert een keten van certificaten voor elk apparaat om beveiligde communicatie tussen het apparaat tot stand te brengen
  • Hiermee worden configuratiebestanden voor elk apparaat gegenereerd

Apparaatconfiguratie maken

U maakt een groep geneste edge-apparaten met een bovenliggend apparaat met één onderliggend apparaat. In deze zelfstudie gebruiken we eenvoudige voorbeeldimplementatiemanifesten. Bekijk de sjablonen voor configuratievoorbeelden voor andere scenario's.

  1. Voordat u de opdracht az iot edge devices create gebruikt , moet u het implementatiemanifest definiëren voor de apparaten in de bovenste laag en de onderste laag. Download het deploymentTopLayer.json voorbeeldbestand naar uw lokale computer.

    Het implementatiemanifest van het apparaat op de bovenste laag definieert de IoT Edge API-proxymodule en declareert de route van het apparaat met de onderste laag naar IoT Hub.

  2. Download het deploymentLowerLayer.json voorbeeldbestand naar uw lokale computer.

    Het implementatiemanifest van het apparaat in de onderste laag bevat de module voor de gesimuleerde temperatuursensor en declareert de route naar het apparaat met de bovenste laag. U kunt in de sectie systemModules zien dat de runtimemodules zijn ingesteld op het ophalen van $upstream:443 in plaats van mcr.microsoft.com. Het apparaat met de onderste laag verzendt Docker-installatiekopieaanvragen voor de IoT Edge API-proxymodule op poort 443, omdat de installatiekopieën niet rechtstreeks uit de cloud kunnen worden opgehaald. De andere module die is geïmplementeerd op het apparaat met een lagere laag, de module Gesimuleerde temperatuursensor, doet ook de aanvraag voor de afbeelding.$upstream:443

    Zie Azure IoT Edge-apparaten verbinden om een hiërarchie te maken voor meer informatie over het maken van een distributiemanifest met een lagere laag.

  3. Gebruik in Azure Cloud Shell de opdracht az iot edge devices create Azure CLI om apparaten te maken in IoT Hub en configuratiebundels voor elk apparaat in uw hiërarchie. Vervang de volgende tijdelijke aanduidingen door de juiste waarden:

    Plaatsaanduiding Beschrijving
    <hub-name> De naam van uw IoT Hub.
    <config-bundle-output-path> Het mappad waar u de configuratiebundels wilt opslaan.
    <bovenliggende apparaatnaam> De naam van de bovenliggende apparaat-id op de bovenste laag .
    <parent-deployment-manifest> Het manifestbestand voor de implementatie van het bovenliggende apparaat.
    <parent-fqdn-or-ip> Volledig gekwalificeerde domeinnaam (FQDN) of IP-adres van bovenliggend apparaat.
    <naam onderliggend apparaat> De naam van de onderliggende apparaat-id van de onderste laag .
    <child-deployment-manifest> Het manifestbestand voor de implementatie van onderliggende apparaten.
    <child-fqdn-or-ip> FQDN(Fully Qualified Domain Name) of IP-adres van onderliggend apparaat.
    az iot edge devices create \
       --hub-name <hub-name> \
       --output-path <config-bundle-output-path> \
       --default-edge-agent "mcr.microsoft.com/azureiotedge-agent:1.5" \
       --device id=<parent-device-name> \
          deployment=<parent-deployment-manifest> \
          hostname=<parent-fqdn-or-ip> \
       --device id=child-1 \
          parent=parent-1 \
          deployment=<child-deployment-manifest> \
          hostname=<child-fqdn-or-ip>
    

    Met de volgende opdracht maakt u bijvoorbeeld een hiërarchie van twee IoT Edge-apparaten in IoT Hub. Een apparaat in de bovenste laag met de naam bovenliggend-1 en een apparaat met een lagere laag met de naam onderliggende-1*. Met de opdracht worden de configuratiebundels voor elk apparaat in de uitvoermap opgeslagen. Met de opdracht worden ook zelfondertekende testcertificaten gegenereerd en opgenomen in de configuratiebundel. De configuratiebundels worden op elk apparaat geïnstalleerd met behulp van een installatiescript.

    az iot edge devices create \
       --hub-name my-iot-hub \
       --output-path ./output \
       --default-edge-agent "mcr.microsoft.com/azureiotedge-agent:1.5" \
       --device id=parent-1 \
          deployment=./deploymentTopLayer.json \
          hostname=10.0.0.4 \
       --device id=child-1 \
          parent=parent-1 \
          deployment=./deploymentLowerLayer.json \
          hostname=10.1.0.4
    

Nadat u de opdracht hebt uitgevoerd, kunt u de apparaatconfiguratiebundels vinden in de uitvoermap. Voorbeeld:

PS C:\nested-edge\output> dir

   Directory: C:\nested-edge\output

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           4/10/2023  4:12 PM           7192 child-1.tgz
-a---           4/10/2023  4:12 PM           6851 parent-1.tgz

U kunt uw eigen certificaten en sleutels gebruiken die als argumenten worden doorgegeven aan de opdracht of een complexere apparaathiërarchie maken. Zie az iot edge devices create voor meer informatie over het maken van geneste apparaten met behulp van de az-opdracht. Als u niet bekend bent met hoe certificaten worden gebruikt in een gatewayscenario, raadpleegt u de handleidingsectie van het certificaat.

In deze zelfstudie gebruikt u inlineargumenten om de apparaten en configuratiebundels te maken. U kunt ook een configuratiebestand gebruiken in YAML- of JSON-indeling. Zie het voorbeeld van sample_devices_config.yaml voor een voorbeeldconfiguratiebestand.

De IoT Edge-runtime configureren

Naast het inrichten van uw apparaten zorgen de configuratiestappen voor vertrouwde communicatie tussen de apparaten in uw hiërarchie met behulp van de certificaten die u eerder hebt gemaakt. De stappen beginnen ook met het instellen van de netwerkstructuur van uw hiërarchie. Het apparaat in de bovenste laag onderhoudt de internetverbinding, zodat het installatiekopieën kan ophalen voor de runtime vanuit de cloud, terwijl apparaten met een lagere laag via het apparaat in de bovenste laag worden gerouteerd om toegang te krijgen tot deze installatiekopieën.

Als u de IoT Edge-runtime wilt configureren, moet u de configuratiebundels toepassen op uw apparaten. De configuraties verschillen tussen het apparaat in de bovenste laag en een apparaat met een lagere laag, dus houd rekening met het apparaatconfiguratiebestand dat u op elk apparaat toepast.

  1. Kopieer elk archiefbestand van de configuratiebundel naar het bijbehorende apparaat. U kunt een USB-station, een service zoals Azure Key Vault of met een functie zoals beveiligd bestand kopiëren gebruiken. Kies een van deze methoden die het beste overeenkomen met uw scenario.

    Als u bijvoorbeeld de bovenliggende-1-configuratiebundel wilt verzenden naar de basismap op de vm met bovenliggende 1 , kunt u een opdracht gebruiken zoals in het volgende voorbeeld:

    scp ./output/parent-1.tgz admin@parent-1-vm.westus.cloudapp.azure.com:~
    
  2. Pak op elk apparaat het archief van de configuratiebundel uit. Gebruik bijvoorbeeld de tar-opdracht om het bovenliggende-1 archiefbestand te extraheren:

    tar -xzf ./parent-1.tgz
    
  3. Stel de machtiging voor uitvoeren in voor het installatiescript.

    chmod +x install.sh
    
  4. Pas op elk apparaat de configuratiebundel toe op het apparaat met behulp van de hoofdmachtiging:

    sudo ./install.sh
    

    Als u de configuratiebundels installeert, worden de bestanden config.toml op uw apparaat bijgewerkt en worden alle IoT Edge-services automatisch opnieuw opgestart

    Zie Azure IoT Edge-apparaten met elkaar verbinden om een hiërarchie te maken als u meer wilt weten welke wijzigingen worden aangebracht in het configuratiebestand van uw apparaat.

Als u wilt controleren of uw apparaten correct zijn geconfigureerd, voert u de configuratie- en connectiviteitscontroles uit op uw apparaten.

sudo iotedge check
admin@child-1-vm:~$ sudo iotedge check

Configuration checks (aziot-identity-service)
---------------------------------------------
√ keyd configuration is well-formed - OK
√ certd configuration is well-formed - OK
√ tpmd configuration is well-formed - OK
√ identityd configuration is well-formed - OK
√ daemon configurations up-to-date with config.toml - OK
√ identityd config toml file specifies a valid hostname - OK
√ host time is close to reference time - OK
√ preloaded certificates are valid - OK
√ keyd is running - OK
√ certd is running - OK
√ identityd is running - OK
√ read all preloaded certificates from the Certificates Service - OK
√ read all preloaded key pairs from the Keys Service - OK
√ check all EST server URLs utilize HTTPS - OK
√ ensure all preloaded certificates match preloaded private keys with the same ID - OK

Connectivity checks (aziot-identity-service)
--------------------------------------------
√ host can connect to and perform TLS handshake with iothub AMQP port - OK
√ host can connect to and perform TLS handshake with iothub HTTPS / WebSockets port - OK
√ host can connect to and perform TLS handshake with iothub MQTT port - OK

Configuration checks
--------------------
√ aziot-edged configuration is well-formed - OK
√ configuration up-to-date with config.toml - OK
√ container engine is installed and functional - OK
√ configuration has correct parent_hostname - OK
√ configuration has correct URIs for daemon mgmt endpoint - OK
√ container time is close to host time - OK
‼ DNS server - Warning
    Container engine is not configured with DNS server setting, which may impact connectivity to IoT Hub.
    Please see https://aka.ms/iotedge-prod-checklist-dns for best practices.
    You can ignore this warning if you are setting DNS server per module in the Edge deployment.
‼ production readiness: logs policy - Warning
    Container engine is not configured to rotate module logs which may cause it run out of disk space.
    Please see https://aka.ms/iotedge-prod-checklist-logs for best practices.
    You can ignore this warning if you are setting log policy per module in the Edge deployment.
‼ production readiness: Edge Agent's storage directory is persisted on the host filesystem - Warning
    The edgeAgent module is not configured to persist its /tmp/edgeAgent directory on the host filesystem.
    Data might be lost if the module is deleted or updated.
    Please see https://aka.ms/iotedge-storage-host for best practices.
‼ production readiness: Edge Hub's storage directory is persisted on the host filesystem - Warning
    The edgeHub module is not configured to persist its /tmp/edgeHub directory on the host filesystem.
    Data might be lost if the module is deleted or updated.
    Please see https://aka.ms/iotedge-storage-host for best practices.
√ Agent image is valid and can be pulled from upstream - OK
√ proxy settings are consistent in aziot-edged, aziot-identityd, moby daemon and config.toml - OK

Connectivity checks
-------------------
√ container on the default network can connect to upstream AMQP port - OK
√ container on the default network can connect to upstream HTTPS / WebSockets port - OK
√ container on the IoT Edge module network can connect to upstream AMQP port - OK
√ container on the IoT Edge module network can connect to upstream HTTPS / WebSockets port - OK
30 check(s) succeeded.
4 check(s) raised warnings. Re-run with --verbose for more details.
2 check(s) were skipped due to errors from other checks. Re-run with --verbose for more details.

Op uw apparaat in de bovenste laag ziet u een uitvoer met verschillende geslaagde evaluaties. Mogelijk ziet u enkele waarschuwingen over logboekbeleidsregels en, afhankelijk van uw netwerk, DNS-beleid.

Implementatie van apparaatmodule

De module-implementatie voor uw apparaten is toegepast toen de apparaten zijn gemaakt in IoT Hub. Met de opdracht az iot edge devices create worden de JSON-implementatiebestanden toegepast voor de apparaten met de bovenste en lagere laag. Nadat deze implementaties zijn voltooid, gebruikt het apparaat in de onderste laag de IoT Edge API Proxy-module om de benodigde installatiekopieën op te halen.

Daarnaast ontvangen de Runtime-modules IoT Edge Agent en IoT Edge Hub het bovenste laagapparaat de Docker-registermodule en de IoT Edge API-proxymodule.

De Docker-registermodule verwijst naar een bestaand Azure Container Registry. In dit geval REGISTRY_PROXY_REMOTEURL verwijst u naar het Microsoft Container Registry. Docker-register luistert standaard op poort 5000.

De Api-proxymodule van IoT Edge stuurt HTTP-aanvragen naar andere modules, zodat apparaten met een lagere laag containerinstallatiekopieën kunnen ophalen of blobs naar de opslag kunnen pushen. In deze zelfstudie communiceert deze op poort 443 en is geconfigureerd voor het verzenden van pull-aanvragen voor Docker-containerinstallatiekopieën naar uw Docker-registermodule op poort 5000. Bovendien worden aanvragen voor het uploaden van blobopslag doorgestuurd naar module AzureBlobStorageonIoTEdge op poort 11002. Voor meer informatie over de IoT Edge API-proxymodule en hoe u deze configureert, raadpleegt u de instructies van de module.

Als u wilt zien hoe u een implementatie zoals deze maakt via Azure Portal of Azure Cloud Shell, raadpleegt u de sectie apparaat in de bovenste laag van de handleiding.

U kunt de status van uw modules weergeven met behulp van de opdracht:

az iot hub module-twin show --device-id <edge-device-id> --module-id '$edgeAgent' --hub-name <iot-hub-name> --query "properties.reported.[systemModules, modules]"

Met deze opdracht worden alle gerapporteerde eigenschappen van edgeAgent uitgevoerd. Hier volgen enkele nuttige functies voor het controleren van de status van het apparaat: runtimestatus, runtime-begintijd, laatste afsluittijd van runtime, aantal runtime-herstarts.

U kunt ook de status van uw modules bekijken in Azure Portal. Navigeer naar de sectie Apparaten van uw IoT Hub om uw apparaten en modules te bekijken.

Gegenereerde gegevens weergeven

De gesimuleerde temperatuursensormodule die u hebt gepusht, genereert samples van omgevingsgegevens. De module verzendt berichten met informatie over omgevingstemperatuur, luchtvochtigheid, machinetemperatuur en druk, evenals een tijdstempel.

U kunt deze berichten ook bekijken via de Azure Cloud Shell:

az iot hub monitor-events -n <iot-hub-name> -d <lower-layer-device-name>

Voorbeeld:

az iot hub monitor-events -n my-iot-hub -d child-1
{
    "event": {
        "origin": "child-1",
        "module": "simulatedTemperatureSensor",
        "interface": "",
        "component": "",
        "payload": "{\"machine\":{\"temperature\":104.29281270901808,\"pressure\":10.48905461241978},\"ambient\":{\"temperature\":21.086561171611102,\"humidity\":24},\"timeCreated\":\"2023-04-17T21:50:30.1082487Z\"}"
    }
}

Probleemoplossing

Voer de iotedge check opdracht uit om de configuratie te controleren en om fouten op te lossen.

U kunt uitvoeren iotedge check in een geneste hiërarchie, zelfs als de downstreamcomputers geen directe internettoegang hebben.

Wanneer u vanaf de onderste laag wordt uitgevoerd iotedge check , probeert het programma de installatiekopie van het bovenliggende element op te halen via poort 443.

De azureiotedge-diagnostics-waarde wordt opgehaald uit het containerregister dat aan de registermodule is gekoppeld. In deze zelfstudie is deze standaard ingesteld op https://mcr.microsoft.com:

Naam Weergegeven als
REGISTRY_PROXY_REMOTEURL https://mcr.microsoft.com

Als u een privécontainerregister gebruikt, moet u ervoor zorgen dat alle installatiekopieën (IoTEdgeAPIProxy, edgeAgent, edgeHub, Simulated Temperature Sensor en diagnostische gegevens) aanwezig zijn in het containerregister.

Als een downstreamapparaat een andere processorarchitectuur heeft dan het bovenliggende apparaat, hebt u de juiste architectuurinstallatiekopieën nodig. U kunt een verbonden register gebruiken of u kunt de juiste installatiekopieën opgeven voor de edgeAgent- en EdgeHub-modules in het downstreamapparaatconfig.toml-bestand. Als het bovenliggende apparaat bijvoorbeeld wordt uitgevoerd op een ARM32v7-architectuur en het downstreamapparaat wordt uitgevoerd op een AMD64-architectuur, moet u de overeenkomende versie en architectuurafbeeldingstag opgeven in het downstream-apparaatconfig.toml-bestand.

[agent.config]
image = "$upstream:443/azureiotedge-agent:1.5.0-linux-amd64"

"systemModules": {
   "edgeAgent": {
      "settings": {
            "image": "$upstream:443/azureiotedge-agent:1.5.0-linux-amd64"
      },
   },
   "edgeHub": {
      "settings": {
            "image": "$upstream:443/azureiotedge-hub:1.5.0-linux-amd64",
      }
   }
}

Resources opschonen

U kunt de lokale configuraties en Azure-resources die u in dit artikel hebt gemaakt, verwijderen om kosten te voorkomen.

Om de resources te verwijderen:

  1. Meld u aan bij de Azure-portal en selecteer Resourcegroepen.

  2. Selecteer de naam van de resourcegroep die uw IoT Edge-testresources bevat.

  3. Bekijk de lijst met resources die zich bevinden in de resourcegroep. Als u alle mappen wilt verwijderen, kunt u Resourcegroep verwijderen selecteren. Als u slechts enkele resources wilt verwijderen, kunt u elke resource selecteren om ze afzonderlijk te verwijderen.

Volgende stappen

In deze zelfstudie hebt u twee IoT Edge-apparaten geconfigureerd als gateways, en het ene ingesteld als bovenliggend apparaat van het andere. Vervolgens hebt u een containerinstallatiekopie naar het downstreamapparaat opgehaald via een gateway met behulp van de IoT Edge API-proxymodule. Zie de handleiding over het gebruik van de proxymodule als u meer wilt weten.

Zie het volgende artikel voor meer informatie over het gebruik van gateways voor het maken van hiërarchische lagen van IoT Edge-apparaten.