Sdílet prostřednictvím


Použití dynamické telemetrie s předkonfigurovaným řešením vzdáleného monitorování

Dynamická telemetrie umožňuje vizualizovat veškerá telemetrická data odesílaná do předkonfigurovaného řešení vzdáleného monitorování. Simulovaná zařízení, která se nasazují pomocí předkonfigurovaného řešení, odesílají telemetrická data o teplotě a vlhkosti, která můžete vizualizovat na řídicím panelu. Pokud přizpůsobíte stávající simulovaná zařízení, vytvoříte nová simulovaná zařízení nebo připojíte fyzická zařízení k předkonfigurovanému řešení, můžete odesílat další hodnoty telemetrie, jako je externí teplota, RPM nebo rychlost větru. Tuto další telemetrii pak můžete vizualizovat na řídicím panelu.

V tomto kurzu se používá jednoduché Node.js simulované zařízení, které můžete snadno upravit a experimentovat s dynamickou telemetrií.

K dokončení tohoto kurzu budete potřebovat:

  • Aktivní předplatné Azure. Pokud nemáte účet, můžete si během několika minut vytvořit bezplatný účet zkušební. Podrobnosti najdete v článku Bezplatná zkušební verze Azure.
  • Node.js verze 0.12.x nebo novější.

Tento kurz můžete dokončit v libovolném operačním systému, jako je Windows nebo Linux, kde můžete nainstalovat Node.js.

Zřízení řešení

Pokud jste ve svém účtu ještě nezřídili předkonfigurované řešení vzdáleného monitorování:

  1. Přihlaste se k azureiotsuite.com pomocí přihlašovacích údajů účtu Azure a kliknutím + vytvořte řešení.
  2. Klikněte na tlačítko Vybrat, které se nachází na dlaždici Vzdálené monitorování.
  3. Zadejte Název řešení pro předkonfigurované řešení vzdáleného monitorování.
  4. Vyberte Oblast a Předplatné, které chcete při zřizování řešení použít.
  5. Kliknutím na tlačítko Vytvořit řešení zahájíte proces zřizování. Tento proces obvykle trvá několik minut.

Počkejte, dokud proces zřizování neskončí.

  1. Klikněte na dlaždici s řešením, u kterého je uveden stav Zřizování.
  2. Stavy zřizování umožňují sledovat, jak se služby Azure nasazují na váš účet Azure.
  3. Jakmile bude zřizování dokončeno, stav se změní na Připraveno.
  4. Kliknutím na dlaždici zobrazíte v pravém podokně informace o řešení.

Poznámka:

Pokud při nasazování předkonfigurovaného řešení narazíte na problémy, zkontrolujte Oprávnění na webu azureiotsuite.com a přečtěte si Nejčastější dotazy. Pokud problémy přetrvávají, vytvořte na portálu lístek služby.

Hledali jste informace, které se týkají vašeho řešení a nejsou zde uvedeny? Sdělte nám návrhy na funkce na webu User Voice.

Konfigurace simulovaného zařízení Node.js

  1. Na řídicím panelu vzdáleného monitorování klikněte na + Přidat zařízení a pak přidejte vlastní zařízení. Poznamenejte si název hostitele služby IoT Hub, ID zařízení a klíč zařízení. Budete je potřebovat později v tomto kurzu při přípravě klientské aplikace remote_monitoring.js zařízení.

  2. Ujistěte se, že na vývojovém počítači je nainstalovaná Node.js verze 0.12.x nebo novější. Spuštěním node --version na příkazovém řádku nebo v prostředí zkontrolujte verzi. Informace o použití správce balíčků k instalaci Node.js v Linuxu naleznete v tématu Instalace Node.js prostřednictvím správce balíčků.

  3. Po instalaci Node.js naklonujte do vývojového počítače nejnovější verzi úložiště azure-iot-sdk-node . Vždy používejte hlavní větev pro nejnovější verzi knihoven a ukázek.

  4. Z místní kopie úložiště azure-iot-sdk-node zkopírujte následující dva soubory ze složky node/device/samples do prázdné složky na vývojovém počítači:

    • packages.json
    • remote_monitoring.js
  5. Otevřete soubor remote_monitoring.js a vyhledejte následující definici proměnné:

    var connectionString = "[IoT Hub device connection string]";
    
  6. Nahraďte [připojovací řetězec zařízení ioT Hub] připojovací řetězec vašeho zařízení. Použijte hodnoty pro název hostitele služby IoT Hub, ID zařízení a klíč zařízení, které jste si poznamenali v kroku 1. Připojovací řetězec zařízení má následující formát:

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

    Pokud je název hostitele služby IoT Hub contoso a ID vašeho zařízení je mydevice, váš připojovací řetězec vypadá jako následující fragment kódu:

    var connectionString = "HostName=contoso.azure-devices.net;DeviceId=mydevice;SharedAccessKey=2s ... =="
    
  7. Uložte soubor. Spuštěním následujících příkazů v prostředí nebo příkazovém řádku ve složce, která obsahuje tyto soubory, nainstalujte potřebné balíčky a spusťte ukázkovou aplikaci:

    npm install
    node remote_monitoring.js
    

Sledování dynamické telemetrie v akci

