Sdílet prostřednictvím


Průvodce předkonfigurovaným řešením vzdáleného monitorování

Předkonfigurované řešení vzdáleného monitorování sady IoT Suite je implementace komplexního řešení monitorování pro více počítačů běžící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. Řešení můžete použít jako výchozí bod pro vlastní implementaci a přizpůsobit tak, aby vyhovovalo vašim konkrétním obchodním požadavkům.

Tento článek vás provede některými z klíčových prvků řešení pro vzdálené monitorování, abyste pochopili, jak funguje. Tyto znalosti vám pomůžou:

  • Odstraňování potíží v řešení.
  • Naplánujte přizpůsobení řešení tak, aby vyhovovalo vašim konkrétním požadavkům.
  • Navrhněte si vlastní řešení IoT, které využívá služby Azure.

Logická architektura

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

logická architektura

Mikroslužby a kontejnery Dockeru

Vzdálené monitorování je první z našich předkonfigurovaných řešení pro využití architektury mikroslužeb. Řešení je k dispozici v .NET i Javě. Mikroslužby se objevily jako převládající vzor pro dosažení škálování a flexibility (díky tomu, že umožňují škálování kontejnerů jednotlivě), aniž by došlo k ohrožení rychlosti vývoje. Mikroslužby přidělují kód a poskytují dobře definovaná rozhraní, což usnadňuje pochopení a méně monolitické řešení. Dále rozšiřuje možnosti pro partnery, kteří chtějí rozšířit naše aktuální akcelerátory řešení, aby vytvořili hotová řešení, která je možné zpeněžit.

Další informace o kontejnerech Dockeru

Simulovaná zařízení

V předkonfigurovaném řešení simulované zařízení představuje chladicí zařízení (například klimatizační jednotku budovy nebo zařízení). Při nasazení předkonfigurovaného řešení také automaticky zřídíte čtyři simulovaná zařízení, která běží ve webové úlohy Azure. Simulovaná zařízení usnadňují zkoumání chování řešení bez nutnosti nasazovat žádná 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 od zařízení do cloudu

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

Zpráva Popis
Startup Když se zařízení spustí, odešle zprávu s informacemi o zařízení obsahující informace o sobě do back-endu. Tato data zahrnují ID zařízení a seznam příkazů a metod, které zařízení podporuje.
Přítomnost Zařízení pravidelně odesílá zprávu o stavu , která hlásí, jestli zařízení dokáže zjistit přítomnost senzoru.
Telemetrie Zařízení pravidelně odesílá telemetrická zpráva, která hlásí simulované hodnoty teploty a vlhkosti shromážděné ze simulovaných senzorů zařízení.

Poznámka:

Řešení ukládá seznam příkazů podporovaných zařízením v databázi Cosmos DB, a ne ve dvojčeti zařízení.

Vlastnosti a dvojčata zařízení

Simulovaná zařízení odesílají do dvojčete v IoT hubu následující vlastnosti zařízení jako hlášené vlastnosti. Zařízení odesílá ohlášené vlastnosti při spuštění a v reakci na příkaz změnit stav zařízení nebo metodu.

Vlastnictví Účel
Config.TelemetryInterval (interval telemetrie) Frekvence (sekundy) zařízení odesílá telemetrii
Konfigurační.TeplotaPrůměrnáHodnota Určuje střední hodnotu pro telemetrii 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
Zařízení.VytvořenoČas Čas vytvoření zařízení v řešení
Device.StartupTime Čas spuštění zařízení
Zařízení.PosledníZměnaŽádoucíchVlastností Číslo verze poslední změny požadované vlastnosti
Device.Location.Zeměpisná šířka Zeměpisná šířka umístění zařízení
Device.Poloha.Zeměpisná délka Poloha zeměpisné délky zařízení
Systém.Výrobce Výrobce zařízení
Systém.ČísloModelu Číslo modelu zařízení
Systém.SériovéČíslo Sériové číslo zařízení
System.FirmwareVersion Aktuální verze firmwaru na zařízení
System.Platform Architektura platformy zařízení
System.Procesor Procesor, na kterém běží zařízení
Nainstalovaná paměť RAM Velikost paměti RAM nainstalovaná na zařízení

Simulátor tyto vlastnosti zasadí do simulovaných zařízení s ukázkovými hodnotami. Pokaždé, když simulátor inicializuje simulované zařízení, hlásí předdefinovaná metadata službě IoT Hub jako ohlášené vlastnosti. Ohlášené vlastnosti může aktualizovat pouze zařízení. Pokud chcete změnit hlášenou vlastnost, nastavte požadovanou vlastnost na portálu řešení. Je odpovědností zařízení, aby:

  1. Pravidelně načítat požadované vlastnosti z centra IoT.
  2. Aktualizujte konfiguraci na požadovanou hodnotu vlastnosti.
  3. Odeslat novou hodnotu zpět do uzlu jako nahlášenou vlastnost.

Na řídicím panelu řešení můžete pomocí požadovaných vlastností nastavit vlastnosti v zařízení pomocí dvojčete zařízení. Zařízení obvykle čte z centra požadovanou hodnotu vlastnosti, aby aktualizovalo svůj interní stav a ohlásilo změnu zpět jako ohlášenou vlastnost.

Poznámka:

Kód simulovaného zařízení používá pouze požadované vlastnosti Desired.Config.TemperatureMeanValue a Desired.Config.TelemetryInterval k aktualizaci ohlášených vlastností odesílaných zpět do ioT Hubu. Všechny ostatní požadavky na změnu požadovaných vlastností 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 centra IoT:

Metoda Popis
Zahájit aktualizaci firmwaru Dá zařízení pokyn, aby provedlo aktualizaci firmwaru.
Restartujte. Dá zařízení pokyn k restartování.
Obnovení továrního nastavení Dá zařízení pokyn, aby provedlo obnovení továrního nastavení.

Některé metody používají ohlášené vlastnosti k hlášení o průběhu. Například metoda InitiateFirmwareUpdate simuluje asynchronní spuštění aktualizace na zařízení. Metoda se vrátí okamžitě na zařízení, zatímco asynchronní úloha pokračuje v odesílání aktualizací stavu zpět na řídicí panel řešení pomocí ohlášených vlastností.

Příkazy

Simulovaná zařízení můžou zpracovávat následující příkazy (zprávy z cloudu na zařízení) odeslané z portálu řešení prostřednictvím centra IoT:

Příkaz Popis
PingDevice Odešle do zařízení příkaz ping a zkontroluje, jestli je aktivní.
Zahájit telemetrii Spustí zařízení odesílající telemetrii.
StopTelemetry Zastaví odesílání telemetrie ze zařízení.
ZměnaNastaveníBodovéTeploty Změní hodnotu množiny bodů, kolem které se generují náhodná data.
Diagnostická telemetrie Aktivuje simulátor zařízení, aby odeslal další hodnotu telemetrie (externalTemp).
ChangeDeviceState Změní rozšířenou vlastnost stavu zařízení a odešle ze zařízení 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 pokynech ke komunikaci typu Cloud-zařízení.

IoT Hub

IoT Hub ingestuje data odesílaná ze zařízení do cloudu a zpřístupňuje je úlohám Azure Stream Analytics (ASA). Každá úloha stream ASA používá samostatnou skupinu příjemců IoT Hubu ke čtení streamu zpráv z vašich zařízení.

Centrum IoT v řešení také:

  • Udržuje registr identit, který ukládá ID a ověřovací klíče všech zařízení povolených pro připojení k portálu. Zařízení můžete povolit a zakázat prostřednictvím registru identit.
  • Odesílá příkazy do zařízení jménem portálu řešení.
  • Spouští metody na vašich zařízeních v zastoupení portálu řešení.
  • Udržuje digitální dvojčata pro všechna registrovaná zařízení. Digitální dvojče ukládá hodnoty vlastností, které hlásí zařízení. Dvojče zařízení také ukládá požadované vlastnosti, které jsou nastaveny na portálu řešení, pro zařízení, aby si je mohlo při příštím připojení načíst.
  • Naplánuje úlohy k nastavení vlastností pro více zařízení nebo k vyvolání metod na více zařízeních.

Azure Stream Analytics

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

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

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

Tato úloha odešle výstup do centra událostí pro další zpracování.

Úloha 2: Pravidla vyhodnocují příchozí hodnoty telemetrie teploty a vlhkosti proti prahovým hodnotám jednotlivých zařízení. Prahové hodnoty jsou nastavené v editoru pravidel, který je k dispozici na portálu řešení. Každý pár zařízení/hodnota je uložený podle časového razítka v objektu blob, který Stream Analytics čte jako referenční data. Úloha porovná jakoukoli neprázdnou hodnotu s nastavenou prahovou hodnotou pro zařízení. Pokud překročí podmínku '>', úloha vypíše událost alarmu , která indikuje, že prahová hodnota je překročena a poskytuje hodnoty zařízení, hodnoty a časového razítka. Tato úloha používá následující definici dotazu k identifikaci zpráv telemetrie, které by měly 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 odešle svůj výstup do centra událostí pro další zpracování a uloží podrobnosti o každé výstraze do úložiště objektů blob, odkud může portál řešení přečíst informace o výstraze.

Úloha 3: Telemetrie pracuje s příchozím telemetrickým tokem zařízení dvěma způsoby. První odešle všechny telemetrické zprávy ze zařízení do úložiště blob pro dlouhodobé uložení. Druhý vypočítá průměrné, minimální a maximální hodnoty vlhkosti v rámci pětiminutového posuvného okna a odešle tato data do úložiště BLOB. Portál řešení načte telemetrická data z úložiště objektů blob a naplní 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)

Centra událostí

Informace o zařízení a pravidla úlohy ASA vypíše data do služby Event Hubs, aby spolehlivě předávaly procesoru událostí spuštěným ve webové úlohy.

Úložiště Azure

Řešení používá úložiště objektů blob v Azure k zachování všech nezpracovaných a souhrnných telemetrických dat ze zařízení v řešení. Portál načte telemetrická data z úložiště BLOBů a vyplní grafy. Aby portál řešení zobrazoval upozornění, načítá data z úložiště blobů, které zaznamenává chvíle, kdy telemetrické hodnoty překročily nakonfigurované hranice. Řešení také používá úložiště objektů blob k zaznamenání prahových hodnot, které jste nastavili na portálu řešení.

Webové úlohy

Kromě hostování simulátorů zařízení hostují webové úlohy v řešení také procesor událostí spuštěný ve webové úlohy Azure, který zpracovává odpovědi příkazů. Používá zprávy odpovědí příkazů k aktualizaci historie příkazů zařízení (uložené v databázi Cosmos DB).

Cosmos DB

Řešení používá databázi Cosmos DB k ukládání informací o zařízeních připojených k řešení. Tyto informace zahrnují historii příkazů odesílaný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í.

Palubní deska

Tato stránka ve webové aplikaci používá ovládací prvky JavaScriptu PowerBI (viz úložiště vizuálů PowerBI) k vizualizaci telemetrických dat ze zařízení. Řešení používá úlohu telemetrie ASA k zapisování telemetrických dat do úložiště Azure Blob.

Seznam zařízení

Na této stránce na portálu řešení můžete:

  • Zřízení nového zařízení Tato akce nastaví jedinečné ID zařízení a vygeneruje ověřovací klíč. Zapisuje informace o zařízení do registru identit služby IoT Hub i databáze Cosmos DB specifické pro řešení.
  • Správa vlastností zařízení Tato akce zahrnuje zobrazení existujících vlastností a aktualizaci pomocí nových vlastností.
  • Odeslání příkazů do zařízení
  • Zobrazte historii příkazů pro zařízení.
  • Povolte a zakažte zařízení.

Další kroky

Následující blogové příspěvky TechNetu poskytují podrobnější informace o předkonfigurovaném řešení vzdáleného monitorování:

V následujících článcích si můžete pokračovat v začátcích se sadou IoT Suite: