Sdílet prostřednictvím


Návod pro předkonfigurované řešení vzdáleného monitorování

Předkonfigurované řešení pro vzdálené monitorování sady IoT Suite je implementace uceleného řešení pro monitorování pro více počítačů spuštěných ve vzdálených umístěních. Řešení kombinuje klíčové služby Azure a poskytuje obecnou implementaci obchodního scénáře. Můžete ho použít jako výchozí bod pro vlastní implementaci a přizpůsobit si ho tak, aby splňovalo vaše konkrétní obchodní požadavky.

Tento článek vás provede některými z klíčových prvků řešení pro vzdálené monitorování, aby vám pomohl pochopit, jak toto řešení funguje. Díky tomu budete moct:

  • Odstraňovat potíže v řešení.
  • Naplánujte, jak řešení přizpůsobit podle konkrétních požadavků.
  • Navrhněte vlastní řešení IoT, které používá služby Azure.

Logická architektura

Následující diagram popisuje logické součásti tohoto předkonfigurovaného řešení:

Logická architektura

Mikroslužby a kontejnery Dockeru

Vzdálené monitorování je prvním z našich předkonfigurovaných řešení, které využívá architekturu mikroslužeb. Řešení je dostupné v .NET i v Javě. Z mikroslužeb se stal převládající způsob dosažení škálovatelnosti a flexibility (díky možnosti škálování jednotlivých kontejnerů) bez negativního vlivu na rychlost vývoje. Mikroslužby rozčleňují kód a poskytují dobře definovaná rozhraní, díky kterým jsou řešení jednodušší a méně monolitická. Kromě toho také rozšiřují možnosti pro partnery, kteří chtějí rozšířit naše stávající akcelerátory řešení a sestavit hotová řešení, která je možné finančně zhodnotit.

Další informace o kontejnerech Dockeru

Simulovaná zařízení

V předkonfigurovaných řešeních představuje simulované zařízení chladící zařízení (například klimatizační jednotku v budově nebo vzduchovod). Při nasazení předkonfigurovaných řešení dojde také automaticky ke zřízení čtyř simulovaných zařízení, která běží ve webových úlohách Azure. Simulovaná zařízení umožňují snadno zkoumat chování řešení, aniž by bylo nutné nasazovat fyzická zařízení. Pokud chcete nasadit skutečné fyzické zařízení, přečtěte si kurz Připojení zařízení k předkonfigurovanému řešení vzdáleného monitorování.

Zprávy typu zařízení-cloud

Každé simulované zařízení může odesílat do služby IoT Hub následující typy zpráv:

Zpráva Popis
Spuštění Při spuštění zařízení odešle zprávu device-info s informace o sobě na back-end. Tato data obsahují ID zařízení a seznam příkazů a metod, které zařízení podporuje.
Přítomnost Zařízení pravidelně odesílá zprávu o presence, která oznamuje, jestli zařízení rozpoznává přítomnost senzoru.
Telemetrie Zařízení pravidelně odesílá zprávu telemetry, která hlásí simulované hodnoty teploty a vlhkosti získané ze simulovaných senzorů zařízení.

Poznámka

Řešení ukládá seznam příkazů, které zařízení podporuje, v databázi Cosmos DB a nikoli ve dvojčeti zařízení.

Vlastnosti a dvojčata zařízení

Simulovaná zařízení odesílají následující vlastnosti zařízení do dvojčete ve službě IoT Hub jako ohlášené vlastnosti. Zařízení odesílá ohlášené vlastnosti při spuštění a jako reakci na metodu nebo příkaz Change Device State (Změnit stav zařízení).

Vlastnost Účel
Config.TelemetryInterval Frekvence (v sekundách) odesílání telemetrie ze zařízení
Config.TemperatureMeanValue Určuje střední hodnotu telemetrie simulované teploty
Device.DeviceID ID, které je zadáno nebo přiřazeno při vytvoření zařízení v řešení
Device.DeviceState Stav hlášený zařízením
Device.CreatedTime Čas vytvoření zařízení v řešení
Device.StartupTime Čas spuštění zařízení
Device.LastDesiredPropertyChange Číslo verze poslední změny požadované vlastnosti
Device.Location.Latitude Zeměpisná šířka umístění zařízení
Device.Location.Longitude Zeměpisná délka umístění zařízení
System.Manufacturer Výrobce zařízení
System.ModelNumber Číslo modelu zařízení
System.SerialNumber Sériové číslo zařízení
System.FirmwareVersion Aktuální verzi firmwaru v zařízení
System.Platform Architektura platformy zařízení
System.Processor Procesor použitý v zařízení
System.InstalledRAM Velikost paměti RAM nainstalované v zařízení

Simulátor doplňuje pro tyto vlastnosti v simulovaném zařízení vzorové hodnoty. Pokaždé, když simulátor inicializuje simulované zařízení, ohlásí toto zařízení do služby IoT Hub předdefinovaná metadata jako ohlášené vlastnosti. Ohlášené vlastnosti může aktualizovat pouze zařízení. Pokud chcete změnit ohlášenou vlastnost, musíte na portálu řešení nastavit požadovanou vlastnost. Zařízení je zodpovědné za:

  1. Pravidelné načítání požadovaných vlastností ze služby IoT Hub.
  2. Aktualizaci vlastní konfigurace s použitím hodnot požadovaných vlastností.
  3. Odesílání nových hodnot zpět do služby IoT Hub jako ohlášených vlastností.

Na řídicím panelu řešení můžete použít požadované vlastnosti k nastavení vlastností v zařízení pomocí dvojčete zařízení. Zařízení obvykle načítá hodnotu požadované vlastnosti ze služby IoT Hub a aktualizuje svůj interní stav, a změny hlásí zpět jako ohlášené vlastnosti.

Poznámka

Kód simulovaného zařízení k aktualizaci ohlášených vlastností odeslaných zpět do služby IoT Hub využívá pouze požadované vlastnosti Desired.Config.TemperatureMeanValue a Desired.Config.TelemetryInterval. Všechny ostatní žádosti o změnu požadované vlastnosti se v simulovaném zařízení ignorují.

Metody

Simulovaná zařízení můžou zpracovávat následující metody (přímé metody) vyvolané z portálu řešení prostřednictvím služby IoT Hub:

Metoda Popis
InitiateFirmwareUpdate Dá zařízení pokyn k provedení aktualizace firmwaru
Restartování Dá zařízení pokyn k restartování
FactoryReset Dá zařízení pokyn k provedení obnovení do výrobního nastavení

Některé metody používají ohlášené vlastnosti k podávání zpráv o průběhu. Například metoda InitiateFirmwareUpdate simuluje asynchronní spuštění aktualizace v zařízení. Metoda se v zařízení vykoná okamžitě, zatímco asynchronní úloha pomocí ohlášených vlastností stále odesílá aktualizace stavu zpět do řídicího panelu řešení.

Příkazy

Simulovaná zařízení můžou zpracovávat následující příkazy (zprávy typu cloud-zařízení) odeslané z portálu řešení prostřednictvím služby IoT Hub:

Příkaz Popis
PingDevice Odešle do zařízení ping pro účely kontroly, jestli je dané zařízení aktivní.
StartTelemetry Spustí odesílání telemetrických dat ze zařízení
StopTelemetry Zastaví odesílání telemetrických dat zařízením
ChangeSetPointTemp Změní hodnotu bodu, na jehož základě se vytvářejí náhodná data
DiagnosticTelemetry Aktivuje v simulátoru zařízení odesílání další telemetrické hodnoty (externalTemp)
ChangeDeviceState Změní rozšířené stavové vlastnosti zařízení a odešle z něj zprávu s informacemi o zařízení

Poznámka

Porovnání těchto příkazů (zpráv typu cloud-zařízení) a metod (přímých metod) najdete v doprovodných materiálech ke komunikaci typu cloud-zařízení.

IoT Hub

Služba IoT Hub přijímá data odesílaná ze zařízení do cloudu a zpřístupňuje je úlohám Azure Stream Analytics (ASA). Každá úloha datového proudu ASA používá ke čtení streamu zpráv ze zařízení samostatnou skupinu příjemců IoT Hub.

Služba IoT Hub v řešení také:

  • Udržuje registr identit, ve kterém jsou uloženy identifikátory a ověřovací klíče všech zařízení s povolením připojit se k portálu. Prostřednictvím registru identit můžete zařízení povolit nebo zakázat.
  • Jménem portálu řešení odesílá příkazy do zařízení.
  • Jménem portálu řešení vyvolává metody v zařízeních.
  • Udržuje dvojčata zařízení pro všechna registrovaná zařízení. Dvojče zařízení ukládá hodnoty vlastností ohlášené zařízením. Dvojče zařízení také ukládá požadované vlastnosti nastavené na portálu řešení, aby si je zařízení při dalším připojení mohlo načíst.
  • Plánuje úlohy, které nastaví vlastnosti pro více zařízení, nebo vyvolává metody ve více zařízeních.

Azure Stream Analytics

V řešení pro vzdálené monitorování Azure Stream Analytics (ASA) odesílá zprávy zařízení přijaté službou IoT Hub do dalších back-endových komponent ke zpracování nebo uložení. Různé úlohy ASA provádějí konkrétní funkce na základě obsahu zpráv.

Úloha 1: Informace o zařízení filtruje z příchozího datového proudu zprávy s informacemi o zařízení a odesílá je do koncového bodu Centra událostí. Zařízení odesílá zprávy s informacemi o zařízení při spuštění a jako odezvu na příkaz SendDeviceInfo. Tato úloha používá následující definici dotazu k identifikaci zpráv device-info:

SELECT * FROM DeviceDataStream Partition By PartitionId WHERE  ObjectType = 'DeviceInfo'

Tato úloha odesílá svůj výstup do služby Event Hub k dalšímu zpracování.

Úloha 2: Pravidla vyhodnotí příchozí telemetrická data o teplotě a vlhkosti v porovnání s mezními hodnotami na daném zařízení. Mezní hodnoty se nastavují v editoru pravidel, který je dostupný na portálu řešení. Každý pár zařízení/hodnota se ukládá pomocí časového razítka v objektu blob, který služba Stream Analytics načítá jako referenční data. Úloha porovná všechny neprázdné hodnoty s nastavenými mezními hodnotami v zařízení. Pokud překročí podmínku ,> úloha vypíše událost alarmu , která indikuje, že došlo k překročení prahové hodnoty, a poskytne hodnoty zařízení, hodnoty a časového razítka. Tato úloha používá následující definice dotazu k identifikaci telemetrických zpráv, které mohou aktivovat alarm:

WITH AlarmsData AS 
(
SELECT
     Stream.IoTHub.ConnectionDeviceId AS DeviceId,
     'Temperature' as ReadingType,
     Stream.Temperature as Reading,
     Ref.Temperature as Threshold,
     Ref.TemperatureRuleOutput as RuleOutput,
     Stream.EventEnqueuedUtcTime AS [Time]
FROM IoTTelemetryStream Stream
JOIN DeviceRulesBlob Ref ON Stream.IoTHub.ConnectionDeviceId = Ref.DeviceID
WHERE
     Ref.Temperature IS NOT null AND Stream.Temperature > Ref.Temperature

UNION ALL

SELECT
     Stream.IoTHub.ConnectionDeviceId AS DeviceId,
     'Humidity' as ReadingType,
     Stream.Humidity as Reading,
     Ref.Humidity as Threshold,
     Ref.HumidityRuleOutput as RuleOutput,
     Stream.EventEnqueuedUtcTime AS [Time]
FROM IoTTelemetryStream Stream
JOIN DeviceRulesBlob Ref ON Stream.IoTHub.ConnectionDeviceId = Ref.DeviceID
WHERE
     Ref.Humidity IS NOT null AND Stream.Humidity > Ref.Humidity
)

SELECT *
INTO DeviceRulesMonitoring
FROM AlarmsData

SELECT *
INTO DeviceRulesHub
FROM AlarmsData

Úloha odesílá svůj výstup do centra událostí k dalšímu zpracování a ukládá podrobnosti jednotlivých upozornění do úložiště objektů blob, odkud může informace o upozorněních přečíst portál řešení.

Úloha 3: Telemetrická má v příchozím datovém proudu telemetrických dat dvě funkce. Za prvé odeslání všech telemetrických zpráv ze zařízení do trvalého úložiště objektů blob k dlouhodobému uložení. Za druhé výpočet průměrné, minimální a maximální hodnoty vlhkosti v pětiminutovém posuvném okně a odeslání těchto dat do úložiště objektu blob. Portál řešení načítá telemetrická data z úložiště objektů blob a vytváří z nich grafy. Tato úloha používá následující definici dotazu:

WITH 
    [StreamData]
AS (
    SELECT
        *
    FROM [IoTHubStream]
    WHERE
        [ObjectType] IS NULL -- Filter out device info and command responses
) 

SELECT
    IoTHub.ConnectionDeviceId AS DeviceId,
    Temperature,
    Humidity,
    ExternalTemperature,
    EventProcessedUtcTime,
    PartitionId,
    EventEnqueuedUtcTime,
    * 
INTO
    [Telemetry]
FROM
    [StreamData]

SELECT
    IoTHub.ConnectionDeviceId AS DeviceId,
    AVG (Humidity) AS [AverageHumidity],
    MIN(Humidity) AS [MinimumHumidity],
    MAX(Humidity) AS [MaxHumidity],
    5.0 AS TimeframeMinutes 
INTO
    [TelemetrySummary]
FROM [StreamData]
WHERE
    [Humidity] IS NOT NULL
GROUP BY
    IoTHub.ConnectionDeviceId,
    SlidingWindow (mi, 5)

Event Hubs

Úlohy služby ASA informace o zařízení a pravidla odesílají výstupní data do služby Event Hubs, aby bylo zajištěno spolehlivé předání do Procesoru událostí spuštěném ve webové úloze.

Azure Storage

Toto řešení využívá službu Azure Blob Storage k trvalému uchování všech nezpracovaných a souhrnných telemetrických dat ze zařízení v řešení. Portál načítá telemetrická data z úložiště objektů blob a vytváří z nich grafy. Za účelem zobrazení upozornění portál načítá z úložiště objektů blob data, která zaznamenává, když hodnoty telemetrie překračují nakonfigurované prahové hodnoty. Řešení také využívá úložiště objektů blob pro záznam prahových hodnot, které nastavíte na portálu řešení.

WebJobs

Webové úlohy v řešení kromě hostování simulátorů zařízení také hostují Procesor událostí spuštěný ve webové úloze Azure, který zpracovává odezvy na příkazy. Zprávy s odezvami na příkazy používá k aktualizaci historie příkazů zařízení (uložené v databázi Cosmos DB).

Cosmos DB

Řešení používá k ukládání informací o zařízeních připojených k řešení databázi Cosmos DB. Tyto informace zahrnují historii příkazů odeslaných do zařízení z portálu řešení a metod vyvolaných z portálu řešení.

Portál řešení

Portál řešení je webová aplikace nasazená jako součást předkonfigurovaného řešení. Klíčové stránky na portálu řešení jsou Řídicí panel a Seznam zařízení.

Řídicí panel

Tato stránka ve webové aplikaci používá ovládací prvky PowerBI v jazyce JavaScript (viz Úložiště vizuálních prvků PowerBI) k vizualizaci telemetrických dat ze zařízení. Řešení využívá telemetrickou úlohu ASA k zápisu telemetrických dat do úložiště objektů blob.

Seznam zařízení

Na této stránce portálu řešení můžete provádět následující akce:

  • Zřízení nového zařízení. Tato akce nastaví jedinečné ID zařízení a vygeneruje klíč pro ověřování. Zapisuje informace o zařízení do registru identity služby IoT Hub a databáze Cosmos DB specifické pro řešení.
  • Správa vlastností zařízení. Tato akce zahrnuje zobrazení existujících vlastností a aktualizaci novými vlastnostmi.
  • Odesílat příkazy do zařízení.
  • Zobrazit historii příkazů pro zařízení.
  • Povolení a zákaz zařízení.

Další kroky

Následující příspěvky na blogu TechNet poskytují další podrobnosti o předkonfigurovaném řešení pro vzdálené monitorování:

Další informace o sadě IoT Suite najdete v následujících článcích: