亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

传感器遥测 2.0.1

Sensor Telemetry 2.0.1 将温度数据传送到 Microsoft Azure IoT 中心,并从 Windows 通用应用程序远程监控数据。数字修复!

故事

更新:传感器遥测项目已经过数字修复。 2017 年 5 月 17 日更新并更名为 Sensor Telemetry 2.0.1

简介

概览

在这个项目中,我们将监控一个温度传感器 (MCP9808 ) 并将遥测读数发送到 Microsoft Azure IoT 中心 流分析 作业将处理消息并将它们写入 Azure SQL 数据库 桌子。我们将使用移动应用 查看传感器读数的历史记录。

应用程序

该项目包含两个通用 Windows 应用程序 (在通用 Windows 平台,UWP 上)共享大约 99% 的代码。一个针对Raspberry Pi(或ARM),另一个针对x86 或x64 平台。

该应用程序的 IoT 版本在 Raspberry Pi 上运行并从 MCP9808 读取温度。应用程序将遥测事件发送到 Azure IoT 中心和 SignalR 中心。此版本还将侦听来自 Azure IoT 中心的命令。

在计算机上启动的客户端版本将侦听来自 SignalR 集线器的传感器更新并将其显示在屏幕上。此版本还将通过 Azure IoT Hub 向 IoT 版本发送命令。

技术

本项目中的应用基于MVVM (Model-View-ViewModel) 模式并使用 Prism 构建 库并使用 Prism.Unity IoC (控制反转)容器。除了这些库之外,应用程序还使用 Event AggregatorPrism.Event 中找到 库尽可能地创建一个纯事件驱动的架构。应用程序使用这个库来允许内部模块在保持松散耦合的同时进行通信。

该应用程序还在 Azure 移动应用程序上使用 SignalR 来允许应用程序的多个实例相互通信。温度读数会“广播”给所有远程运行的客户端,以便他们可以接收温度传感器读数并显示在主视图中。

架构

该应用程序的核心是作为独立项目构建的 MCP9808 库,可以在其他应用程序中重复使用。该项目是作为 UWP 库开发的,可以在任何 Windows 10 应用程序中使用。如果在没有 I2C 的设备上使用库 总线库不会返回任何设备对象。这种方法可用于“检测”传感器,并在未找到传感器时优雅地忽略库。

在 UWP 客户端应用程序中,有几个块组成了整个应用程序。视图是可见的页面,每个视图都有一个负责视图状态的视图模型。共有三个存储库:应用程序设置 (IApplicationSettingsRepository )、调试信息 (IDebugConsoleRepository ) 和读写 MCP9808 (ITemperatureRepository )。围绕 ITemperatureRepository 构建了两个具体的类; 一个封装了 MCP9808 库,一个是应用程序不在 Raspberry Pi 上运行时使用的空设备。

Mcp9808TemperatureRepository 使用定时器服务监控 MCP9808,并在每次温度读数或警报状态发生变化时通过内部事件聚合器发布温度信息。仅当当前读数与先前读数不同时才会发送新事件。

还有一系列由IBackgroundService定义的服务 在后台运行的各种活动。

下图描绘了架构的高级视图以及各种块和服务之间的连接。

遥测服务

此服务监控温度变化事件(通过订阅),并在温度发生变化时向 Azure 服务总线事件中心发送消息。

定时器服务

这个简单的服务是一个计时器,它每 500 毫秒发布一个事件,并被视图模型用来在视图上显示当前时间。 Mcp9808TemperatureRepository 也使用它 每秒读取一次传感器。定时器事件参数包括一个计数器,可与 mod 函数一起使用,以轻松地将定时器间隔划分为所需的长度。事件参数上有一个名为 IsMyInterval(TimeSpan interval) 的方法可以为您进行数学计算。您需要做的就是将间隔提供为 TimeSpan 对象。

Alert Pin 监控服务

此服务监控连接到 MCP9808 上警报引脚的 GPIO 引脚的状态。当GPIO的值发生变化时,该服务发布一个事件。

LED 服务

此服务负责打开和关闭 LED。这是通过监控(通过订阅)温度变化事件来完成的,该事件还包括 MCP9808 的警报状态。当警报状态发生变化时,LED 会相应地更新。

按钮监控服务

此服务监控连接到按钮的 GPIO 引脚,并在按钮释放时发布事件。此事件由 Mcp9808TemperatureRepository 获取 当器件处于手动警报复位模式(MCP9808 中断模式)时。调试事件也被发布,以便可以在调试控制台中查看按钮的状态。

通知中继服务

该服务监控 SignalR 集线器和内部事件聚合器,并根据预定义的映射(使用 EventRelayMap 班级)。这实质上允许应用程序只知道内部事件系统,并且仍然能够与应用程序的其他实例发送和接收消息。

调试控制台服务

此服务监视应用程序(通过订阅)以调试事件并将它们添加到内部集合中。它还实现了DebugConsoleRepository ,它允许调试控制台视图通过视图模型在应用程序中显示这些事件。

应用初始化

当应用程序启动时,它会启动 StartPage 首先查看,它会自动调用 StartPageViewModel .这个视图模型在启动到主视图之前让所有东西都启动并运行。

入门

电路要求

该电路需要一块大型无焊面包板,以及可选的 T 形鞋匠和带状电缆(我使用 Vilros 出售的版本)。面包板可以从很多地方获得(我从当地商店和亚马逊购买)。该电路还使用了一个带有四个引脚的瞬时触觉按钮开关。有很多种;任何人都可以。最后,对于温度传感器,我使用了 Adafruit 的 MCP9808 高精度 I2C 温度传感器分线板。

电路可以在没有鞋匠的情况下构建。只需按照项目结束时的备用面包板图即可。

电路组装

使用本指南组装电路,同时使用位于页面底部附近的图表作为指南(注意:电线的颜色是可选的,并且已被选择以帮助使电路易于组装构建时跟随)。

以下是我使用补鞋匠建造的电路的一些照片。


Microsoft Azure 要求

如果您没有 Azure 帐户,则需要创建一个。开设帐户后,您可以获得 200 美元的信用额度。转到 azure.com 然后点击免费帐户链接 .如果您已有帐户,请通过 portal.azure.com 登录门户 .

注意:本指南不是配置 Azure 的详尽指南。如果您以前从未使用过该门户,则可能需要熟悉它。我将尽我所能完成此项目所需的步骤。

在整个设置过程中让自己登录 Azure 门户。您将需要多次参考它。

Azure IoT 事件中心设置



创建设备

为了安全起见,Azure 物联网中心要求在中心内唯一标识和注册每个设备。可以使用 Azure SDK 和代码注册设备,但对于此项目,我们将使用 Azure SDK 中提供的设备资源管理器。




Azure SQL 数据库设置

遥测数据将存储在 Azure SQL 数据库中。使用门户创建数据库。




创建数据库表

使用的表将手动创建。 Code First 部署可以在移动应用中使用,但创建的表将与流分析不兼容。




创建应用服务计划

创建应用服务需要应用服务计划。

创建应用服务 ( 移动应用 )

网站和 SignalR 中心将与应用服务一起运行。



Azure 流分析设置

流分析作业将监视 IoT 中心上的数据事件并将它们写入 SQL Server 数据库。作业将由输入(IoT 中心)、输出(SQL 表)和用于选择要使用的字段的查询组成。





配置软件

使用页面底部的存储库链接,将代码下载为 zip 文件或将存储库克隆到您的计算机并在 Visual Studio 中打开该项目 .

配置和发布移动应用

需要将 Web 应用程序(位于 Web 文件夹中)发布到 Azure 应用服务。



输入 IoT 中心凭据

在运行应用程序之前,您需要在代码中输入您的 IoT 中心设备凭据。



输入移动应用网址

移动应用网址也需要输入到代码中。

阅读更多详情:传感器遥测2.0.1


制造工艺

  1. 什么是传感器校准-定义及其应用
  2. 心跳传感器 – 工作和应用
  3. 什么是 O2 传感器?
  4. TMP006 温度传感器 Python 库,使用 Raspberry pi,
  5. 使用 Raspberry Pi 的运动传感器
  6. Raspberry Pi 土壤湿度传感器
  7. 测试 DS18B20 传感器
  8. Raspberry Pi 温度传感器
  9. 传感器遥测 2.0.1
  10. 情绪传感器/脑电图
  11. UnifiedWater v1
  12. 双极步进电机库