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í:
- Přihlaste se k azureiotsuite.com pomocí přihlašovacích údajů účtu Azure a kliknutím + vytvořte řešení.
- Klikněte na tlačítko Vybrat, které se nachází na dlaždici Vzdálené monitorování.
- Zadejte Název řešení pro předkonfigurované řešení vzdáleného monitorování.
- Vyberte Oblast a Předplatné, které chcete při zřizování řešení použít.
- 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čí.
- Klikněte na dlaždici s řešením, u kterého je uveden stav Zřizování.
- Stavy zřizování umožňují sledovat, jak se služby Azure nasazují na váš účet Azure.
- Jakmile bude zřizování dokončeno, stav se změní na Připraveno.
- 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
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í.
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ů.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.
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
Otevřete soubor remote_monitoring.js a vyhledejte následující definici proměnné:
var connectionString = "[IoT Hub device connection string]";
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 ... =="
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í:
Pokud vyberete Node.js simulované zařízení, které jste spustili v předchozí části, zobrazí se telemetrie teploty, vlhkosti a externí teploty:
Ř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:
Zastavte Node.js simulované zařízení tak , že do příkazového řádku nebo prostředí zadáte Ctrl+C .
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;
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();
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 });
Pomocí následujícího příkazu spusťte simulované zařízení Node.js:
node remote_monitoring.js
Podívejte se na nový typ telemetrie RPM, který se zobrazuje v grafu na řídicím panelu:
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:
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:
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í.