Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Сенсорная телеметрия 2.0.1

Sensor Telemetry 2.0.1. Передача данных о температуре в Microsoft Azure IoT Hub и удаленный мониторинг данных из универсального приложения Windows. Цифровой ремастеринг!

История

ОБНОВЛЕНО:проект Sensor Telemetry был обновлен в цифровом виде. Обновлено 17 мая 2017 г. и переименовано в Sensor Telemetry 2.0.1

Введение

Обзор

В этом проекте мы будем контролировать датчик температуры ( MCP9808 ) и отправлять показания телеметрии в Microsoft Azure IoT Hub где Stream Analytics задание обработает сообщения и запишет их в Azure SQL База данных Таблица. Мы будем использовать мобильные приложения для просмотра истории показаний датчика.

Приложение

Проект содержит два универсальных приложения для Windows . (на универсальной платформе Windows, UWP), которые разделяют около 99% кода. Один нацелен на Raspberry Pi (или ARM), а другой - на платформы x86 или x64.

Версия приложения для Интернета вещей работает на Raspberry Pi и считывает температуру с MCP9808. Приложение отправляет события телеметрии в Azure IoT Hub и SignalR . центр. Эта версия также будет прослушивать команды из Azure IoT Hub.

Клиентская версия, запущенная на компьютере, будет прослушивать обновления датчиков от концентратора SignalR и отображать их на экране. Эта версия также будет отправлять команды версии IoT через Azure IoT Hub.

Технологии

Приложение в этом проекте основано на MVVM (Модель-Представление-Модель представления) и был построен с использованием Призмы библиотека и использует Prism.Unity для IoC (Инверсия управления) контейнер. Помимо этих библиотек, приложение использует агрегатор событий . найдено в Prism.Event библиотека для создания, насколько это возможно, чисто событийной архитектуры. Приложение использует эту библиотеку, чтобы внутренние модули могли обмениваться данными, оставаясь при этом слабосвязанными.

Приложение также использует SignalR в мобильном приложении Azure, чтобы несколько экземпляров приложения могли взаимодействовать друг с другом. Показания температуры «транслируются» всем клиентам, работающим удаленно, чтобы они могли получать показания датчика температуры для отображения в главном окне.

Архитектура

В основе приложения лежит библиотека MCP9808, созданная как отдельный проект, который можно повторно использовать в других приложениях. Этот проект разработан как библиотека UWP, которую можно использовать в любом приложении Windows 10. Если библиотека используется на устройстве без I2C bus библиотека не вернет ни одного объекта устройства. Этот подход можно использовать для «обнаружения» датчика и корректного игнорирования библиотеки, если датчик не найден.

В клиентском приложении UWP есть несколько блоков, составляющих все приложение. Представления - это видимые страницы, и каждое представление имеет модель представления, отвечающую за состояние представления. Есть три репозитория:настройки приложений ( IApplicationSettingsRepository ), отладочная информация ( IDebugConsoleRepository ), а также чтение и запись MCP9808 ( ITemperatureRepository ). Есть два конкретных класса, построенных вокруг ITemperatureRepository; один является оболочкой для библиотеки MCP9808, а другой - нулевым устройством, используемым, когда приложение не запущено на Raspberry Pi.

Класс Mcp9808TemperatureRepository контролирует MCP9808 с помощью службы таймера и публикует информацию о температуре через внутренний агрегатор событий каждый раз при изменении показаний температуры или состояния предупреждения. Новое событие отправляется только в том случае, если текущее показание отличается от предыдущего.

Существует также ряд служб, определенных в IBackgroundService которые выполняются в фоновом режиме для различных действий.

На диаграмме ниже показано высокоуровневое представление архитектуры и связи между различными блоками и службами.

Служба телеметрии

Эта служба отслеживает событие изменения температуры (через подписку) и отправляет сообщение в концентратор событий служебной шины Azure при каждом изменении температуры.

Служба таймера

Эта простая служба представляет собой таймер, который публикует событие каждые 500 миллисекунд и используется моделями представления для отображения текущего времени в представлении. Он также используется в Mcp9808TemperatureRepository считывать показания датчика раз в секунду. Аргументы события таймера включают счетчик, который можно использовать с функцией мода, чтобы легко разделить интервал таймера на желаемую длину. Для аргумента события существует метод IsMyInterval (интервал TimeSpan), который выполняет вычисления за вас. Все, что вам нужно сделать, это указать интервал как TimeSpan объект.

Служба мониторинга контактов для предупреждений

Эта служба отслеживает состояние контакта GPIO, подключенного к контакту предупреждения на MCP9808. Когда значение GPIO изменяется, эта служба публикует событие.

Светодиодная служба

Эта служба отвечает за включение и выключение светодиодов. Это осуществляется путем мониторинга (посредством подписки) события изменения температуры, которое также включает в себя состояние предупреждения MCP9808. При изменении статуса предупреждения индикаторы соответственно обновляются.

Служба мониторинга нажатия кнопок

Эта служба отслеживает вывод GPIO, подключенный к кнопке, и публикует событие, когда кнопка отпускается. Это событие регистрируется Mcp9808TemperatureRepository когда устройство находится в режиме ручного сброса предупреждений (режим прерывания MCP9808). События отладки также публикуются, поэтому состояние кнопки можно просмотреть в консоли отладки.

Служба ретрансляции уведомлений

Служба отслеживает концентратор SignalR и внутренний агрегатор событий и передает сообщения между ними на основе предопределенного сопоставления (с использованием EventRelayMap класс). По сути, это позволяет приложению знать только о внутренней системе событий и по-прежнему иметь возможность отправлять и получать сообщения с другими экземплярами приложения.

Консольная служба отладки

Эта служба отслеживает приложения (через подписку) на предмет событий отладки и добавляет их во внутреннюю коллекцию. Он также реализует DebugConsoleRepository , что позволяет представлению консоли отладки отображать эти события в приложении через модель представления.

Инициализация приложения

Когда приложение запускается, оно запускает StartPage сначала просмотр, который автоматически вызывает StartPageViewModel . Эта модель представления запускает все перед запуском в главное представление.

Начало работы

Требования к цепи

Для схемы требуется большая беспаечная макетная плата и, возможно, Т-образный коблер и ленточный кабель (я использую версию, продаваемую Vilros). Макетную плату можно купить во многих местах (я покупал ее в местных магазинах и на Amazon). В схеме также используется тактильный кнопочный переключатель мгновенного действия с четырьмя контактами. Есть много типов; любой подойдет. Наконец, в качестве датчика температуры я использую плату подключения высокоточного датчика температуры I2C MCP9808 от Adafruit.

Схема может быть построена без сапожника. Просто следуйте альтернативной макетной схеме в конце проекта.

Сборка схемы

Используйте это руководство для сборки схемы, используя схему, расположенную в нижней части страницы, в качестве руководства (примечание:цвета проводов не являются обязательными и были выбраны, чтобы упростить сборку схемы. следить, когда он будет построен).

Ниже приведены несколько фотографий схемы, которую я построил с помощью сапожника.


Требования Microsoft Azure

Если у вас нет учетной записи Azure, вам нужно будет ее создать. Вы можете получить кредит в размере 200 долларов США при создании учетной записи. Перейдите на azure.com . и нажмите ссылку БЕСПЛАТНЫЙ АККАУНТ . Если у вас уже есть учетная запись, войдите на портал по адресу portal.azure.com . .

ПРИМЕЧАНИЕ. Это руководство не является исчерпывающим руководством по настройке Azure. Возможно, вам потребуется ознакомиться с порталом, если вы никогда не использовали его раньше. Я постараюсь выполнить шаги, необходимые для этого проекта, насколько смогу.

Оставайтесь на портале Azure во время всего процесса установки. Вам придется возвращаться к нему много раз.

Настройка концентратора событий Azure IoT



Создать устройство

Центр Интернета вещей Azure требует, чтобы каждое устройство было уникально идентифицировано и зарегистрировано в концентраторе в целях безопасности. Устройство можно зарегистрировать с помощью Azure SDK и кода, но для этого проекта мы будем использовать Device Explorer, доступный в Azure SDK.




Настройка базы данных SQL Azure

Данные телеметрии будут храниться в базе данных SQL Azure. Используйте портал для создания базы данных.




Создание таблицы базы данных

Используемая таблица будет создана вручную. Развертывание Code First можно использовать в мобильных приложениях, но созданная таблица не будет совместима с Stream Analytics.




Создайте план службы приложений

План службы приложений необходим для создания службы приложений.

Создайте службу приложений ( Мобильное приложение )

Веб-сайт и концентратор SignalR будут работать со службой приложений.



Настройка Azure Stream Analytics

Задание Stream Analytics будет отслеживать события данных в Центре Интернета вещей и записывать их в базу данных SQL Server. Задание будет состоять из ввода (IoT Hub), вывода (таблица SQL) и запроса, который выбирает, какие поля использовать.





Настройка программного обеспечения

Используя ссылку на репозиторий внизу страницы, либо загрузите код в виде zip-файла, либо клонируйте репозиторий на свой компьютер и откройте проект в Visual Studio . .

Настроить и опубликовать мобильное приложение

Веб-приложение (расположенное в веб-папке) необходимо опубликовать в службе приложений Azure.



Введите учетные данные Центра Интернета вещей

Перед запуском приложения вам нужно будет ввести в код учетные данные устройства IoT Hub.



Введите URL мобильного приложения

URL-адрес мобильного приложения также необходимо ввести в код.

Подробнее:Sensor Telemetry 2.0.1


Производственный процесс

  1. Что такое калибровка датчика - определение и ее применение
  2. Датчик сердцебиения - работа и применение
  3. Что такое датчик O2?
  4. Библиотека Python датчика температуры TMP006 с использованием Raspberry pi,
  5. Датчик движения с использованием Raspberry Pi
  6. Датчик влажности почвы Raspberry Pi
  7. Тест датчика DS18B20
  8. Датчик температуры Raspberry Pi
  9. Сенсорная телеметрия 2.0.1
  10. Датчик эмоций / ЭЭГ