65.9K
CodeProject 正在变化。 阅读更多。
Home

C++ 中的设备活动监视器

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2017年3月27日

CPOL

8分钟阅读

viewsIcon

11741

这款车间设备活动监控应用程序是使用英特尔® 物联网开发者套件、英特尔® 物联网网关、英特尔® 爱迪生开发板、云平台、API 及其他技术进行的一系列英特尔® 物联网(IoT)操作指南代码示例练习的一部分。

获取新的英特尔® 物联网开发者套件,这是一个完整的硬件和软件解决方案,允许开发者使用英特尔® 嵌入式开发板和英特尔® 爱迪生开发板创建激动人心的新解决方案。请访问 英特尔® 物联网开发者专区

引言

这款车间设备活动监控应用程序是使用英特尔® 物联网开发者套件、英特尔® 物联网网关、英特尔® 爱迪生开发板、云平台、API 及其他技术进行的一系列英特尔® 物联网(IoT)操作指南代码示例练习的一部分。

通过此练习,开发人员将学习如何:

  • 连接英特尔® 爱迪生开发板或英特尔® 物联网网关,这是为原型设计和生产物联网及可穿戴计算产品而设计的计算平台。
  • 使用英特尔® 物联网开发者套件中的 MRAA 和 UPM 接口连接英特尔® 爱迪生开发板或 Arduino 101*(美国以外品牌为 Genuino 101*)开发板的 IO 和传感器存储库,这是一个完整的硬件和软件解决方案,可帮助开发者探索物联网并实现创新项目。
  • 在英特尔® 系统工作室物联网版(Eclipse IDE for C/C++ and Java* development)中运行这些代码示例,用于创建与传感器和执行器交互的应用程序,从而快速开始为英特尔® 爱迪生开发板或英特尔® 嵌入式开发板开发软件。
  • 使用微软的 Azure Redis Cache*、IBM Bluemix* 的 Redis Store* 或亚马逊网络服务(AWS)* 的 Redis* ElastiCache* 存储设备使用数据,这些是用于连接物联网解决方案的不同云服务,包括数据分析、机器学习以及各种提高生产力的工具,以简化将传感器连接到云并快速启动和运行您的物联网项目的过程。
  • 设置基于 MQTT 的服务器,使用微软 Azure* 的 IoT Hub、IBM Bluemix* 的 IoT 或亚马逊网络服务(AWS)* 的 IoT,这些是基于行业标准 MQTT 协议的不同云设备到设备消息服务。

它是什么

使用英特尔® 爱迪生开发板,该项目允许您创建一个车间设备活动监控器,它

  • 通过监控声音和振动传感器来跟踪设备使用情况。
  • 在设备使用时提供视觉通知。
  • 使用基于云的存储来记录设备使用数据。

工作原理

此设备活动监控器会检查声音和振动。

如果两个参数都超过预设阈值,显示屏将亮起以指示设备正在使用中。

一旦设备不再使用,监控器将清除显示。

可选地,可以使用英特尔® 物联网示例数据存储或在您自己的微软 Azure*、IBM Bluemix* 或 AWS* 账户中运行的 MQTT 服务器上存储设备使用启动/停止事件。

硬件要求

Grove* 入门套件,包含

  1. 带有 Arduino* 扩展板的英特尔® Edison 开发板
  2. Grove Base Shield V2
  3. Grove 声音传感器
  4. Grove 压电振动传感器
  5. Grove RGB LCD

DFRobot* 英特尔® 爱迪生开发板入门套件,包含

  1. 带有 Arduino* 扩展板的英特尔® Edison 开发板
  2. 模拟声音传感器.
  3. 数字振动传感器
  4. LCD 键盘 Shield

软件要求

  1. Intel® System Studio(用于 C/C++ 和 Java* 开发的 Eclipse IDE)
  2. 微软 Azure*、IBM Bluemix* 或 AWS* 账户(可选)

如何设置

此示例已是 Intel® System Studio 中包含的物联网示例之一。要开始使用它,请按照以下步骤操作

  1. 从主菜单中,选择 Intel® IoT > 导入 IoT 示例

  2. 展开 **C++ > 操作指南代码示例 > 设备活动监控器** 的树视图,然后点击 **导入示例**。

  3. 从选择窗口中选择您的开发板,然后选择 下一步

  4. 从选择项目类型窗口中选择 Intel® IoT C/C++ 项目,然后单击 下一步

  5. 从选择目标操作系统下拉菜单中选择 Yocto,然后单击 下一步

  6. 下一个选项卡将要求输入连接名称和目标名称。如果您不知道这些,请单击 搜索目标

  7. 从下拉列表中选择您的 Edison。选择 确定

  8. 您的连接名称和目标名称应该已填写。选择 完成

  9. 将打开一个新窗口,您需要为项目选择一个名称并单击 下一步

  10. 您的项目源文件现在默认在 IDE 的左上方可用。

连接 Grove* 传感器

您需要将 Grove* Base Shield V2 连接到 Arduino* 兼容的扩展板,才能将所有 Grove 设备插入 Grove Base Shield V2。确保将 Grove Base Shield V2 上的微型 VCC 开关设置为 5V

  1. 将 Grove 电缆的一端插入 Grove 声音传感器,另一端连接到 Grove Base Shield V2 上的 AO 端口。
  2. 将 Grove 电缆的一端插入 Grove 压电振动传感器,另一端连接到 Grove Base Shield V2 上的 A2 端口。
  3. 将 Grove 电缆的一端插入 Grove* RGB LCD,另一端连接到 Grove Base Shield V2 上的任何 I2C 端口。

