Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Предварительно настроенное решение для удаленного мониторинга IoT Suite — это реализация комплексного решения мониторинга для нескольких компьютеров, работающих в удаленных расположениях. Решение объединяет ключевые службы Azure для предоставления универсальной реализации бизнес-сценария. Решение можно использовать в качестве отправной точки для собственной реализации и настроить в соответствии с вашими бизнес-требованиями.
В этой статье рассматриваются некоторые ключевые элементы решения для удаленного мониторинга, позволяющие понять, как это работает. Эти знания помогут вам:
- Устраняйте неполадки в решении.
- Планирование настройки решения в соответствии с собственными требованиями.
- Разработка собственного решения Интернета вещей, использующего службы Azure.
Логическая архитектура
На следующей схеме описаны логические компоненты предварительно настроенного решения:
Микрослужбы и контейнеры Docker
Удаленный мониторинг — это первое из предварительно настроенных решений для использования архитектуры микрослужб. Решение доступно как в .NET , так и в Java. Микрослужбы появились как распространенный шаблон для достижения масштабирования и гибкости (позволяя контейнерам масштабироваться по отдельности), не нарушая скорость разработки. Микрослужбы отделяют код и предоставляют четко определенные интерфейсы, что упрощает понимание и менее монолитное решение. Он также расширяет возможности для партнеров, которые хотят расширить наши текущие акселераторы решений для создания готовых решений, которые можно монетизировать.
Дополнительные сведения о контейнерах Docker
Имитированные устройства
В предварительно настроенном решении имитированное устройство представляет устройство охлаждения (например, кондиционер здания или модуль обработки воздуха). При развертывании предварительно настроенного решения вы также автоматически подготавливаете четыре имитированных устройства, которые выполняются в веб-задании Azure. Имитированные устройства упрощают изучение поведения решения без необходимости развертывать физические устройства. Сведения о развертывании реального физического устройства см. в руководстве по подключению устройства к предварительно настроенным решениям для удаленного мониторинга .
Отправка сообщений с устройства в облако
Каждое имитированное устройство может отправлять следующие типы сообщений в Центр Интернета вещей:
Сообщение | Описание |
---|---|
Запуск | При запуске устройства в серверную часть отправляется сообщение информация об устройстве, содержащее сведения о нём. Эти данные включают идентификатор устройства и список команд и методов, поддерживаемых устройством. |
Присутствие | Устройство периодически отправляет сообщение о присутствии , чтобы сообщить, может ли устройство чувствовать наличие датчика. |
Телеметрия | Устройство периодически отправляет сообщение телеметрии , которое сообщает имитированные значения температуры и влажности, собранные с имитированных датчиков устройства. |
Замечание
Решение хранит список команд, поддерживаемых устройством в базе данных Cosmos DB, а не в двойнике устройства.
Свойства и двойники устройств
Имитированные устройства отправляют следующие свойства устройства двойнику в IoT Hub в виде сообщаемых свойств. Устройство отправляет сообщаемые свойства при запуске и в ответ на команду или метод "Изменить состояние устройства ".
Недвижимость | Цель |
---|---|
Настройка.ИнтервалТелеметрии | Частота (в секундах), с которой устройство отправляет данные телеметрии |
Конфигурация.СреднееЗначениеТемпературы | Указывает среднее значение для имитированной телеметрии температуры |
Устройство.DeviceID | Идентификатор, предоставленный или назначенный при создании устройства в решении |
Состояние устройства | Состояние, сообщаемое устройством |
Устройство.Время создания | Время создания устройства в решении |
Device.StartupTime | Время запуска устройства |
Device.LastDesiredPropertyChange | Номер версии последнего изменения желаемого свойства |
Устройство.Местоположение.Широта | Расположение широты устройства |
Device.Location.Долгота | Расположение долготы устройства |
System.Manufacturer | Изготовитель устройства |
System.ModelNumber | Номер модели устройства |
System.SerialNumber | Серийный номер устройства |
Версия прошивки системы | Текущая версия встроенного ПО на устройстве |
System.Platform | Архитектура платформы устройства |
Система.Процессор | Процессор под управлением устройства |
System.InstalledRAM | Объем ОЗУ, установленного на устройстве |
Симулятор задает эти свойства на имитированных устройствах с образцами значений. Каждый раз, когда симулятор инициализирует имитированное устройство, устройство сообщает предварительно определенные метаданные Центру Интернета вещей как сообщаемые свойства. Сообщаемые свойства можно обновлять только устройством. Чтобы изменить сообщаемое свойство, необходимо задать требуемое свойство на портале решения. Ответственность устройства заключается в следующем:
- Периодически извлекает требуемые свойства из Центра Интернета вещей.
- Обновите конфигурацию с требуемым значением свойства.
- Отправьте новое значение обратно в концентратор в качестве сообщаемого свойства.
На панели мониторинга решения можно использовать требуемые свойства для задания свойств на устройстве с помощью двойника устройства. Как правило, устройство считывает желаемое значение свойства из концентратора, чтобы обновить свое внутреннее состояние и сообщить об изменении, представив его в качестве сообщаемого свойства.
Замечание
Код имитированного устройства использует только свойства Desired.Config.TemperatureMeanValue и Desired.Config.TelemetryInterval , чтобы обновить сообщаемые свойства, отправленные обратно в Центр Интернета вещей. Все остальные запросы на изменение свойств игнорируются на имитированном устройстве.
Методы
Имитированные устройства могут обрабатывать следующие методы (прямые методы), вызываемые на портале решения через Центр Интернета вещей:
Метод | Описание |
---|---|
Инициировать обновление прошивки | Указывает устройству выполнить обновление встроенного ПО |
Перезагрузка | Указывает устройству перезагрузить |
FactoryReset | Указывает устройству выполнить сброс к заводским настройкам |
Некоторые методы используют сообщаемые свойства для отчета о ходе выполнения. Например, метод InitiateFirmwareUpdate имитирует выполнение обновления асинхронно на устройстве. Метод возвращается сразу же на устройстве, а асинхронная задача продолжает отправлять обновления состояния обратно на панель мониторинга решения с помощью указанных свойств.
Команды
Имитированные устройства могут обрабатывать следующие команды (сообщения из облака на устройство), отправленные с портала решения через Центр Интернета вещей:
командование | Описание |
---|---|
PingDevice | Отправляет запрос связи на устройство, чтобы проверить, что он жив |
Запуск телеметрии | Запуск устройства, отправляющее данные телеметрии |
Остановить Телеметрию | Останавливает отправку данных телеметрии устройства |
ИзменитьТемпературуУстановки | Изменяет значение заданной точки, вокруг которого создаются случайные данные |
Диагностическая телеметрия | Активирует симулятор устройства для отправки дополнительного значения телеметрии (externalTemp) |
ИзменитьСостояниеУстройства | Изменяет свойство расширенного состояния для устройства и отправляет сообщение сведений об устройстве с устройства. |
Замечание
Сравнение этих команд (сообщений из облака на устройство) и методов (прямых методов) см. в руководстве по обмену данными между устройствами.
Центр Интернета вещей
Центр Интернета вещей принимает данные, отправленные с устройств в облако, и делает его доступными для заданий Azure Stream Analytics (ASA). Каждое задание STREAM ASA использует отдельную группу потребителей Центра Интернета вещей для чтения потока сообщений с устройств.
Хаб Интернета вещей в решении также:
- Поддерживает реестр удостоверений, в который хранятся идентификаторы и ключи проверки подлинности всех устройств, разрешенных для подключения к порталу. Вы можете включить и отключить устройства через реестр удостоверений.
- Отправляет команды на устройства от имени портала решения.
- Вызывает методы на ваших устройствах от имени портала решений.
- Поддерживает цифровые двойники устройств для всех зарегистрированных устройств. Цифровой двойник устройства сохраняет значения свойств, сообщаемые устройством. Двойник устройства также сохраняет требуемые свойства, установленные в портале управления решением, чтобы устройство получило их при следующем подключении.
- Планирует задания для установки свойств на нескольких устройствах или вызова методов на нескольких устройствах.
Azure Stream Analytics
В решении удаленного мониторинга Azure Stream Analytics (ASA) отправляет сообщения устройства, полученные центром Интернета вещей, на другие серверные компоненты для обработки или хранения. Различные задания ASA выполняют определенные функции на основе содержимого сообщений.
Задание 1. Сведения об устройстве фильтруют сообщения об устройстве из входящего потока сообщений и отправляют их в конечную точку Концентратора событий. Устройство отправляет информационные сообщения об устройстве при запуске и в ответ на команду SendDeviceInfo . Это задание использует следующее определение запроса для идентификации сообщений об устройстве:
SELECT * FROM DeviceDataStream Partition By PartitionId WHERE ObjectType = 'DeviceInfo'
Это задание отправляет выходные данные в Концентратор событий для дальнейшей обработки.
Задание 2. Правила оценивают входящие значения телеметрии температуры и влажности по пороговым значениям для каждого устройства. Пороговые значения задаются в редакторе правил, доступном на портале решения. Каждая пара устройств и значений хранится меткой времени в большом двоичном объекте, который Stream Analytics считывает в качестве ссылочных данных. Задание сравнивает любое непустое значение с заданным пороговым значением для устройства. Если оно превышает условие ">", задание выводит событие сигнала тревоги, указывающее, что пороговое значение превышено, и предоставляет устройство, значение и метку времени. Это задание использует следующее определение запроса для идентификации сообщений телеметрии, которые должны активировать тревогу:
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
Задание отправляет выходные данные в Концентратор событий для дальнейшей обработки и сохраняет сведения о каждом оповещении в хранилище BLOB, откуда портал решения может считывать информацию об оповещении.
Задание 3. Телеметрия обрабатывает входящий поток телеметрии устройства двумя способами. Первый отправляет все телеметрические сообщения с устройств в постоянное хранилище блобов для долгосрочного хранения. Второй вычисляет средние, минимальные и максимальные значения влажности в течение пяти минут скользящего окна и отправляет эти данные в blob-хранилище. Портал решения считывает данные телеметрии из хранилища BLOB-объектов, чтобы заполнить диаграммы. Это задание использует следующее определение запроса:
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)
Центры событий
Сведения и правила заданий ASA передают данные в Центры событий, чтобы надежно перенаправляться на обработчик событий, запущенный в веб-задании.
Служба хранилища Azure
Решение использует хранилище BLOB-объектов Azure для сохранения всех необработанных и суммированных данных телеметрии с устройств в решении. Портал считывает данные телеметрии из хранилища объектов BLOB для заполнения диаграмм. Для отображения оповещений портал решения считывает данные из хранилища блобов, где записывается, когда значения телеметрии превысили настроенные пороговые значения. Решение также использует хранилище объектов Blob для записи пороговых значений, заданных на портале решения.
ВебДжобс
Помимо размещения симуляторов устройств, веб-задания в решении также размещают обработчик событий , работающий в веб-задании Azure, который обрабатывает ответы команд. Он использует сообщения ответа команд для обновления журнала команд устройства (хранящегося в базе данных Cosmos DB).
Cosmos DB
Решение использует базу данных Cosmos DB для хранения сведений об устройствах, подключенных к решению. Эти сведения включают журнал команд, отправленных на устройства с портала решения, и методов, вызываемых на портале решения.
Портал решений
Портал решения — это веб-приложение, развернутое как часть предварительно настроенного решения. Ключевые страницы на портале решения — это панель мониторинга и список устройств.
Панель управления
Эта страница в веб-приложении использует элементы управления Javascript PowerBI (см. репозиторий PowerBI-visuals) для визуализации данных телеметрии с устройств. Решение использует задание телеметрии ASA для записи данных телеметрии в хранилище BLOB-объектов.
Список устройств
На этой странице на портале решения можно:
- Подготовьте новое устройство. Это действие задает уникальный идентификатор устройства и создает ключ проверки подлинности. Он записывает сведения об устройстве как в реестр удостоверений Центра Интернета вещей, так и в базу данных Cosmos DB для конкретного решения.
- Управление свойствами устройства. Это действие включает просмотр существующих свойств и обновление с новыми свойствами.
- Отправка команд на устройство.
- Просмотрите журнал команд для устройства.
- Включение и отключение устройств.
Дальнейшие действия
В следующих записях блога TechNet содержатся дополнительные сведения о предварительно настроенных решениях для удаленного мониторинга:
- IoT Suite — под капотом — удаленный мониторинг
- IoT Suite — удаленный мониторинг — добавление динамических и имитированных устройств
Чтобы продолжить работу с IoT Suite, ознакомьтесь со следующими статьями: