Delen via


Gegevens extern transformeren voor IoT Central

IoT-apparaten verzenden gegevens in verschillende indelingen. Als u de apparaatgegevens wilt gebruiken met uw IoT Central-toepassing, moet u mogelijk een transformatie gebruiken om het volgende te doen:

  • Maak de indeling van de gegevens die compatibel zijn met uw IoT Central-toepassing.
  • Eenheden converteren.
  • Nieuwe metrische gegevens berekenen.
  • Verrijk de gegevens uit andere bronnen.

In dit artikel leest u hoe u apparaatgegevens buiten IoT Central kunt transformeren, hetzij bij inkomend of uitgaand verkeer.

In het volgende diagram ziet u drie routes voor gegevens die transformaties bevatten:

Samenvatting van gegevenstransformatie routeert zowel inkomend als uitgaand verkeer

In de volgende tabel ziet u drie voorbeeldtransformatietypen:

Transformatie Beschrijving Voorbeeld Opmerkingen
Berichtindeling Converteer of bewerk JSON-berichten. CSV naar JSON Bij inkomend verkeer. IoT Central accepteert alleen waarde-JSON-berichten. Zie Voor meer informatie telemetrie, eigenschap en opdracht nettoladingen.
Berekeningen Wiskundige functies die Door Azure Functions kunnen worden uitgevoerd. Eenheidsconversie van Fahrenheit naar Celsius. Transformeer met behulp van het uitgaande patroon om te profiteren van schaalbare apparaatinkomende apparaten via directe verbinding met IoT Central. Door de gegevens te transformeren, kunt u IoT Central-functies gebruiken, zoals visualisaties en taken.
Berichtverrijking Verrijkingen van externe gegevensbronnen zijn niet gevonden in apparaateigenschappen of telemetrie. Zie IoT-gegevens exporteren naar cloudbestemmingen met behulp van Blob Storage voor meer informatie over interne verrijkingen. Weerinformatie toevoegen aan berichten met behulp van locatiegegevens van apparaten. Transformeer met behulp van het uitgaande patroon om te profiteren van schaalbare apparaatinkomende apparaten via directe verbinding met IoT Central.

Vereisten

Als u de stappen in deze handleiding wilt voltooien, hebt u het volgende nodig:

Gegevenstransformatie bij inkomend verkeer

Als u apparaatgegevens bij inkomend verkeer wilt transformeren, zijn er twee opties:

  • IoT Edge: Gebruik een IoT Edge-module om gegevens van downstreamapparaten te transformeren voordat u de gegevens naar uw IoT Central-toepassing verzendt.

  • IoT Central-apparaatbrug: de IoT Central-apparaatbrug verbindt andere IoT-apparaatclouds, zoals Sigfox, Deeltje en The Things Network, met IoT Central. De apparaatbrug maakt gebruik van een Azure-functie om de gegevens door te sturen en u kunt de functie aanpassen om de apparaatgegevens te transformeren.

IoT Edge gebruiken om apparaatgegevens te transformeren

Gegevenstransformatie voor inkomend verkeer met IoT Edge

In dit scenario transformeert een IoT Edge-module de gegevens van downstreamapparaten voordat deze naar uw IoT Central-toepassing worden doorgestuurd. Op hoog niveau zijn de stappen voor het configureren van dit scenario:

  1. Een IoT Edge-apparaat instellen: Een IoT Edge-apparaat installeren en inrichten als gateway en de gateway verbinden met uw IoT Central-toepassing.

  2. Verbinding maken downstreamapparaat naar het IoT Edge-apparaat: Verbinding maken downstreamapparaten naar het IoT Edge-apparaat en richt deze in voor uw IoT Central-toepassing.

  3. Apparaatgegevens transformeren in IoT Edge: een IoT Edge-module maken om de gegevens te transformeren. Implementeer de module op het IoT Edge-gatewayapparaat waarmee de getransformeerde apparaatgegevens worden doorgestuurd naar uw IoT Central-toepassing.

  4. Controleer: Verzend gegevens van een downstreamapparaat naar de gateway en controleer of de getransformeerde apparaatgegevens uw IoT Central-toepassing bereiken.

In het voorbeeld dat in de volgende secties wordt beschreven, verzendt het downstreamapparaat JSON-gegevens in de volgende indeling naar het IoT Edge-gatewayapparaat:

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

U gebruikt een IoT Edge-module om de gegevens te transformeren en de temperatuurwaarde van Celsius daaruit Fahrenheit te converteren voordat u deze naar IoT Central verzendt:

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

Code zoeken

In de volgende stappen ziet u hoe u dit scenario instelt en configureert:

De aangepaste module bouwen

In dit scenario voert het IoT Edge-apparaat een aangepaste module uit waarmee de gegevens van het downstreamapparaat worden getransformeerd. Voordat u het IoT Edge-apparaat implementeert en configureert, moet u het volgende doen:

  • Bouw de aangepaste module.
  • Voeg de aangepaste module toe aan een containerregister.

De IoT Edge-runtime downloadt aangepaste modules uit een containerregister, zoals een Azure-containerregister of Docker Hub. De Azure Cloud Shell beschikt over alle hulpprogramma's die u nodig hebt om een containerregister te maken, de module te bouwen en de module te uploaden naar het register:

Een containerregister maken:

  1. Open De Azure Cloud Shell en meld u aan bij uw Azure-abonnement.

  2. Selecteer de Bash-shell .

  3. Voer de volgende opdrachten uit om een Azure-containerregister te maken:

    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
    

    Noteer de waarden en password noteer de username waarden. U gebruikt ze later. U hebt slechts een van de wachtwoorden nodig die worden weergegeven in de opdrachtuitvoer.

De aangepaste module bouwen in Azure Cloud Shell:

  1. Kloon in Azure Cloud Shell de GitHub-opslagplaats die de broncode van de module bevat:

    git clone https://github.com/iot-for-all/iot-central-transform-with-iot-edge
    
  2. Voer de volgende opdrachten uit in De Azure Cloud Shell om de aangepaste module te bouwen:

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

    Het uitvoeren van de vorige opdrachten kan enkele minuten duren.

Een IoT Edge-apparaat instellen

In dit scenario wordt een IoT Edge-gatewayapparaat gebruikt om de gegevens van downstreamapparaten te transformeren. In deze sectie wordt beschreven hoe u een IoT Central-apparaatsjabloon maakt voor het gatewayapparaat in uw IoT Central-toepassing. IoT Edge-apparaten gebruiken een implementatiemanifest om hun modules te configureren.

In dit voorbeeld heeft het downstreamapparaat geen apparaatsjabloon nodig. Het downstreamapparaat is geregistreerd in IoT Central, zodat u de referenties kunt genereren die nodig zijn om het IoT Edge-apparaat te verbinden. Omdat de IoT Edge-module de gegevens transformeert, komt alle telemetrie van het downstreamapparaat binnen in IoT Central alsof het IoT Edge-apparaat het heeft verzonden.

Een apparaatsjabloon maken voor het IoT Edge-gatewayapparaat:

  1. Sla een kopie van het implementatiemanifest op uw lokale ontwikkelcomputer op: moduledeployment.json.

  2. Open uw lokale kopie van het moduledeployment.json manifestbestand in een teksteditor.

  3. Zoek de registryCredentials sectie en vervang de tijdelijke aanduidingen door de waarden die u hebt genoteerd toen u het Azure-containerregister maakte. De address waarde ziet er als {your username}.azurecr.iovolgt uit.

  4. Zoek de settings sectie voor de transformmodule. Vervang door {your username} dezelfde waarde die u in de vorige stap hebt gebruikt. De wijzigingen opslaan.

  5. Navigeer in uw IoT Central-toepassing naar de pagina Edge-manifesten .

  6. Selecteer + Nieuw. Voer een naam in, zoals Transformer voor uw implementatiemanifest, en upload vervolgens het moduledeployment.json bestand dat u eerder hebt gedownload. Het implementatiemanifest bevat een aangepaste module met de naam transformmodule.

  7. Selecteer Volgende en vervolgens Maken.

  8. Navigeer in uw IoT Central-toepassing naar de pagina Apparaatsjablonen .

  9. Selecteer + Nieuw, selecteer Azure IoT Edge en selecteer vervolgens Volgende: Aanpassen.

  10. Voer het IoT Edge-gatewayapparaat in als de naam van de apparaatsjabloon. Selecteer Dit is een gatewayapparaat.

  11. Selecteer Volgende: Controleren en selecteer vervolgens Maken.

  12. Selecteer Aangepast model op de pagina Een model maken.

  13. Selecteer Modules in het model en importeer vervolgens modules uit het manifest. Selecteer het implementatiemanifest van de transformatiefunctie en selecteer vervolgens Importeren.

Het implementatiemanifest geeft niet de telemetrie op die door de module wordt verzonden. Om de telemetrie-definities toe te voegen aan de sjabloon voor het apparaat:

  1. Selecteer Module transformmodule in de sectie Modules van de ioT Edge-gatewayapparaatsjabloon .

  2. Selecteer Mogelijkheid toevoegen en gebruik de informatie in de volgende tabellen om een nieuw telemetrietype toe te voegen:

    Instelling Weergegeven als
    Display name Apparaat
    Naam apparaat
    Type mogelijkheid Telemetrie
    Semantisch type Geen
    Schema Object

    Objectdefinitie:

    Weergavenaam Naam Schema
    Apparaat-ID deviceId String

    Sla uw wijzigingen op.

  3. Selecteer Mogelijkheid toevoegen en gebruik de informatie in de volgende tabellen om een nieuw telemetrietype toe te voegen:

    Instelling Weergegeven als
    Display name Measurements
    Naam Metingen
    Type mogelijkheid Telemetrie
    Semantisch type Geen
    Schema Object

    Objectdefinitie:

    Weergavenaam Naam Schema
    Temperatuur temperatuur Dubbel
    Druk druk Dubbel
    Vochtigheid vochtigheid Dubbel
    Schalen scale String

    Sla uw wijzigingen op.

  4. Selecteer Relaties in het model. Selecteer geen relaties in de transformmodule .

  5. Selecteer Relatie toevoegen.

  6. Voer downstreamsensor in als de weergavenaam, sensor als de naam en selecteer Any als het doel. Selecteer Opslaan.

  7. Selecteer Publiceren om de apparaatsjabloon te publiceren.

Een gatewayapparaat registreren in IoT Central:

  1. Navigeer in uw IoT Central-toepassing naar de pagina Apparaten .

  2. Selecteer een IoT Edge-gatewayapparaat en selecteer + Nieuw. Voer het IoT Edge-gatewayapparaat in als de apparaatnaam, voer gateway-01 in als apparaat-id, zorg ervoor dat het IoT Edge-gatewayapparaat is geselecteerd als de apparaatsjabloon en Nee is geselecteerd als Dit apparaat simuleren?. Selecteer Transformer als het randmanifest. Selecteer Maken.

  3. Klik in de lijst met apparaten op het IoT Edge-gatewayapparaat en selecteer vervolgens Verbinding maken.

  4. Noteer de waarden voor het id-bereik, de apparaat-id en de primaire sleutel voor het IoT Edge-gatewayapparaat. U gebruikt ze later.

Een downstreamapparaat registreren in IoT Central:

  1. Navigeer in uw IoT Central-toepassing naar de pagina Apparaten .

  2. Selecteer geen apparaatsjabloon. Selecteer + Nieuw. Voer downstream 01 in als de apparaatnaam, voer downstream-01 in als de apparaat-id, zorg ervoor dat de apparaatsjabloon niet is toegewezen en Nee is geselecteerd als Dit apparaat simuleren?. Selecteer Maken.

  3. Klik in de lijst met apparaten op het downstream 01-apparaat en selecteer > Apparaat koppelen aan gateway beheren.

  4. Selecteer in het dialoogvenster Koppelen aan een gateway de apparaatsjabloon voor het IoT Edge-gatewayapparaat en het apparaatexemplaren van het IoT Edge-gatewayapparaat . Selecteer Vastmaken.

  5. Selecteer op het downstream 01-apparaat Verbinding maken.

  6. Noteer de waarden voor het id-bereik, de apparaat-id en de primaire sleutel voor het downstream 01-apparaat. U gebruikt ze later.

De gateway en downstreamapparaten implementeren