Řídicí panel zobrazuje telemetrii teploty a vlhkosti z existujících simulovaných zařízení:

Výchozí řídicí panel

Pokud vyberete Node.js simulované zařízení, které jste spustili v předchozí části, zobrazí se telemetrie teploty, vlhkosti a externí teploty:

Přidání externí teploty na řídicí panel

Řešení vzdáleného monitorování automaticky rozpozná další typ telemetrie externí teploty a přidá ho do grafu na řídicím panelu.

Přidání typu telemetrie

Dalším krokem je nahrazení telemetrie vygenerované Node.js simulovaným zařízením novou sadou hodnot:

  1. Zastavte Node.js simulované zařízení tak , že do příkazového řádku nebo prostředí zadáte Ctrl+C .

  2. V souboru remote_monitoring.js můžete zobrazit základní datové hodnoty pro stávající telemetrii teploty, vlhkosti a externí teploty. Přidejte základní hodnotu dat pro rpm následujícím způsobem:

    // Sensors data
    var temperature = 50;
    var humidity = 50;
    var externalTemperature = 55;
    var rpm = 200;
    
  3. Simulované zařízení Node.js používá funkci generateRandomIncrement v souboru remote_monitoring.js k přidání náhodného přírůstku do základních hodnot dat. Randomizovat hodnotu rpm přidáním řádku kódu za existující randomizace následujícím způsobem:

    temperature += generateRandomIncrement();
    externalTemperature += generateRandomIncrement();
    humidity += generateRandomIncrement();
    rpm += generateRandomIncrement();
    
  4. Přidejte novou hodnotu rpm do datové části JSON, kterou zařízení odesílá do IoT Hubu:

    var data = JSON.stringify({
      'DeviceID': deviceId,
      'Temperature': temperature,
      'Humidity': humidity,
      'ExternalTemperature': externalTemperature,
      'RPM': rpm
    });
    
  5. Pomocí následujícího příkazu spusťte simulované zařízení Node.js:

    node remote_monitoring.js

  6. Podívejte se na nový typ telemetrie RPM, který se zobrazuje v grafu na řídicím panelu:

Přidání RPM na řídicí panel

Poznámka:

Možná budete muset zakázat a potom povolit Node.js zařízení na stránce Zařízení na řídicím panelu, aby se změna zobrazila okamžitě.

Přizpůsobení zobrazení řídicího panelu

Zpráva Device-Info může obsahovat metadata o telemetrii, kterou zařízení může odesílat do IoT Hubu. Tato metadata můžou určovat typy telemetrie, které zařízení odesílá. Upravte hodnotu deviceMetaData v souboru remote_monitoring.js tak, aby zahrnovala definici telemetrie za definicí příkazů. Následující fragment kódu ukazuje definici Příkazů (nezapomeňte přidat , za definici Příkazy ):

'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'
}]

Poznámka:

Řešení vzdáleného monitorování používá shodu nerozlišující malá a velká písmena k porovnání definice metadat s daty v datovém proudu telemetrie.

Přidání definice telemetrie, jak je znázorněno v předchozím fragmentu kódu, nemění chování řídicího panelu. Metadata však mohou také obsahovat atribut DisplayName , který přizpůsobí zobrazení na řídicím panelu. Aktualizujte definici metadat telemetrie, jak je znázorněno v následujícím fragmentu kódu:

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

Následující snímek obrazovky ukazuje, jak tato změna upraví legendu grafu na řídicím panelu:

Přizpůsobení legendy grafu

Poznámka:

Možná budete muset zakázat a potom povolit Node.js zařízení na stránce Zařízení na řídicím panelu, aby se změna zobrazila okamžitě.

Filtrování typů telemetrie

Ve výchozím nastavení graf na řídicím panelu zobrazuje všechny datové řady v datovém proudu telemetrie. Metadata Device-Info můžete použít k potlačení zobrazení konkrétních typů telemetrie v grafu.

Pokud chcete, aby graf zobrazoval pouze telemetrii teploty a vlhkosti, vymiňte z metadat telemetrie Device-Info externalTemperature následujícím způsobem:

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

Venkovní teplota se už v grafu nezobrazuje:

Filtrování telemetrie na řídicím panelu

Tato změna má vliv jenom na zobrazení grafu. Datové hodnoty ExternalTemperature jsou stále uloženy a zpřístupněny pro jakékoli zpracování back-endu.

Poznámka:

Možná budete muset zakázat a potom povolit Node.js zařízení na stránce Zařízení na řídicím panelu, aby se změna zobrazila okamžitě.

Zpracování chyb

Aby se datový proud zobrazoval v grafu, musí jeho typ v metadatech Device-Info odpovídat datovému typu hodnot telemetrie. Pokud například metadata určují, že typ dat vlhkosti je int a ve streamu telemetrie se nachází double , telemetrie vlhkosti se v grafu nezobrazí. Hodnoty vlhkosti jsou však stále uložené a zpřístupněny pro jakékoli zpracování back-endu.

Další kroky

Teď, když jste viděli, jak používat dynamickou telemetrii, najdete další informace o tom, jak předkonfigurovaná řešení používají informace o zařízení: Metadata informací o zařízení v předkonfigurovaném řešení vzdáleného monitorování.