连接 DFRobot* 传感器

您需要将 LCD Keypad Shield 连接到与 Arduino* 兼容的 breakout 板,才能将所有 DFRobot* 设备插入 LCD Keypad Shield。

  1. 将 DFRobot* 电缆的一端插入模拟声音传感器,然后将另一端连接到 LCD 键盘屏蔽上的 A3 端口。

  2. 将 DFRobot* 电缆的一端插入数字振动传感器,然后将另一端连接到 LCD 键盘屏蔽上的 A2 端口。

英特尔® Edison 开发板设置

此示例使用 **restclient-cpp** 库向远程数据服务器执行 REST 调用。代码位于 **lib** 目录中。**restclient-cpp** 库需要 **libcurl** 包,该包已默认安装在英特尔® 爱迪生开发板上。

Intel® IoT 网关设置

您可以使用连接到 Arduino 101*(在美国以外品牌为 Genuino 101*)的 Intel® IoT 网关运行此示例。

请确保您的 Intel® IoT 网关已使用 Intel® IoT 网关软件套件设置,请按照此处网站上的说明操作

https://software.intel.com/en-us/getting-started-with-intel-iot-gateways-and-iotdk

Arduino 101*(美国以外品牌为 Genuino 101*)需要安装 Firmata* 固件。如果您的网关已安装 IMRAA,则会自动完成。否则,请手动将 StandardFirmata 或 ConfigurableFirmata 草图安装到您的 Arduino 101*(美国以外品牌为 Genuino 101*)上。

数据存储服务器设置

可选地,您可以将此示例程序生成的数据存储在后端数据库中,该数据库使用 Microsoft Azure*、IBM Bluemix* 或 AWS* 部署,以及 Node.js* 和 Redis* 数据存储。

有关如何设置自己的云数据服务器的信息,请访问:

https://github.com/intel-iot-devkit/intel-iot-examples-datastore

MQTT 服务器设置

您还可以选择使用 MQTT,一种机器对机器消息服务器,来存储此示例程序生成的数据。您可以使用 MQTT 连接到微软 Azure*、IBM Bluemix* 或 AWS*。

有关如何连接到您自己的云 MQTT 消息服务器的信息,请访问

https://github.com/intel-iot-devkit/intel-iot-examples-mqtt

为您的硬件套件配置示例

要为正在使用的特定硬件套件(Grove* 或 DFRobot*)配置示例

  1. 从主菜单中,选择 **项目 > 属性** 对话框。
  2. 展开 C/C++ General 部分。
    点击 **路径和符号** 子部分,然后点击 **符号** 选项卡。
  3. 现在点击 **GNU C++**,然后点击 **添加** 按钮。
  4. 在 **名称** 字段中,输入“INTEL_IOT_KIT”。在 **值** 字段中,输入“GROVEKIT”(这是默认值)或“DFROBOTKIT”,具体取决于您要使用的硬件套件。
  5. 现在将显示您的新名称符号和值。点击 **确定**。
  6. 将出现另一个对话框,询问是否重新构建项目。点击 **确定**。

将 Intel® Edison 板或 Intel® IoT 网关连接到 Intel® System Studio

  1. 目标 SSH 连接选项卡上,右键点击您的设备,然后选择连接

如果提示输入用户名和密码,则用户名为 root,密码是您在配置英特尔® Edison 开发板时指定的密码。

使用云服务器运行示例

要运行带有可选后端数据存储的示例,您需要设置 SERVERAUTH_TOKEN 环境变量。您可以在 Eclipse 中执行此操作,方法如下

  1. 运行菜单中,选择运行配置
    显示运行配置对话框。

  2. C/C++ 远程应用程序下,点击门铃
    这会显示应用程序的信息。

  3. 应用程序执行前要执行的命令 字段中,添加以下环境变量,但使用与您自己的设置对应的服务器和身份验证令牌

     chmod 755 /tmp/equipment-activity;export SERVER="http://intel-examples.azurewebsites.net/logger/equipment-activity"; export AUTH_TOKEN="YOURTOKEN"
  4. 点击应用保存您的新环境变量。

现在,当您使用 **运行** 按钮运行程序时,它应该能够从英特尔® 爱迪生开发板或英特尔® 物联网网关调用您的服务器来保存数据。

在 Intel® Edison 板或 Intel® IoT 网关上运行代码

当您准备好运行示例时,单击 Intel® System Studio 顶部菜单栏中的 运行

这将使用交叉 G++ 编译器编译程序,使用交叉 G++ 链接器链接它,将二进制文件传输到英特尔® 爱迪生开发板或英特尔® 物联网网关,然后在板上执行它。

运行程序后,您应该会看到与下图类似的输出。

成功输出应类似于下图所示。

LCD 应该会显示 `ready`。

重要声明:本软件为示例软件。它并非设计或意图用于任何医疗、生命支持或生命维持系统、运输系统、核系统或任何其他关键任务应用,在这些应用中系统故障可能导致严重伤害或死亡。该软件可能未经全面测试,并且可能包含错误或缺陷;它可能并非用于商业发布或不适合商业发布。该软件未获得任何监管批准,因此可能未获准在某些国家或地区使用。

© . All rights reserved.