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.
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í:
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:
- Pravidelně načítat požadované vlastnosti z centra IoT.
- Aktualizujte konfiguraci na požadovanou hodnotu vlastnosti.
- 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í:
- IoT Suite – Pod kapotou – Vzdálené monitorování
- IoT Suite – Vzdálené monitorování – Přidání živých a simulovaných zařízení
V následujících článcích si můžete pokračovat v začátcích se sadou IoT Suite: