C++ 中的近距离报告器
这个紧急呼叫车队驾驶报告应用程序是使用 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* 交通与安全套件,包含
- 带有 Arduino* 扩展板的英特尔® Edison 开发板
- Grove Base Shield V2
- Grove IR 距离中断器
- Grove GPS
DFRobot* 适用于 Intel® Edison 的入门套件,包含
软件要求
- Intel® System Studio(用于 C/C++ 和 Java* 开发的 Eclipse IDE)
- Microsoft Azure*、IBM Bluemix*、AT&T M2X*、AWS*、Predix* 或 SAP* 帐户(可选)
如何设置
此示例已是 Intel® System Studio 中包含的物联网示例之一。要开始使用它,请按照以下步骤操作
- 从主菜单中,选择 Intel® IoT > 导入 IoT 示例。
- 展开 **C++ > 如何编写示例 > 紧急呼叫报告器** 的树状视图,然后单击 **导入示例**。
- 从选择窗口中选择您的开发板,然后选择 下一步。
- 从选择项目类型窗口中选择 Intel® IoT C/C++ 项目,然后单击 下一步。
- 从选择目标操作系统下拉菜单中选择 Yocto,然后单击 下一步。
- 下一个选项卡将要求输入连接名称和目标名称。如果您不知道这些,请单击 搜索目标。
- 从下拉列表中选择您的 Edison。选择 确定。
- 您的连接名称和目标名称应该已填写。选择 完成。
- 将打开一个新窗口,您需要为项目选择一个名称并单击 下一步。
- 您的项目源文件现在默认在 IDE 的左上方可用。
连接 Grove* 传感器
您需要将 Grove* Base Shield V2 连接到与 Arduino* 兼容的 breakout 板,才能将所有 Grove 设备插入 Grove Base Shield V2。确保 Grove Base Shield V2 上的微小 VCC 开关设置为 5V。
- 将 Grove 电缆的一端插入 Grove IR 距离中断器,将另一端连接到 Grove Base Shield V2 上的 D2 端口。
- 将 Grove 电缆的一端插入 Grove GPS,将另一端连接到 Grove Base Shield V2 上的 UART 端口。
连接 DFRobot* 传感器
您需要连接一个 DFRobot* IO 扩展板到一个兼容 Arduino* 的分线板,才能将所有 DFRobot* 设备插入 DFRobot* IO 扩展板。
-
将 DFRobot 电缆的一端插入 IR 距离传感器,将另一端连接到 IO 扩展板上的 D4 端口。
-
将连接好的 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*)配置示例
- 从主菜单中,选择 **项目 > 属性** 对话框。
- 展开 C/C++ General 部分。
单击 **路径和符号** 子部分,然后单击 **符号** 选项卡。 - 现在单击 **GNU C++**,然后单击 **添加** 按钮。
- 在 **名称** 字段中,输入“INTEL_IOT_KIT”。在 **值** 字段中,输入“GROVEKIT”(这是默认值)或“DFROBOTKIT”,具体取决于您要使用的硬件套件。
- 您的新名称符号和值现在将显示。单击 **确定**。
- 将出现另一个对话框,询问是否重新构建项目。单击 **确定**。
将 Intel® Edison 板连接到 Intel® System Studio
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*)上。
使用云服务器运行示例
要运行带有可选后端数据存储的示例,您需要设置 SERVER
和 AUTH_TOKEN
环境变量。您可以在 Intel® System Studio 中按如下方式进行操作
-
从运行菜单中,选择运行配置。
显示运行配置对话框。 -
在 **C/C++ 远程应用程序** 下,单击 **close-call**。
这会显示应用程序的信息。 -
在 应用程序执行前要执行的命令 字段中,添加以下环境变量,但使用与您自己的设置对应的服务器和身份验证令牌
chmod 755 /tmp/close-call;export SERVER="http://intel-examples.azurewebsites.net/logger/close-call"; export AUTH_TOKEN="YOURTOKEN"
-
点击应用保存您的新环境变量。
现在,当您使用 运行 按钮运行程序时,它应该能够调用您的服务器以直接从 Intel® Edison 板或 Intel® IoT 网关保存数据。
在 Intel® Edison 板或 Intel® IoT 网关上运行代码
当您准备好运行示例时,单击 Intel® System Studio 顶部菜单栏中的 运行。
这将使用 Cross G++ 编译器编译程序,使用 Cross G++ 链接器链接程序,将二进制文件传输到 Intel® Edison 板或 Intel® IoT 网关,然后在其板上执行。
重要提示:此软件为示例软件。它并非设计或 intended 用于任何医疗、救生或生命维持系统、交通运输系统、核系统,或任何其他可能导致严重伤害或死亡的关键任务应用程序。该软件可能未经充分测试,并可能包含错误或缺陷;它可能并非 intended 用于商业发布或适合商业发布。尚未获得该软件的任何监管批准,因此该软件可能未获得在某些国家或环境中使用认证。