Voor het gemak gebruikt dit artikel virtuele Azure-machines om de gateway en downstreamapparaten uit te voeren. Als u de twee virtuele Azure-machines wilt maken, selecteert u de knop Implementeren in Azure die wordt weergegeven na de volgende tabel. Gebruik de informatie in de tabel om het formulier Aangepaste implementatie te voltooien:

Veld Waarde
Resourcegroep ingress-scenario
DNS-labelvoorvoegselgateway Een unieke DNS-naam voor deze computer, zoals <your name>edgegateway
Dns-labelvoorvoegsel downstream Een unieke DNS-naam voor deze computer, zoals <your name>downstream
Bereik-id Het id-bereik dat u eerder hebt genoteerd
IoT Edge-gateway voor apparaat-id gateway-01
IoT Edge-gateway voor apparaatsleutel De primaire sleutelwaarde die u eerder hebt genoteerd
Verificatietype Wachtwoord
Beheerderswachtwoord of sleutel Uw keuze voor het wachtwoord voor het AzureUser-account op beide virtuele machines.

De knop Implementeren in Azure

Selecteer Controleren en maken en vervolgens Maken. Het duurt enkele minuten om de virtuele machines in de resourcegroep voor inkomend verkeer te maken.

Ga als volgt te werk om te controleren of het IoT Edge-gatewayapparaat correct wordt uitgevoerd:

  1. Open uw IoT Central-toepassing. Navigeer vervolgens naar het IoT Edge Gateway-apparaat in de lijst met apparaten op de pagina Apparaten .

  2. Selecteer het tabblad Modules en controleer de status van de drie modules. Het duurt enkele minuten voordat de IoT Edge-runtime is opgestart op de virtuele machine. Wanneer de virtuele machine wordt uitgevoerd, wordt de status van de drie modules uitgevoerd. Als de IoT Edge-runtime niet wordt gestart, raadpleegt u Problemen met uw IoT Edge-apparaat oplossen.

Om uw IoT Edge-apparaat als gateway te laten functioneren, heeft het enkele certificaten nodig om de identiteit te bewijzen aan downstreamapparaten. In dit artikel worden democertificaten gebruikt. Gebruik in een productieomgeving certificaten van uw certificeringsinstantie.

De democertificaten genereren en installeren op uw gatewayapparaat:

  1. Gebruik SSH om verbinding te maken met en u aan te melden op de virtuele machine van uw gatewayapparaat. U vindt de DNS-naam voor deze virtuele machine in Azure Portal. Navigeer naar de virtuele edgegateway-machine in de resourcegroep voor inkomend verkeer .

    Tip

    Mogelijk moet u poort 22 openen voor SSH-toegang op beide virtuele machines voordat u SSH kunt gebruiken om verbinding te maken vanaf uw lokale computer of de Azure Cloud Shell.

  2. Voer de volgende opdrachten uit om de IoT Edge-opslagplaats te klonen en uw democertificaten te genereren:

    # 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"
    

    Nadat u de vorige opdrachten hebt uitgevoerd, zijn de volgende bestanden klaar voor gebruik in de volgende stappen:

    • ~/certs/certs/azure-iot-test-only.root.ca.cert.pem : het basis-CA-certificaat dat wordt gebruikt om alle andere democertificaten te maken voor het testen van een IoT Edge-scenario.
    • ~/certs/certs/iot-edge-device-mycacert-full-chain.cert.pem : een ca-certificaat voor apparaten waarnaar wordt verwezen vanuit het bestand config.yaml . In een gatewayscenario controleert dit CA-certificaat hoe het IoT Edge-apparaat de identiteit controleert op downstreamapparaten.
    • ~/certs/private/iot-edge-device-mycacert.key.pem : de persoonlijke sleutel die is gekoppeld aan het CA-certificaat van het apparaat.

    Zie Democertificaten maken om ioT Edge-apparaatfuncties te testen voor meer informatie over deze democertificaten.

  3. Open het bestand config.toml in een teksteditor. Voorbeeld:

    sudo nano /etc/aziot/config.toml
    
  4. Verwijder opmerkingen en wijzig de certificaatinstellingen als volgt:

    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"
    

    In het vorige voorbeeld wordt ervan uitgegaan dat u bent aangemeld als AzureUser en een apparaat-CA-certificaat hebt gemaakt met de naam 'mycacert'.

  5. Sla de wijzigingen op en voer de volgende opdracht uit om te controleren of het bestand config.toml juist is:

    sudo iotedge check
    
  6. Start de IoT Edge-runtime opnieuw:

    sudo iotedge config apply
    

