Sdílet prostřednictvím


Externí transformace dat pro IoT Central

Zařízení IoT odesílají data v různých formátech. Pokud chcete používat data zařízení s aplikací IoT Central, možná budete muset použít transformaci na:

  • Nastavte formát dat, který je kompatibilní s vaší aplikací IoT Central.
  • Převod jednotek
  • Vypočítá nové metriky.
  • Obohacení dat z jiných zdrojů

V tomto článku se dozvíte, jak transformovat data zařízení mimo IoT Central při příchozím nebo výchozím přenosu dat.

Poznámka:

IoT Central může také interně transformovat data. Další informace najdete v tématu Mapování telemetrie při příchozím přenosu dat do IoT Central a transformace dat uvnitř aplikace IoT Central pro export.

Následující diagram znázorňuje tři trasy pro data, která zahrnují transformace:

Souhrn tras příchozího i výchozího přenosu dat

Následující tabulka ukazuje tři příklady typů transformace:

Transformace Popis Příklad Notes
Formát zprávy Převeďte zprávy JSON nebo s nimi manipulovat. CSV do FORMÁTU JSON Při příchozím přenosu dat. IoT Central přijímá pouze zprávy JSON s hodnotou. Další informace najdete v tématu Telemetrie, vlastnost a datové části příkazů.
Výpočty Matematické funkce, které může Azure Functions spouštět. Převod jednotek z Fahrenheita na Stupně Celsia. Transformujte pomocí vzorce výchozího přenosu dat a využijte škálovatelné příchozí přenosy dat zařízení prostřednictvím přímého připojení ke službě IoT Central. Transformace dat umožňuje používat funkce IoT Central, jako jsou vizualizace a úlohy.
Obohacení zpráv Obohacení z externích zdrojů dat se nenašlo ve vlastnostech zařízení nebo telemetrii. Další informace o interních rozšiřováních najdete v tématu Export dat IoT do cloudových cílů pomocí služby Blob Storage. Přidejte do zpráv informace o počasí pomocí dat o poloze ze zařízení. Transformujte pomocí vzorce výchozího přenosu dat a využijte škálovatelné příchozí přenosy dat zařízení prostřednictvím přímého připojení ke službě IoT Central.

Požadavky

K dokončení kroků v tomto průvodci postupy potřebujete:

Transformace dat při příchozím přenosu dat

Pokud chcete transformovat data zařízení při příchozím přenosu dat, existují dvě možnosti:

  • IoT Edge: Před odesláním dat do aplikace IoT Central pomocí modulu IoT Edge transformujte data z podřízených zařízení.

  • Most zařízení IoT Central: Most zařízení IoT Central propojuje další cloudy zařízení IoT, jako je Sigfox, Částice a Síť Věcí, k IoT Central. Most zařízení používá funkci Azure k předávání dat a funkci můžete přizpůsobit tak, aby transformovala data zařízení.

Transformace dat zařízení pomocí IoT Edge

Transformace dat při příchozím přenosu dat pomocí IoT Edge

V tomto scénáři modul IoT Edge transformuje data z podřízených zařízení před jejich předáním do aplikace IoT Central. Na vysoké úrovni jsou kroky konfigurace tohoto scénáře následující:

  1. Nastavení zařízení IoT Edge: Nainstalujte a zřiďte zařízení IoT Edge jako bránu a připojte bránu k aplikaci IoT Central.

  2. Připojení podřízené zařízení do zařízení IoT Edge: Připojení podřízená zařízení do zařízení IoT Edge a zřizovat je pro vaši aplikaci IoT Central.

  3. Transformace dat zařízení ve službě IoT Edge: Vytvořte modul IoT Edge pro transformaci dat. Nasaďte modul do zařízení brány IoT Edge, které předává transformovaná data zařízení do aplikace IoT Central.

  4. Ověření: Odesílání dat z podřízeného zařízení do brány a ověření dat transformovaných zařízení do vaší aplikace IoT Central.

V příkladu popsaném v následujících částech odesílá podřízené zařízení data JSON v následujícím formátu do zařízení brány IoT Edge:

{
  "device": {
      "deviceId": "<downstream-deviceid>"
  },
  "measurements": {
    "temp": <temperature>,
    "pressure": <pressure>,
    "humidity": <humidity>,
    "scale": "celsius",
  }
}

K transformaci dat a převodu hodnoty teploty z CelsiusFahrenheit modulu IoT Edge do IoT Central použijete modul IoT Edge:

