Delen via


Dynamische telemetrie gebruiken met de vooraf geconfigureerde oplossing voor externe bewaking

Met dynamische telemetrie kunt u alle telemetrie visualiseren die naar de vooraf geconfigureerde oplossing voor externe bewaking wordt verzonden. De gesimuleerde apparaten die worden geïmplementeerd met de vooraf geconfigureerde oplossing verzenden telemetriegegevens over temperatuur en vochtigheid, die u op het dashboard kunt visualiseren. Als u bestaande gesimuleerde apparaten aanpast, nieuwe gesimuleerde apparaten maakt of fysieke apparaten verbindt met de vooraf geconfigureerde oplossing, kunt u andere telemetriewaarden verzenden, zoals de externe temperatuur, RPM of windsnelheid. Vervolgens kunt u deze extra telemetrie op het dashboard visualiseren.

In deze zelfstudie wordt gebruikgemaakt van een eenvoudig Node.js gesimuleerd apparaat dat u eenvoudig kunt aanpassen om te experimenteren met dynamische telemetrie.

U hebt het volgende nodig om deze zelfstudie te voltooien:

  • Een actief Azure-abonnement. Als u geen account hebt, kunt u binnen een paar minuten een account voor de gratis proefversie maken. Zie Gratis proefversie van Azure voor meer informatie.
  • Node.js versie 0.12.x of hoger.

U kunt deze zelfstudie voltooien op elk besturingssysteem, zoals Windows of Linux, waar u Node.js kunt installeren.

De oplossing inrichten

Als u de vooraf geconfigureerde oplossing voor externe controle in uw account nog niet hebt ingericht:

  1. Meld u aan bij azureiotsuite.com met uw Azure-accountreferenties en klik + om een oplossing te maken.
  2. Klik op de tegel Externe controle op Selecteren.
  3. Voer een oplossingsnaam in voor uw vooraf geconfigureerde oplossing voor externe controle.
  4. Selecteer de regio die en het abonnement dat u wilt gebruiken voor het inrichten van de oplossing.
  5. Klik op Oplossing maken om het inrichtingsproces te starten. Doorgaans duurt het enkele minuten om dit proces uit te voeren.

Wacht tot het inrichtingsproces is voltooid.

  1. Klik op de tegel voor uw oplossing met de status Inrichten.
  2. Tijdens de implementatie van Azure-services in uw Azure-abonnement verschijnen verschillende inrichtingstatuswaarden.
  3. Nadat het inrichten is voltooid, verandert de status in Gereed.
  4. Klik op de tegel om de details van uw oplossing in het rechterdeelvenster weer te geven.

Notitie

Als er problemen zijn met de implementatie van de vooraf geconfigureerde oplossing, leest u Permissions on the azureiotsuite.com site (Machtigingen op de site azureiotsuite.com) en de veelgestelde vragen. Als de problemen zich blijven voordoen, maakt u een serviceticket aan in de portal.

Zijn er voor uw oplossing bepaalde details niet vermeld, die u wel verwacht had te zien? Geef ons suggesties voor functies op User Voice.

Het Node.js gesimuleerde apparaat configureren

  1. Klik op het dashboard voor externe bewaking op + Een apparaat toevoegen en voeg vervolgens een aangepast apparaat toe. Noteer de hostnaam, apparaat-id en apparaatsleutel van IoT Hub. U hebt deze later in deze zelfstudie nodig wanneer u de remote_monitoring.js apparaatclienttoepassing voorbereidt.

  2. Zorg ervoor dat Node.js versie 0.12.x of hoger is geïnstalleerd op uw ontwikkelcomputer. Voer node --version deze opdracht uit bij een opdrachtprompt of in een shell om de versie te controleren. Zie Node.js installeren via Package Manager voor informatie over het gebruik van een pakketbeheerder om Node.js op Linux te installeren.

  3. Wanneer u Node.js hebt geïnstalleerd, kloont u de nieuwste versie van de opslagplaats azure-iot-sdk-node naar uw ontwikkelcomputer. Gebruik altijd de hoofdvertakking voor de nieuwste versie van de bibliotheken en voorbeelden.

  4. Kopieer vanuit uw lokale kopie van de opslagplaats azure-iot-sdk-node de volgende twee bestanden uit de map node/device/samples naar een lege map op uw ontwikkelcomputer:

    • packages.json
    • remote_monitoring.js
  5. Open het bestand remote_monitoring.js en zoek naar de volgende variabeledefinitie:

    var connectionString = "[IoT Hub device connection string]";
    
  6. Vervang [IoT Hub-apparaat verbindingsreeks] door uw apparaat verbindingsreeks. Gebruik de waarden voor uw IoT Hub-hostnaam, apparaat-id en apparaatsleutel die u in stap 1 hebt genoteerd. Een apparaat verbindingsreeks heeft de volgende indeling:

    HostName={your IoT Hub hostname};DeviceId={your device id};SharedAccessKey={your device key}
    

    Als uw IoT Hub-hostnaam contoso is en uw apparaat-id mydevice is, ziet uw verbindingsreeks eruit als het volgende codefragment:

    var connectionString = "HostName=contoso.azure-devices.net;DeviceId=mydevice;SharedAccessKey=2s ... =="
    
  7. Sla het bestand op. Voer de volgende opdrachten uit in een shell of opdrachtprompt in de map die deze bestanden bevat om de benodigde pakketten te installeren en voer vervolgens de voorbeeldtoepassing uit:

    npm install
    node remote_monitoring.js
    

Dynamische telemetrie in actie observeren

Het dashboard toont de telemetrie van de temperatuur en vochtigheid van de bestaande gesimuleerde apparaten:

Het standaarddashboard

Als u het Node.js gesimuleerde apparaat selecteert dat u in de vorige sectie hebt uitgevoerd, ziet u telemetriegegevens over temperatuur, vochtigheid en externe temperatuur:

Externe temperatuur toevoegen aan het dashboard

De externe bewakingsoplossing detecteert automatisch het extra telemetrietype voor externe temperatuur en voegt dit toe aan de grafiek op het dashboard.

Een telemetrietype toevoegen

De volgende stap is het vervangen van de telemetrie die door het Node.js gesimuleerde apparaat wordt gegenereerd door een nieuwe set waarden:

  1. Stop het Node.js gesimuleerd apparaat door Ctrl+C te typen in de opdrachtprompt of shell.

  2. In het remote_monitoring.js-bestand ziet u de basisgegevenswaarden voor de bestaande temperatuur, vochtigheid en externe temperatuurtelemetrie. Voeg als volgt een basisgegevenswaarde voor rpm toe:

    // Sensors data
    var temperature = 50;
    var humidity = 50;
    var externalTemperature = 55;
    var rpm = 200;
    
  3. Het Node.js gesimuleerd apparaat maakt gebruik van de functie generateRandomIncrement in het remote_monitoring.js-bestand om een willekeurige verhoging toe te voegen aan de basisgegevenswaarden. Randomiseer de rpm-waarde door een coderegel toe te voegen na de bestaande randomisaties als volgt:

    temperature += generateRandomIncrement();
    externalTemperature += generateRandomIncrement();
    humidity += generateRandomIncrement();
    rpm += generateRandomIncrement();
    
  4. Voeg de nieuwe rpm-waarde toe aan de JSON-nettolading die het apparaat naar IoT Hub verzendt:

    var data = JSON.stringify({
      'DeviceID': deviceId,
      'Temperature': temperature,
      'Humidity': humidity,
      'ExternalTemperature': externalTemperature,
      'RPM': rpm
    });
    
  5. Voer het Node.js gesimuleerde apparaat uit met behulp van de volgende opdracht:

    node remote_monitoring.js

  6. Bekijk het nieuwe RPM-telemetrietype dat wordt weergegeven in de grafiek in het dashboard:

RPM toevoegen aan het dashboard

Notitie

Mogelijk moet u het Node.js apparaat op de pagina Apparaten in het dashboard uitschakelen en vervolgens inschakelen om de wijziging onmiddellijk te zien.

De dashboardweergave aanpassen

Het bericht Apparaatgegevens kan metagegevens bevatten over de telemetrie die het apparaat naar IoT Hub kan verzenden. Met deze metagegevens kunt u de telemetrietypen opgeven die door het apparaat worden verzonden. Wijzig de deviceMetaData-waarde in het remote_monitoring.js-bestand om een telemetriedefinitie op te nemen volgens de opdrachtdefinitie . In het volgende codefragment ziet u de definitie Van opdrachten (zorg ervoor dat u een , definitie toevoegt na de definitie van de opdrachten ):

'Commands': [{
  'Name': 'SetTemperature',
  'Parameters': [{
    'Name': 'Temperature',
    'Type': 'double'
  }]
},
{
  'Name': 'SetHumidity',
  'Parameters': [{
    'Name': 'Humidity',
    'Type': 'double'
  }]
}],
'Telemetry': [{
  'Name': 'Temperature',
  'Type': 'double'
},
{
  'Name': 'Humidity',
  'Type': 'double'
},
{
  'Name': 'ExternalTemperature',
  'Type': 'double'
}]

Notitie

De externe bewakingsoplossing maakt gebruik van een niet-hoofdlettergevoelige overeenkomst om de metagegevensdefinitie te vergelijken met gegevens in de telemetriestroom.

Als u een telemetriedefinitie toevoegt, zoals wordt weergegeven in het voorgaande codefragment, wordt het gedrag van het dashboard niet gewijzigd. De metagegevens kunnen echter ook een DisplayName-kenmerk bevatten om de weergave in het dashboard aan te passen. Werk de definitie van de telemetriemetagegevens bij, zoals wordt weergegeven in het volgende fragment:

'Telemetry': [
{
  'Name': 'Temperature',
  'Type': 'double',
  'DisplayName': 'Temperature (C*)'
},
{
  'Name': 'Humidity',
  'Type': 'double',
  'DisplayName': 'Humidity (relative)'
},
{
  'Name': 'ExternalTemperature',
  'Type': 'double',
  'DisplayName': 'Outdoor Temperature (C*)'
}
]

In de volgende schermopname ziet u hoe deze wijziging de grafieklegenda op het dashboard wijzigt:

De grafieklegenda aanpassen

Notitie

Mogelijk moet u het Node.js apparaat op de pagina Apparaten in het dashboard uitschakelen en vervolgens inschakelen om de wijziging onmiddellijk te zien.

De telemetrietypen filteren

In de grafiek op het dashboard wordt standaard elke gegevensreeks in de telemetriestroom weergegeven. U kunt de metagegevens van Apparaatgegevens gebruiken om de weergave van specifieke telemetrietypen in de grafiek te onderdrukken.

Als u wilt dat de grafiek alleen telemetriegegevens voor temperatuur en vochtigheid weergeeft, laat u ExternalTemperature weg uit de metagegevens van de Telemetrie van apparaatgegevens:

'Telemetry': [
{
  'Name': 'Temperature',
  'Type': 'double',
  'DisplayName': 'Temperature (C*)'
},
{
  'Name': 'Humidity',
  'Type': 'double',
  'DisplayName': 'Humidity (relative)'
},
//{
//  'Name': 'ExternalTemperature',
//  'Type': 'double',
//  'DisplayName': 'Outdoor Temperature (C*)'
//}
]

De buitentemperatuur wordt niet meer weergegeven in de grafiek:

De telemetrie op het dashboard filteren

Deze wijziging is alleen van invloed op de grafiekweergave. De gegevenswaarden ExternalTemperature worden nog steeds opgeslagen en beschikbaar gesteld voor elke back-endverwerking.

Notitie

Mogelijk moet u het Node.js apparaat op de pagina Apparaten in het dashboard uitschakelen en vervolgens inschakelen om de wijziging onmiddellijk te zien.

Afhandeling van fouten

Als een gegevensstroom in de grafiek moet worden weergegeven, moeten de metagegevens van het type Apparaatgegevens overeenkomen met het gegevenstype van de telemetriewaarden. Als de metagegevens bijvoorbeeld aangeeft dat het type vochtigheidsgegevens int is en er een dubbel getal in de telemetriestroom wordt gevonden, wordt de vochtigheidstelemetrie niet weergegeven in de grafiek. De vochtigheidswaarden worden echter nog steeds opgeslagen en beschikbaar gesteld voor elke back-endverwerking.

Volgende stappen

Nu u hebt gezien hoe u dynamische telemetrie gebruikt, kunt u meer informatie vinden over hoe de vooraf geconfigureerde oplossingen apparaatgegevens gebruiken: metagegevens van apparaatgegevens in de vooraf geconfigureerde oplossing voor externe bewaking.