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

C++ 中的近距离报告器

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2017年6月23日

CPOL

8分钟阅读

viewsIcon

7484

这个紧急呼叫车队驾驶报告应用程序是使用 Intel® IoT Developer Kit、Intel® Edison 板、Intel® IoT Gateway、云平台、API 和其他技术编写的一系列物联网 (IoT) 代码示例练习的一部分。

获取新的 Intel® IoT Developer Kit,这是一个完整的软硬件解决方案,让开发者能够使用 Intel® Galileo 和 Intel® Edison 板创建令人兴奋的新解决方案。请访问 Intel® Developer Zone for IoT

引言

这个紧急呼叫车队驾驶报告应用程序是使用 Intel® IoT Developer Kit、Intel® Edison 板、Intel® IoT Gateway、云平台、API 和其他技术编写的一系列物联网 (IoT) 代码示例练习的一部分。

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

  • 连接 Intel® Edison 板或 Intel® IoT 网关,这些计算平台专为原型设计和生产物联网和可穿戴计算产品而设计。
  • 使用 Intel® IoT Developer Kit 中的 MRAA 和 UPM 与 Intel® Edison 板或 Arduino 101*(美国以外地区品牌为 Genuino 101*)板的 IO 和传感器存储库进行交互,Intel® IoT Developer Kit 是一个完整的软硬件解决方案,可帮助开发者探索物联网并实现创新项目。
  • 在 Intel® System Studio IoT Edition(用于 C/C++ 和 Java* 开发的 Eclipse* IDE)中运行这些代码示例,用于创建与传感器和执行器交互的应用程序,从而快速开始为 Intel® Edison 板或 Intel® Galileo 板开发软件。
  • 使用 Microsoft 的 Azure Redis Cache*、IBM Bluemix* 的 Redis Store* 或 Amazon Web Services (AWS)* 的 Redis* ElastiCache* 存储紧急呼叫数据,这些不同的云服务可用于连接物联网解决方案,包括数据分析、机器学习和各种生产力工具,以简化将传感器连接到云并快速启动您的物联网项目的过程。
  • 连接到使用 Microsoft Azure* 的 IoT Hub、IBM Bluemix* 的 IoT、Amazon Web Services (AWS)* 的 IoT、AT&T M2X*、GE 的 Predix* 或 SAP Cloud Platform* IoT 的服务器,这些是用于机器对机器通信的不同基于云的物联网平台。

它是什么

使用 Intel® Edison 板或 Intel® IoT Gateway,该项目可让您创建一个紧急呼叫车队驾驶报告器,该报告器

  • 监视 Grove* IR 距离中断器;
  • 监视 Grove* GPS;
  • 跟踪紧急呼叫并使用基于云的数据存储记录它们。

工作原理

该紧急呼叫报告器系统监视 Grove* IR 距离中断器的指向方向。

它还跟踪 GPS 坐标,并频繁更新以确保数据的准确性。

可选地,数据可以使用您自己的 Microsoft Azure*、IBM Bluemix*、AT&T M2X*、AWS*、Predix* 或 SAP* 帐户存储。

硬件要求

Grove* 交通与安全套件,包含

  1. 带有 Arduino* 扩展板的英特尔® Edison 开发板
  2. Grove Base Shield V2
  3. Grove IR 距离中断器
  4. Grove GPS

DFRobot* 适用于 Intel® Edison 的入门套件,包含

  1. 带 Arduino* breakout 板的 Intel® Edison 模块
  2. IR 距离传感器
  3. GPS
  4. I/O 扩展板

软件要求

  1. Intel® System Studio(用于 C/C++ 和 Java* 开发的 Eclipse IDE)
  2. Microsoft Azure*、IBM Bluemix*、AT&T M2X*、AWS*、Predix* 或 SAP* 帐户(可选)

如何设置

此示例已是 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* 兼容的 breakout 板,才能将所有 Grove 设备插入 Grove Base Shield V2。确保 Grove Base Shield V2 上的微小 VCC 开关设置为 5V

  1. 将 Grove 电缆的一端插入 Grove IR 距离中断器,将另一端连接到 Grove Base Shield V2 上的 D2 端口。
  2. 将 Grove 电缆的一端插入 Grove GPS,将另一端连接到 Grove Base Shield V2 上的 UART 端口。

连接 DFRobot* 传感器

您需要连接一个 DFRobot* IO 扩展板到一个兼容 Arduino* 的分线板,才能将所有 DFRobot* 设备插入 DFRobot* IO 扩展板。

  1. 将 DFRobot 电缆的一端插入 IR 距离传感器,将另一端连接到 IO 扩展板上的 D4 端口。

  2. 将连接好的 GPS 电缆 TX(白色)插入 IO 扩展板的 RX 引脚。将连接好的 GPS 电缆 RX(黑色)插入 IO 扩展板的 TX 引脚。将连接好的 GPS 电缆电源(红色)插入 IO 扩展板的任意 5V 引脚。将连接好的 GPS 电缆地线(较粗的黑色)插入 IO 扩展板的任意 GND。

英特尔® Edison 开发板设置

此示例还使用 **restclient-cpp** 库向远程数据服务器执行 REST 调用。代码可以在 **lib** 目录中找到。 **restclient-cpp** 库需要 **libcurl** 包,该包已默认安装在 Intel® Edison 板上。

Intel® IoT 网关设置

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

请按照此处的网站上的说明,确保您的 Intel® IoT Gateway 已设置好

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*、AT&T M2X*、AWS*、Predix* 或 SAP* 的基于云的物联网平台存储此示例程序生成的数据。

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

https://github.com/intel-iot-devkit/iot-samples-cloud-setup

数据存储服务器设置

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

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

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

为您的硬件套件配置示例

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

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

将 Intel® Edison 板连接到 Intel® System Studio

  1. 目标 SSH 连接选项卡上,右键点击您的设备,然后选择连接
    如果提示输入用户名和密码,则用户名是 **root**,密码是您在配置 Intel® Edison 板时指定的任何内容。

Intel® IoT 网关设置

您可以使用连接到 Arduino 101 的 Intel® IoT 网关运行此示例。

请按照此处的网站上的说明,确保您的 Intel® IoT Gateway 已设置好

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

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

使用云服务器运行示例

要运行带有可选后端数据存储的示例,您需要设置 SERVERAUTH_TOKEN 环境变量。您可以在 Intel® System Studio 中按如下方式进行操作

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

  2. 在 **C/C++ 远程应用程序** 下,单击 **close-call**。
    这会显示应用程序的信息。

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

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

现在,当您使用 运行 按钮运行程序时,它应该能够调用您的服务器以直接从 Intel® Edison 板或 Intel® IoT 网关保存数据。

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

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

这将使用 Cross G++ 编译器编译程序,使用 Cross G++ 链接器链接程序,将二进制文件传输到 Intel® Edison 板或 Intel® IoT 网关,然后在其板上执行。

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

重要提示:此软件为示例软件。它并非设计或 intended 用于任何医疗、救生或生命维持系统、交通运输系统、核系统,或任何其他可能导致严重伤害或死亡的关键任务应用程序。该软件可能未经充分测试,并可能包含错误或缺陷;它可能并非 intended 用于商业发布或适合商业发布。尚未获得该软件的任何监管批准,因此该软件可能未获得在某些国家或环境中使用认证。

© . All rights reserved.