{
  "device": {
      "deviceId": "<downstream-deviceid>"
  },
  "measurements": {
    "temp": <temperature>,
    "pressure": <pressure>,
    "humidity": <humidity>,
    "scale": "fahrenheit"
  }
}

Procházet kód

Následující kroky ukazují, jak nastavit a nakonfigurovat tento scénář:

Sestavení vlastního modulu

V tomto scénáři spustí zařízení IoT Edge vlastní modul, který transformuje data z podřízeného zařízení. Před nasazením a konfigurací zařízení IoT Edge musíte:

  • Sestavte vlastní modul.
  • Přidejte vlastní modul do registru kontejneru.

Modul runtime IoT Edge stáhne vlastní moduly z registru kontejneru, jako je registr kontejneru Azure nebo Docker Hub. Azure Cloud Shell obsahuje všechny nástroje, které potřebujete k vytvoření registru kontejneru, sestavení modulu a nahrání modulu do registru:

Vytvoření registru kontejneru:

  1. Otevřete Azure Cloud Shell a přihlaste se k předplatnému Azure.

  2. Vyberte prostředí Bash.

  3. Spuštěním následujících příkazů vytvořte registr kontejneru Azure:

    REGISTRY_NAME="{your unique container registry name}"
    az group create --name ingress-scenario --location eastus
    az acr create -n $REGISTRY_NAME -g ingress-scenario --sku Standard --admin-enabled true
    az acr credential show -n $REGISTRY_NAME
    

    Poznamenejte username si hodnoty a password poznamenejte si je později. Potřebujete jenom jedno z hesel zobrazených ve výstupu příkazu.

Vytvoření vlastního modulu v Azure Cloud Shellu:

  1. V Azure Cloud Shellu naklonujte úložiště GitHub, které obsahuje zdrojový kód modulu:

    git clone https://github.com/iot-for-all/iot-central-transform-with-iot-edge
    
  2. Pokud chcete vytvořit vlastní modul, spusťte v Azure Cloud Shellu následující příkazy:

    cd iot-central-transform-with-iot-edge/custommodule/transformmodule
    az acr build --registry $REGISTRY_NAME --image transformmodule:0.0.1-amd64 -f Dockerfile.amd64 .
    

    Spuštění předchozích příkazů může trvat několik minut.

Nastavení zařízení IoT Edge

Tento scénář používá zařízení brány IoT Edge k transformaci dat z jakéhokoli podřízeného zařízení. Tato část popisuje, jak vytvořit šablonu zařízení IoT Central pro zařízení brány v aplikaci IoT Central. Zařízení IoT Edge používají manifest nasazení ke konfiguraci modulů.

V tomto příkladu podřízené zařízení nepotřebuje šablonu zařízení. Podřízené zařízení je zaregistrované ve službě IoT Central, takže můžete vygenerovat přihlašovací údaje, které potřebuje k připojení zařízení IoT Edge. Vzhledem k tomu, že modul IoT Edge transformuje data, veškerá telemetrie podřízených zařízení se do IoT Central dorazí, jako by ho zařízení IoT Edge odeslalo.

Vytvoření šablony zařízení pro zařízení brány IoT Edge:

  1. Uložte kopii manifestu nasazení do místního vývojového počítače: moduledeployment.json.

  2. Otevřete místní kopii souboru manifestu moduledeployment.json v textovém editoru.

  3. registryCredentials Vyhledejte oddíl a nahraďte zástupné symboly hodnotami, které jste si poznamenali při vytváření registru kontejneru Azure. Hodnota address vypadá takto {your username}.azurecr.io.

  4. settings Najděte oddíl pro transformmodule. Nahraďte {your username} stejnou hodnotou, jakou jste použili v předchozím kroku. Uložte změny.

  5. V aplikaci IoT Central přejděte na stránku manifestů Edge.

  6. Vyberte + Nové. Zadejte název, například Transformer pro manifest nasazení, a potom nahrajte soubor moduledeployment.json , který jste si stáhli dříve. Manifest nasazení obsahuje vlastní modul s názvem transformmodule.

  7. Vyberte Další a pak Vytvořit.

  8. V aplikaci IoT Central přejděte na stránku Šablony zařízení.

  9. Vyberte + Nový, vyberte Azure IoT Edge a pak vyberte Další: Přizpůsobit.

  10. Jako název šablony zařízení zadejte zařízení brány IoT Edge. Vyberte Toto je zařízení brány.

  11. Vyberte Další: Zkontrolovat a pak vyberte Vytvořit.

  12. Na stránce Vytvořit model vyberte Vlastní model.

  13. V modelu vyberte Moduly a potom import modulů z manifestu. Vyberte manifest nasazení Transformer a pak vyberte Importovat.

