Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 účet nemáte, můžete si během několika minut vytvořit bezplatný zkušební účet. 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 jakémkoli operačním systému, jako je Windows nebo Linux, kde můžete nainstalovat Node.js.
Zřízení řešení
Pokud jste ještě ve svém účtu 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 na + vytvořte řešení.
- Klikněte na Vybrat na dlaždici vzdáleného monitorování.
- Zadejte název řešení pro předkonfigurované řešení vzdáleného monitorování.
- Vyberte oblasti a předplatné, které chcete použít ke zřízení řešení.
- Kliknutím na Vytvořit řešení zahájíte proces zřizování. Spuštění tohoto procesu obvykle trvá několik minut.
Počkejte, až se dokončí proces zřizování.
- Klikněte na dlaždici vašeho řešení se stavem „Provisioning“ .
- Všimněte si stavů procesu zřizování, když jsou služby Azure nasazovány ve vašem předplatném Azure.
- Po dokončení zřizování se stav změní na Připraveno.
- Kliknutím na dlaždici zobrazíte v pravém podokně podrobnosti o řešení.
Poznámka:
Pokud při nasazování předkonfigurovaného řešení dochází k problémům, projděte si Oprávnění na webu azureiotsuite.com a Nejčastější dotazy. Pokud problémy potrvají, vytvořte servisní tiket na portálu .
Očekáváte nějaké podrobnosti, které nejsou uvedeny pro vaše řešení? Dejte nám návrhy funkcí na 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 potom 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 zařízení remote_monitoring.js.
Ujistěte se, že na vývojovém počítači je nainstalovaná Node.js verze 0.12.x nebo novější. Spusťte
node --versionna příkazovém řádku nebo v terminálu a 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.jsnaklonujte nejnovější verzi úložiště azure-iot-sdk-node na vývojový počítač. Vždy používejte větev master 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] svým připojovacím řetězcem 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, 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 simulované zařízení Node.js tak, že do příkazového řádku nebo shellu zadáte Ctrl+C.
V souboru remote_monitoring.js můžete zobrazit základní hodnoty dat 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.jsPodí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 bez rozlišování velkých a malých písmen k porovnání definice metadat s daty v telemetrickém proudu.
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 telemetrieDevice-InfoexternalTemperature 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ě.
Řešte chyby
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í.