Als de IoT Edge-runtime wordt gestart nadat uw wijzigingen zijn gewijzigd, verandert de status van de $edgeAgent en $edgeHub modules in Actief. U kunt deze statuswaarden zien op de pagina Modules voor uw gatewayapparaat in IoT Central.

Als de runtime niet wordt gestart, controleert u de wijzigingen die u hebt aangebracht in config.toml en raadpleegt u Problemen met uw IoT Edge-apparaat oplossen.

Verbinding maken downstreamapparaat naar Een IoT Edge-apparaat

Een downstreamapparaat verbinden met het IoT Edge-gatewayapparaat:

  1. Gebruik SSH om verbinding te maken met en u aan te melden op de virtuele machine van uw downstreamapparaat. U vindt de DNS-naam voor deze virtuele machine in Azure Portal. Navigeer naar de virtuele machine leafdevice in de resourcegroep voor inkomend verkeer .

    Tip

    Mogelijk moet u poort 22 openen voor SSH-toegang op beide virtuele machines voordat u SSH kunt gebruiken om verbinding te maken vanaf uw lokale computer of de Azure Cloud Shell.

  2. Voer de volgende opdracht uit om de GitHub-opslagplaats te klonen met de broncode voor het downstream-voorbeeldapparaat:

    cd ~
    git clone https://github.com/iot-for-all/iot-central-transform-with-iot-edge
    
  3. Voer de volgende scp opdrachten uit om het vereiste certificaat van het gatewayapparaat te kopiëren. Met deze scp opdracht wordt de hostnaam edgegateway gebruikt om de virtuele gatewaymachine te identificeren. U wordt gevraagd om uw wachtwoord:

    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. Navigeer naar de map leafdevice en installeer de vereiste pakketten. Voer vervolgens de build en start scripts uit om het apparaat in te richten en te verbinden met de gateway:

    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
    

    Tijdens sudo apt-get install nodejs opdrachten kunt u worden gevraagd om installaties toe te staan: druk Y op de vraag of u hierom wordt gevraagd.

  5. Voer de apparaat-id, bereik-id en SAS-sleutel in voor het downstreamapparaat dat u eerder hebt gemaakt. Voer voor de hostnaam de naam in edgegateway. De uitvoer van de opdracht ziet er als volgt uit:

    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
    

Ter vereenvoudiging richt de code voor het downstreamapparaat het apparaat in IoT Central in. Downstreamapparaten maken doorgaans verbinding via een gateway omdat ze geen verbinding kunnen maken met internet en dus geen verbinding kunnen maken met het Device Provisioning Service-eindpunt. Zie Apparaten verbinden via een transparante IoT Edge-gateway voor meer informatie.

Verifiëren

Als u wilt controleren of het scenario wordt uitgevoerd, gaat u naar uw IoT Edge-gatewayapparaat in IoT Central:

Schermopname van getransformeerde gegevens op de pagina apparaten.

  • Modules selecteren. Controleer of de drie IoT Edge-modules $edgeAgent, $edgeHub en transformmodule worden uitgevoerd.

  • Selecteer Onbewerkte gegevens. De telemetriegegevens in de kolom Apparaat zien er als volgt uit:

    {"deviceId":"downstream-01"}
    

    De telemetriegegevens in de kolom Metingen zien er als volgt uit:

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

De temperatuur wordt verzonden in Fahrenheit. Omdat het IoT Edge-apparaat de gegevens van het downstreamapparaat transformeert, wordt de telemetrie gekoppeld aan het gatewayapparaat in IoT Central. Als u de getransformeerde telemetrie wilt visualiseren, maakt u een weergave in de ioT Edge-gatewayapparaatsjabloon en publiceert u deze opnieuw.

Gegevenstransformatie bij uitgaand verkeer

U kunt uw apparaten verbinden met IoT Central, de apparaatgegevens exporteren naar een rekenengine om deze te transformeren en de getransformeerde gegevens vervolgens terugsturen naar IoT Central voor apparaatbeheer en -analyse. Voorbeeld:

  • Uw apparaten verzenden locatiegegevens naar IoT Central.
  • IoT Central exporteert de gegevens naar een rekenengine die de locatiegegevens verbetert met weergegevens.
  • De berekeningsengine verzendt de verbeterde gegevens terug naar IoT Central.

U kunt de IoT Central-apparaatbrug gebruiken als rekenengine om gegevens te transformeren die zijn geëxporteerd uit IoT Central.

Een voordeel van het transformeren van gegevens bij uitgaand verkeer is dat uw apparaten rechtstreeks verbinding maken met IoT Central, waardoor u eenvoudig opdrachten naar apparaten kunt verzenden of apparaateigenschappen kunt bijwerken. Met deze methode kunt u echter meer berichten gebruiken dan uw maandelijkse toewijzing en de kosten voor het gebruik van Azure IoT Central verhogen.

De IoT Central-apparaatbrug gebruiken om apparaatgegevens te transformeren

Gegevenstransformatie voor uitgaand verkeer met IoT Edge

In dit scenario transformeert een rekenengine apparaatgegevens die zijn geëxporteerd uit IoT Central voordat deze worden teruggestuurd naar uw IoT Central-toepassing. Op hoog niveau zijn de stappen voor het configureren van dit scenario:

  1. De rekenengine instellen: Een IoT Central-apparaatbrug maken om te fungeren als een rekenengine voor gegevenstransformatie.

  2. Apparaatgegevens transformeren in de apparaatbrug: transformeer gegevens in de apparaatbrug door de functiecode van de apparaatbrug te wijzigen voor uw use-case voor gegevenstransformatie.

  3. Gegevensstroom van IoT Central naar de apparaatbrug inschakelen: exporteer de gegevens van IoT Central naar de apparaatbrug voor transformatie. Stuur vervolgens de getransformeerde gegevens terug naar IoT Central. Wanneer u de gegevensexport maakt, gebruikt u berichteigenschapsfilters om alleen niet-vertaalde gegevens te exporteren.

  4. Controleer: Verbinding maken uw apparaat naar de IoT Central-app en controleer op zowel onbewerkte apparaatgegevens als getransformeerde gegevens in IoT Central.

In het voorbeeld dat in de volgende secties wordt beschreven, verzendt het apparaat CSV-gegevens in de volgende indeling naar het IoT Edge-gatewayapparaat:

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

U gebruikt de apparaatbrug om de apparaatgegevens te transformeren door:

  • De temperatuureenheid wijzigen van centigrade in fahrenheit.
  • Verrijk de apparaatgegevens met weergegevens die zijn opgehaald uit de Service Open Weather voor de waarden voor breedtegraad en lengtegraad.

De apparaatbrug verzendt vervolgens de getransformeerde gegevens naar IoT Central in de volgende indeling:

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

In de volgende stappen ziet u hoe u dit scenario instelt en configureert:

Uw IoT Central-verbindingsinstellingen ophalen

Voordat u dit scenario instelt, moet u enkele verbindingsinstellingen ophalen uit uw IoT Central-toepassing:

  1. Meld u aan bij uw IoT Central-toepassing.

  2. Navigeer naar verbindingsgroepen voor machtigingen>.

  3. Noteer het id-bereik. U gebruikt deze waarde later.

  4. Selecteer de registratiegroep SaS-IoT-Devices . Noteer de primaire sleutel van de Shared Access Signature. U gebruikt deze waarde later.

Een rekenengine instellen

In dit scenario wordt dezelfde Azure Functions-implementatie gebruikt als de IoT Central-apparaatbrug. Als u de apparaatbrug wilt implementeren, selecteert u de knop Implementeren in Azure die wordt weergegeven na de volgende tabel. Gebruik de informatie in de tabel om het formulier Aangepaste implementatie te voltooien:

Veld Waarde
Resourcegroep Een nieuwe resourcegroep maken met de naam egress-scenario
Regio Selecteer de regio het dichtst bij u in de buurt.
Bereik-id Gebruik het id-bereik dat u eerder hebt genoteerd.
SAS-sleutel van IoT Central Gebruik de primaire sleutel van de handtekening voor gedeelde toegang voor de registratiegroep SaS-IoT-Devices . U hebt eerder een notitie gemaakt van deze waarde.

Implementeren op Azure.

Selecteer Controleren en maken en vervolgens Maken. Het duurt enkele minuten om de Azure-functie en gerelateerde resources te maken in de resourcegroep voor uitgaand scenario .

Apparaatgegevens transformeren in de apparaatbrug

De apparaatbrug configureren om de geëxporteerde apparaatgegevens te transformeren:

  1. Haal een toepassings-API-sleutel op uit de Open Weather-service. Een account is gratis met beperkt gebruik van de service. Als u een toepassings-API-sleutel wilt maken, maakt u een account in de portal open Weather-service en volgt u de instructies. U gebruikt later uw Open Weather API-sleutel.

  2. Navigeer in Azure Portal naar functie-app in de resourcegroep voor uitgaand scenario .

  3. Selecteer in het linkernavigatievenster in Ontwikkelhulpprogramma's De App Service-editor (preview).

  4. Selecteer Go → om de pagina App Service Editor te openen. Breng de volgende wijzigingen aan:

    1. Open het bestand wwwroot/IoTCIntegration/index.js . Vervang alle code in dit bestand door de code in index.js.

    2. Werk in de nieuwe index.js het variabelebestand bij met de openWeatherAppId Open Weather API-sleutel die u eerder hebt verkregen.

      const openWeatherAppId = '<Your Open Weather API Key>'
      
    3. Voeg een berichteigenschap toe aan de gegevens die door de functie worden verzonden naar IoT Central. IoT Central gebruikt deze eigenschap om te voorkomen dat de getransformeerde gegevens worden geëxporteerd. Als u deze wijziging wilt aanbrengen, opent u het bestand wwwroot/IoTCIntegration/lib/engine.js . Zoek de volgende code:

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

      Voeg de volgende code toe vlak na de code in het vorige codefragment:

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

      Ter referentie kunt u een voltooid voorbeeld van het engine.js-bestand bekijken.

  5. Selecteer console in de App Service-editor in de linkernavigatiebalk. Voer de volgende opdrachten uit om de vereiste pakketten te installeren:

    cd IoTCIntegration
    npm install
    

    Het kan enkele minuten duren voor deze opdracht is uitgevoerd.

  6. Ga terug naar de overzichtspagina van De Azure-functie en start de functie opnieuw op:

    De functie opnieuw starten

  7. Selecteer Functies in het linkernavigatievenster. Selecteer vervolgens IoTCIntegration. Selecteer Code + Test.

  8. Noteer de functie-URL. U hebt deze waarde later nodig:

    De functie-URL ophalen

Gegevensstroom van IoT Central naar de apparaatbrug inschakelen

In deze sectie wordt beschreven hoe u de Azure IoT Central-toepassing instelt.

Sla eerst het apparaatmodelbestand op uw lokale computer op.

Als u een apparaatsjabloon wilt toevoegen aan uw IoT Central-toepassing, gaat u naar uw IoT Central-toepassing en vervolgens:

  1. Meld u aan bij uw IoT Central-toepassing en navigeer naar de pagina Apparaatsjablonen .

  2. Selecteer + Nieuw, selecteer IoT-apparaat, selecteer Volgende: Aanpassen, voer rekenmodel in als de sjabloonnaam. Selecteer Volgende: Controleren. Selecteer vervolgens Maken.

  3. Selecteer Een model importeren en blader naar het model.json bestand dat u eerder hebt gedownload.

  4. Nadat het model is geïmporteerd, selecteert u Publiceren om de apparaatsjabloon Rekenmodel te publiceren.

Stel de gegevensexport in om gegevens naar uw apparaatbrug te verzenden:

  1. Selecteer Gegevensexport in uw IoT Central-toepassing.

  2. Selecteer + Nieuwe bestemming om een bestemming te maken die moet worden gebruikt met de apparaatbrug. Roep de doel-compute-functie aan voor doeltype, selecteer Webhook. Voor de Callback-URL selecteert u plakken in de functie-URL die u eerder hebt genoteerd. Laat de autorisatie staan op Geen verificatie.

  3. De wijzigingen opslaan.

  4. Selecteer + Nieuwe export en maak een gegevensexport met de naam Compute-export.

  5. Voeg een filter toe om alleen apparaatgegevens te exporteren voor de apparaatsjabloon die u gebruikt. Selecteer + Filter, selecteer apparaatsjabloon voor items, selecteer de operator Is gelijk aan en selecteer de apparaatsjabloon rekenmodel die u hebt gemaakt.

  6. Voeg een berichtfilter toe om onderscheid te maken tussen getransformeerde en niet-getransformeerde gegevens. Met dit filter voorkomt u dat getransformeerde waarden naar de apparaatbrug worden verzonden. Selecteer + berichteigenschapsfilter en voer de berekende naamwaarde in en selecteer vervolgens de operator Bestaat niet. De tekenreeks computed wordt gebruikt als een trefwoord in de voorbeeldcode van de apparaatbrug.

  7. Selecteer voor het doel de compute-functiebestemming die u eerder hebt gemaakt.

  8. De wijzigingen opslaan. Na een minuut of zo wordt de exportstatus weergegeven als In orde.

Verifiëren

Het voorbeeldapparaat dat u gebruikt om het scenario te testen, is geschreven in Node.js. Zorg ervoor dat u Node.js en npm op uw lokale computer hebt geïnstalleerd. Als u deze vereisten niet wilt installeren, gebruikt u de Azure Cloud Shell waarop deze vooraf zijn geïnstalleerd.

Een voorbeeldapparaat uitvoeren waarmee het scenario wordt getest:

  1. Kloon de GitHub-opslagplaats die de voorbeeldcode bevat, voer de volgende opdracht uit:

    git clone https://github.com/Azure/iot-central-compute
    
  2. Als u het voorbeeldapparaat wilt verbinden met uw IoT Central-toepassing, bewerkt u de verbindingsinstellingen in het bestand iot-central-compute/device/device.js . Vervang de bereik-id en de SAS-sleutel van de groep door de waarden die u eerder hebt genoteerd:

    // 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>";
    //
    

    De wijzigingen opslaan.

  3. Gebruik de volgende opdrachten om de vereiste pakketten te installeren en het apparaat uit te voeren:

    cd ~/iot-central-compute/device
    npm install
    node device.js
    
  4. Het resultaat van deze opdracht ziet eruit als de volgende uitvoer:

    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. Navigeer in uw IoT Central-toepassing naar het apparaat met de naam computeDevice. In de weergave Onbewerkte gegevens zijn er twee verschillende telemetriestromen die ongeveer om de vijf seconden worden weergegeven. De stream met niet-gemodelleerde gegevens is de oorspronkelijke telemetrie, de stream met gemodelleerde gegevens zijn de gegevens die de functie heeft getransformeerd:

    Schermopname van oorspronkelijke en getransformeerde onbewerkte gegevens.

Resources opschonen

Als u de Azure-resources die u hebt gemaakt niet meer nodig hebt tijdens het volgen van de stappen in deze handleiding, verwijdert u de resourcegroepen in Azure Portal.

De twee resourcegroepen die u in deze handleiding hebt gebruikt, zijn inkomend scenario en uitgaand scenario.

Volgende stappen

In dit artikel hebt u geleerd over de verschillende opties voor het transformeren van apparaatgegevens voor IoT Central, zowel op inkomend als uitgaand verkeer. Het artikel bevat stapsgewijze instructies voor twee specifieke scenario's:

  • Gebruik een IoT Edge-module om gegevens van downstreamapparaten te transformeren voordat de gegevens naar uw IoT Central-toepassing worden verzonden.
  • Gebruik Azure Functions om gegevens buiten IoT Central te transformeren. In dit scenario gebruikt IoT Central een gegevensexport om binnenkomende gegevens te verzenden naar een Azure-functie die moet worden getransformeerd. De functie verzendt de getransformeerde gegevens terug naar uw IoT Central-toepassing.

Nu u hebt geleerd hoe u apparaatgegevens buiten uw Azure IoT Central-toepassing kunt transformeren, kunt u leren hoe u Data Explorer kunt gebruiken om apparaatgegevens in IoT Central te analyseren.