Manifest nasazení nezadává telemetrii, která modul odesílá. Přidání definic telemetrie do šablony zařízení:

  1. V části Moduly šablony zařízení brány IoT Edge vyberte modul transformmodule.

  2. Vyberte Možnost Přidat a pomocí informací v následujících tabulkách přidejte nový typ telemetrie:

    Nastavení Hodnota
    Zobrazované jméno Zařízení
    Název device
    Typ funkce Telemetrie
    Sémantický typ Nic
    Schéma Object

    Definice objektu:

    Zobrazované jméno Jméno Schéma
    ID zařízení deviceId String

    Uložte provedené změny.

  3. Vyberte Možnost Přidat a pomocí informací v následujících tabulkách přidejte nový typ telemetrie:

    Nastavení Hodnota
    Zobrazované jméno Measurements
    Název Měření
    Typ funkce Telemetrie
    Sémantický typ Nic
    Schéma Object

    Definice objektu:

    Zobrazované jméno Jméno Schéma
    Teplota Teplota Hodnota s dvojitou přesností
    Tlak tlak Hodnota s dvojitou přesností
    Vlhkost vlhkost Hodnota s dvojitou přesností
    Měřítko scale String

    Uložte provedené změny.

  4. V modelu vyberte Relace. Nevybírejte relace v modulu transformmodule .

  5. Vyberte Přidat relaci.

  6. Zadejte podřízený senzor jako zobrazovaný název, senzor jako název a vyberte Libovolný jako cíl. Zvolte Uložit.

  7. Výběrem možnosti Publikovat publikujte šablonu zařízení.

Registrace zařízení brány v IoT Central:

  1. V aplikaci IoT Central přejděte na stránku Zařízení .

  2. Vyberte zařízení brány IoT Edge a vyberte + Nový. Jako název zařízení zadejte zařízení brány IoT Edge, jako ID zařízení zadejte gateway-01, ujistěte se, že je jako šablona zařízení vybráno zařízení IoT Edge a jako simulované toto zařízení není vybráno žádné. Jako manifest okraje vyberte Transformer . Vyberte Vytvořit.

  3. V seznamu zařízení klikněte na zařízení brány IoT Edge a pak vyberte Připojení.

  4. Poznamenejte si rozsah ID, ID zařízení a hodnoty primárního klíče pro zařízení brány IoT Edge. Použijete je později.

Registrace podřízeného zařízení v IoT Central:

  1. V aplikaci IoT Central přejděte na stránku Zařízení .

  2. Nevybírejte šablonu zařízení. Vyberte + Nové. Jako název zařízení zadejte podřízený 01, jako ID zařízení zadejte podřízený-01, ujistěte se, že je šablona zařízení nepřiřazená a není vybraná jako Simulovat toto zařízení? Vyberte Vytvořit.

  3. V seznamu zařízení klikněte na podřízené zařízení 01 a pak vyberte Spravovat zařízení > Připojit k bráně.

  4. V dialogovém okně Připojit k bráně vyberte šablonu zařízení zařízení brány IoT Edge a instanci zařízení zařízení brány IoT Edge. Vyberte možnost Připojit.

  5. Na zařízení podřízeného 01 vyberte Připojení.

  6. Poznamenejte si rozsah ID, ID zařízení a hodnoty primárního klíče pro podřízené zařízení 01. Použijete je později.

Nasazení brány a podřízených zařízení

Pro usnadnění používání tohoto článku se k provozování brány a podřízených zařízení používají virtuální počítače Azure. Pokud chcete vytvořit dva virtuální počítače Azure, vyberte tlačítko Nasadit do Azure zobrazené po následující tabulce. Pomocí informací v tabulce vyplňte formulář Vlastní nasazení :

Pole Hodnota
Skupina prostředků ingress-scenario
Brána předpony popisků DNS Jedinečný název DNS pro tento počítač, například <your name>edgegateway
Předpona popisku DNS – podřízená Jedinečný název DNS pro tento počítač, například <your name>downstream
ID Oboru Rozsah ID, který jste si poznamenali dříve
Brána IoT Edge ID zařízení gateway-01
Brána IoT Edge klíče zařízení Hodnota primárního klíče, kterou jste si poznamenali dříve
Typ ověřování Heslo
Heslo správce nebo klíč Vaše volba hesla pro účet AzureUser na obou virtuálních počítačích.

Tlačítko Nasadit do Azure

Vyberte Zkontrolovat a vytvořit a pak Vytvořit. Vytvoření virtuálních počítačů ve skupině prostředků scénáře příchozího přenosu dat trvá několik minut.

Pokud chcete zkontrolovat, jestli je zařízení brány IoT Edge správně spuštěné:

  1. Otevřete aplikaci IoT Central. Potom přejděte na zařízení brány IoT Edge v seznamu zařízení na stránce Zařízení .

  2. Vyberte kartu Moduly a zkontrolujte stav tří modulů. Spuštění modulu runtime IoT Edge na virtuálním počítači trvá několik minut. Když je virtuální počítač spuštěný, stav tří modulů je spuštěný. Pokud se modul runtime IoT Edge nespustí, přečtěte si téma Řešení potíží se zařízením IoT Edge.

Aby vaše zařízení IoT Edge fungovalo jako brána, potřebuje některé certifikáty k prokázání své identity pro všechna podřízená zařízení. Tento článek používá ukázkové certifikáty. V produkčním prostředí použijte certifikáty z vaší certifikační autority.

Pokud chcete vygenerovat ukázkové certifikáty a nainstalovat je do zařízení brány:

  1. Pomocí SSH se připojte k virtuálnímu počítači zařízení brány a přihlaste se k němu. Název DNS pro tento virtuální počítač najdete na webu Azure Portal. Přejděte na virtuální počítač edgegateway ve skupině prostředků scénáře příchozího přenosu dat.

    Tip

    Možná budete muset otevřít port 22 pro přístup přes SSH na obou virtuálních počítačích, abyste se mohli pomocí SSH připojit z místního počítače nebo z Azure Cloud Shellu.

  2. Spuštěním následujících příkazů naklonujte úložiště IoT Edge a vygenerujte ukázkové certifikáty:

    # Clone the repo
    cd ~
    git clone https://github.com/Azure/iotedge.git
    
    # Generate the demo certificates
    mkdir certs
    cd certs
    cp ~/iotedge/tools/CACertificates/*.cnf .
    cp ~/iotedge/tools/CACertificates/certGen.sh .
    ./certGen.sh create_root_and_intermediate
    ./certGen.sh create_edge_device_ca_certificate "mycacert"
    

    Po spuštění předchozích příkazů jsou následující soubory připravené k použití v dalších krocích:

    • ~/certs/certs/azure-iot-test-only.root.ca.cert.pem – kořenový certifikát certifikační autority použitý k vytvoření všech ostatních ukázkových certifikátů pro testování scénáře IoT Edge.
    • ~/certs/certs/iot-edge-device-mycacert-full-chain.cert.pem – Certifikát certifikační autority zařízení, na který odkazuje soubor config.yaml . Ve scénáři brány tento certifikát certifikační autority označuje způsob, jakým zařízení IoT Edge ověřuje svou identitu na podřízená zařízení.
    • ~/certs/private/iot-edge-device-mycacert.key.pem – privátní klíč přidružený k certifikátu certifikační autority zařízení.

    Další informace o těchto ukázkových certifikátech najdete v tématu Vytvoření ukázkových certifikátů pro testování funkcí zařízení IoT Edge.

  3. Otevřete soubor config.toml v textovém editoru. Příklad:

    sudo nano /etc/aziot/config.toml
    
  4. Zrušte komentář a upravte nastavení certifikátu následujícím způsobem:

    trust_bundle_cert = "file:///home/AzureUser/certs/certs/azure-iot-test-only.root.ca.cert.pem"
    
    ...
    
    [edge_ca]
    cert = "file:///home/AzureUser/certs/certs/iot-edge-device-ca-mycacert-full-chain.cert.pem"
    pk = "file:///home/AzureUser/certs/private/iot-edge-device-ca-mycacert.key.pem"
    

    Předchozí příklad předpokládá, že jste přihlášení jako AzureUser a vytvořili certifikační autoritu zařízení s názvem "mycacert".

  5. Uložte změny a spuštěním následujícího příkazu ověřte správnost souboru config.toml :

    sudo iotedge check
    
  6. Restartujte modul runtime IoT Edge:

    sudo iotedge config apply
    

Pokud se modul runtime IoT Edge po provedení změn úspěšně spustí, změní se stav $edgeAgent a $edgeHub modulů na Spuštěno. Tyto stavové hodnoty můžete zobrazit na stránce Moduly pro vaše zařízení brány v IoT Central.

Pokud se modul runtime nespustí, zkontrolujte změny provedené v souboru config.toml a přečtěte si téma Řešení potíží se zařízením IoT Edge.

Připojení podřízené zařízení do zařízení IoT Edge

Připojení podřízeného zařízení k zařízení brány IoT Edge:

  1. Pomocí SSH se připojte k virtuálnímu počítači podřízených zařízení a přihlaste se k němu. Název DNS pro tento virtuální počítač najdete na webu Azure Portal. Ve skupině prostředků ingress-scenario přejděte na virtuální počítač leafdevice.

    Tip

    Možná budete muset otevřít port 22 pro přístup přes SSH na obou virtuálních počítačích, abyste se mohli pomocí SSH připojit z místního počítače nebo z Azure Cloud Shellu.

  2. Pokud chcete naklonovat úložiště GitHub se zdrojovým kódem pro ukázkové podřízené zařízení, spusťte následující příkaz:

    cd ~
    git clone https://github.com/iot-for-all/iot-central-transform-with-iot-edge
    
  3. Pokud chcete zkopírovat požadovaný certifikát ze zařízení brány, spusťte následující scp příkazy. Tento scp příkaz používá název edgegateway hostitele k identifikaci virtuálního počítače brány. Zobrazí se výzva k zadání hesla:

    cd ~/iot-central-transform-with-iot-edge
    scp AzureUser@edgegateway:/home/AzureUser/certs/certs/azure-iot-test-only.root.ca.cert.pem leafdevice/certs
    
  4. Přejděte do složky leafdevice a nainstalujte požadované balíčky. Potom spusťte skripty build a start zřiďte a připojte zařízení k bráně:

    cd ~/iot-central-transform-with-iot-edge/leafdevice
    sudo apt update
    curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
    sudo apt-get install nodejs
    npm install
    npm run-script build
    npm run-script start
    

    Během sudo apt-get install nodejs příkazů můžete být požádáni o povolení instalací: po zobrazení výzvy stiskněte Y .

  5. Zadejte ID zařízení, ID oboru a klíč SAS pro podřízené zařízení, které jste vytvořili dříve. Jako název hostitele zadejte edgegateway. Výstup příkazu vypadá takto:

    Registering device downstream-01 with scope 0ne00284FD9
    Registered device downstream-01.
    Connecting device downstream-01
    Connected device downstream-01
    Sent telemetry for device downstream-01
    Sent telemetry for device downstream-01
    Sent telemetry for device downstream-01
    Sent telemetry for device downstream-01
    Sent telemetry for device downstream-01
    Sent telemetry for device downstream-01
    

Kvůli jednoduchosti kód podřízeného zařízení zřídí zařízení v IoT Central. Podřízená zařízení se obvykle připojují přes bránu, protože se nemůžou připojit k internetu, takže se nemůžou připojit ke koncovému bodu služby Device Provisioning. Další informace najdete v tématu Jak připojit zařízení prostřednictvím transparentní brány IoT Edge.

Ověření

Pokud chcete ověřit, že scénář běží, přejděte do zařízení brány IoT Edge v IoT Central:

Snímek obrazovky znázorňující transformovaná data na stránce zařízení

  • Vyberte moduly. Ověřte, že jsou spuštěné tři moduly IoT Edge $edgeAgent, $edgeHub a transformmodule .

  • Vyberte Nezpracovaná data. Telemetrická data ve sloupci Zařízení vypadají takto:

    {"deviceId":"downstream-01"}
    

    Telemetrická data ve sloupci Měření vypadají takto:

    {"temperature":85.21208,"pressure":59.97321,"humidity":77.718124,"scale":"farenheit"}
    

Teplota je odeslána v Fahrenheita. Vzhledem k tomu, že zařízení IoT Edge transformuje data z podřízeného zařízení, je telemetrie přidružená k zařízení brány v IoT Central. Pokud chcete vizualizovat transformovanou telemetrii, vytvořte zobrazení v šabloně zařízení brány IoT Edge a znovu ji publikujte.

Transformace dat při výchozích přenosech dat

Svá zařízení můžete připojit ke službě IoT Central, exportovat data zařízení do výpočetního modulu, aby je transformoval, a pak transformovaná data odeslat zpět do IoT Central pro správu a analýzu zařízení. Příklad:

  • Vaše zařízení odesílají data o poloze do IoT Central.
  • IoT Central exportuje data do výpočetního modulu, který vylepšuje data o poloze informacemi o počasí.
  • Výpočetní modul odesílá rozšířená data zpět do IoT Central.

Most zařízení IoT Central můžete použít jako výpočetní modul k transformaci dat exportovaných z IoT Central.

Výhodou transformace dat při výchozím přenosu dat je, že se vaše zařízení připojují přímo ke službě IoT Central, což usnadňuje odesílání příkazů do zařízení nebo aktualizaci vlastností zařízení. S touto metodou ale můžete použít více zpráv než měsíční přidělení a zvýšit náklady na používání Azure IoT Central.

Použití mostu zařízení IoT Central k transformaci dat zařízení

Transformace dat u výchozího přenosu dat pomocí IoT Edge

V tomto scénáři výpočetní modul transformuje data zařízení exportovaná ze služby IoT Central před jejich odesláním zpět do aplikace IoT Central. Na vysoké úrovni jsou kroky konfigurace tohoto scénáře následující:

  1. Nastavení výpočetního modulu: Vytvořte most zařízení IoT Central, který bude fungovat jako výpočetní modul pro transformaci dat.

  2. Transformace dat zařízení v mostě zařízení: Transformujte data v mostě zařízení úpravou kódu funkce mostu zařízení pro případ použití transformace dat.

  3. Povolení toku dat z IoT Central do mostu zařízení: Exportuje data z IoT Central do mostu zařízení pro transformaci. Pak přeposlejte transformovaná data zpět do IoT Central. Při vytváření exportu dat použijte filtry vlastností zprávy k exportu pouze nepřetransformovaných dat.

  4. Ověření: Připojení zařízení do aplikace IoT Central a zkontrolujte nezpracovaná data zařízení a transformovaná data v IoT Central.

V příkladu popsaném v následujících částech zařízení odesílá data CSV v následujícím formátu do zařízení brány IoT Edge:

"<temperature in degrees C>, <humidity>, <latitude>, <longitude>"

Pomocí mostu zařízení můžete transformovat data zařízení pomocí následujících:

  • Změna jednotky teploty z centigradu na fahrenheit.
  • Obohacení dat zařízení o data o počasí vytažená ze služby Open Weather pro hodnoty zeměpisné šířky a délky.

Most zařízení pak odešle transformovaná data do IoT Central v následujícím formátu:

{
  "temp": <temperature in degrees F>,
  "humidity": <humidity>,
  "lat": <latitude>,
  "lon": <logitude>,
  "weather": {
    "weather_temp": <temperature at lat/lon>,
    "weather_humidity": <humidity at lat/lon>,
    "weather_pressure": <pressure at lat/lon>,
    "weather_windspeed": <wind speed at lat/lon>,
    "weather_clouds": <cloud cover at lat/lon>,
    "weather_uvi": <UVI at lat/lon>
  }
}

Následující kroky ukazují, jak nastavit a nakonfigurovat tento scénář:

Načtení nastavení připojení IoT Central

Před nastavením tohoto scénáře potřebujete získat některá nastavení připojení z aplikace IoT Central:

  1. Přihlaste se k aplikaci IoT Central.

  2. Přejděte do skupin připojení zařízení oprávnění>.

  3. Poznamenejte si obor ID. Tuto hodnotu použijete později.

  4. Vyberte skupinu registrací SaS-IoT-Devices. Poznamenejte si primární klíč sdíleného přístupového podpisu. Tuto hodnotu použijete později.

Nastavení výpočetního modulu

Tento scénář používá stejné nasazení Azure Functions jako most zařízení IoT Central. Pokud chcete nasadit most zařízení, vyberte tlačítko Nasadit do Azure zobrazené po následující tabulce. Pomocí informací v tabulce vyplňte formulář Vlastní nasazení :

Pole Hodnota
Skupina prostředků Vytvoření nové skupiny prostředků s názvem egress-scenario
Oblast Vyberte oblast, která je k vám nejblíže.
ID Oboru Použijte obor ID, který jste si předtím poznamenali.
Klíč SAS ioT Central Pro skupinu registrací SaS-IoT-Devices použijte primární přístupový klíč sdíleného přístupového podpisu. Tuto hodnotu jste si předtím poznamenali.

Nasazení do Azure.

Vyberte Zkontrolovat a vytvořit a pak Vytvořit. Vytvoření funkce Azure a souvisejících prostředků ve skupině prostředků výchozího scénáře trvá několik minut.

Transformace dat zařízení v mostu zařízení

Konfigurace mostu zařízení pro transformaci exportovaných dat zařízení:

  1. Získejte klíč rozhraní API aplikace ze služby Open Weather. Účet je bezplatný s omezeným využitím služby. Pokud chcete vytvořit klíč rozhraní API aplikace, vytvořte účet na portálu služby Open Weather a postupujte podle pokynů. Klíč rozhraní Open Weather API použijete později.

  2. Na webu Azure Portal přejděte do aplikace funkcí ve skupině prostředků výchozího scénáře přenosu dat.

  3. V levém navigačním panelu ve vývojových nástrojích vyberte Editor služby App Service (Preview).

  4. Výběrem možnosti Přejít → otevřete stránku Editor služby App Service. Proveďte následující změny:

    1. Otevřete soubor wwwroot/IoTCIntegration/index.js. Nahraďte veškerý kód v tomto souboru kódem v index.js.

    2. V novém index.js aktualizujte openWeatherAppId soubor proměnné pomocí klíče rozhraní Open Weather API, který jste získali dříve.

      const openWeatherAppId = '<Your Open Weather API Key>'
      
    3. Přidejte do dat odesílaných funkcí do IoT Central vlastnost zprávy. IoT Central tuto vlastnost používá k zabránění exportu transformovaných dat. Pokud chcete tuto změnu provést, otevřete soubor wwwroot/IoTCIntegration/lib/engine.js . Vyhledejte následující kód:

      if (timestamp) {
        message.properties.add('iothub-creation-time-utc', timestamp);
      }
      

      Přidejte následující kód těsně za kód v předchozím fragmentu kódu:

      // add a message property that we can look for in data export to not re-compute computed telemetry
      message.properties.add('computed', true);
      

      Pro referenci můžete zobrazit dokončený příklad souboru engine.js .

  5. V Editoru služby App Service vyberte konzolu v levém navigačním panelu. Spuštěním následujících příkazů nainstalujte požadované balíčky:

    cd IoTCIntegration
    npm install
    

    Spuštění tohoto příkazu může trvat několik minut.

  6. Vraťte se na stránku Přehled funkce Azure a restartujte funkci:

    Restartujte funkci.

  7. V levém navigačním panelu vyberte Funkce . Pak vyberte IoTCIntegration. Vyberte kód + test.

  8. Poznamenejte si adresu URL funkce. Tuto hodnotu budete potřebovat později:

    Získání adresy URL funkce

Povolení toku dat z IoT Central do mostu zařízení

Tato část popisuje, jak nastavit aplikaci Azure IoT Central.

Nejprve uložte soubor modelu zařízení do místního počítače.

Pokud chcete do aplikace IoT Central přidat šablonu zařízení, přejděte do aplikace IoT Central a pak:

  1. Přihlaste se k aplikaci IoT Central a přejděte na stránku Šablony zařízení.

  2. Vyberte + Nový, vyberte Zařízení IoT, vyberte Další: Přizpůsobit, jako název šablony zadejte výpočetní model . Vyberte Další: Zkontrolovat. Pak vyberte Vytvořit.

  3. Vyberte Importovat model a přejděte do souboru model.json , který jste si stáhli dříve.

  4. Po importu modelu vyberte Publikovat a publikujte šablonu zařízení s výpočetním modelem .

Nastavte export dat pro odesílání dat do mostu zařízení:

  1. V aplikaci IoT Central vyberte Export dat.

  2. Vyberte + Nový cíl a vytvořte cíl, který se má použít s mostem zařízení. Volání cílové výpočetní funkce pro typ cíle vyberte Webhook. Jako adresu URL zpětného volání vyberte vložit adresu URL funkce, kterou jste si předtím poznamenali. Autorizaci ponechte bez ověřování.

  3. Uložte změny.

  4. Vyberte + Nový export a vytvořte export dat s názvem Výpočetní export.

  5. Přidejte filtr, který exportuje jenom data zařízení pro šablonu zařízení, kterou používáte. Vyberte + Filtr, vyberte položku Šablona zařízení, vyberte operátor Rovná se a vyberte šablonu zařízení modelu compute , kterou jste vytvořili.

  6. Přidejte filtr zpráv, který umožňuje rozlišovat mezi transformovanými a nepřetvářenými daty. Tento filtr zabraňuje odesílání transformovaných hodnot zpět do mostu zařízení. Vyberte filtr vlastností + Zpráva a zadejte vypočítanou hodnotu názvu a pak vyberte operátor Neexistuje. Řetězec computed se používá jako klíčové slovo v ukázkovém kódu mostu zařízení.

  7. Jako cíl vyberte cíl výpočetní funkce , kterou jste vytvořili dříve.

  8. Uložte změny. Po minutě nebo tak se stav exportu zobrazí jako V pořádku.

Ověření

Ukázkové zařízení, které použijete k otestování scénáře, je napsané v Node.js. Ujistěte se, že máte na místním počítači nainstalovaný Node.js a npm. Pokud tyto požadavky nechcete nainstalovat, použijte Azure Cloud Shell , kde jsou předinstalované.

Spuštění ukázkového zařízení, které testuje scénář:

  1. Naklonujte úložiště GitHub, které obsahuje ukázkový kód, spusťte následující příkaz:

    git clone https://github.com/Azure/iot-central-compute
    
  2. Pokud chcete ukázkové zařízení připojit k aplikaci IoT Central, upravte nastavení připojení v souboru iot-central-compute/device/device.js . Nahraďte ID oboru a klíč SAS skupiny hodnotami, které jste si poznamenali dříve:

    // These values need to be filled in from your Azure IoT Central application
    //
    const scopeId = "<IoT Central Scope Id value>";
    const groupSasKey = "<IoT Central Group SAS key>";
    //
    

    Uložte změny.

  3. Pomocí následujících příkazů nainstalujte požadované balíčky a spusťte zařízení:

    cd ~/iot-central-compute/device
    npm install
    node device.js
    
  4. Výsledek tohoto příkazu vypadá jako následující výstup:

    registration succeeded
    assigned hub=iotc-2bd611b0....azure-devices.net
    deviceId=computeDevice
    Client connected
    send status: MessageEnqueued [{"data":"33.23, 69.09, 30.7213, -61.1192"}]
    send status: MessageEnqueued [{"data":"2.43, 75.86, -2.6358, 162.935"}]
    send status: MessageEnqueued [{"data":"6.19, 76.55, -14.3538, -82.314"}]
    send status: MessageEnqueued [{"data":"33.26, 48.01, 71.9172, 48.6606"}]
    send status: MessageEnqueued [{"data":"40.5, 36.41, 14.6043, 14.079"}]
    
  5. V aplikaci IoT Central přejděte na zařízení s názvem computeDevice. V zobrazení nezpracovaných dat existují dva různé streamy telemetrie, které se zobrazují přibližně každých pět sekund. Stream s nemodelovanými daty je původní telemetrie, stream s modelovanými daty jsou data, která funkce transformovala:

    Snímek obrazovky znázorňující původní a transformovaná nezpracovaná data

Vyčištění prostředků

Pokud už nepotřebujete prostředky Azure, které jste vytvořili, a postupujte podle kroků v této příručce, odstraňte skupiny prostředků na webu Azure Portal.

Dvě skupiny prostředků, které jste použili v tomto průvodci, jsou scénářem příchozího přenosu dat a scénářem výchozího přenosu dat.

Další kroky

V tomto článku jste se seznámili s různými možnostmi transformace dat zařízení pro IoT Central, a to jak při příchozím přenosu dat, tak při výchozím přenosu dat. Článek obsahuje návody pro dva konkrétní scénáře:

  • Před odesláním dat do aplikace IoT Central použijte modul IoT Edge k transformaci dat z podřízených zařízení.
  • Azure Functions slouží k transformaci dat mimo IoT Central. V tomto scénáři ioT Central používá export dat k odesílání příchozích dat do funkce Azure, která se má transformovat. Funkce odešle transformovaná data zpět do aplikace IoT Central.

Teď, když jste se naučili transformovat data zařízení mimo aplikaci Azure IoT Central, se dozvíte , jak pomocí Průzkumníka dat analyzovat data zařízení v IoT Central.