物联网参考实现:如何构建“即插即用”的交通解决方案
利用英特尔® 物联网网关和 Arduino 101 开发板,项目团队可以快速调整现有的英特尔® 物联网产品化路径解决方案,以满足新的业务需求。
获取 Grove* 物联网商用开发者套件,这是一个完整的硬件和软件解决方案,允许专业开发人员使用最新的英特尔® 开发板创建令人兴奋的可扩展物联网解决方案。请访问英特尔® 物联网开发者专区。
“盒中运输”解决方案基于之前的一个物联网产品化路径的互联运输解决方案,该方案涉及一个从构思、原型设计到产品化的全面开发过程。利用在 2016 年英特尔® 开发者论坛上展示的这项前期工作,“盒中运输”解决方案演示了产品化路径解决方案如何提供一个起点,从而简化物联网解决方案的开发。要阅读完整的物联网产品化路径运输案例研究,请查看互联运输解决方案的打造。
英特尔欧洲团队在发现现有产品化路径互联运输解决方案的变体具有价值后,开始着手“盒中运输”解决方案的工作。该变体更适合在研讨会、会议和其他行业活动中使用。团队的目标是构建一个功能与之前解决方案中使用的卡车模型相似,但体积紧凑、可放入便携箱的变体。图 1 展示了这两种解决方案并排比较。
本文档中的练习描述了如何重现“盒中运输”解决方案。它不需要特殊设备或深厚的专业知识,旨在演示如何根据特定项目团队的需求调整物联网产品化路径解决方案。
引言
“盒中运输”解决方案是使用英特尔® 物联网网关、Grove* 物联网商用开发者套件和英特尔® System Studio 物联网版开发的。它监控卡车冷藏货舱内的温度以及货舱门的开启或关闭状态。网关根据这些状态的变化生成事件,以支持平板电脑应用程序的最终用户功能。
通过此练习,开发人员将学习以下内容:
- 设置 Dell iSeries* Wyse 3290 物联网网关,包括操作系统安装、MRAA* 和 UPM* 库更新,以及连接 Arduino 101*(在美国以外地区品牌为 Genuino 101*)开发板以实现传感器连接。
- 安装解决方案的其余部分,包括传感器和其他组件的连接,以及项目软件存储库的克隆。
- 将程序添加到英特尔® System Studio 物联网版,包括创建项目并填充构建解决方案所需的文件。
- 使用 Eclipse* IDE 或直接在目标平台运行解决方案。
解决方案的功能
“盒中运输”解决方案模拟了运输监控解决方案的以下部分:
- 车门:当车门位置(开或关)发生变化时,驾驶员会收到通知。
- 温度计:监控卡车货舱内部温度并记录温度数据。
- 警报:当温度高于指定阈值时,用户界面会播放声音警报。通过按下按钮或当温度恢复正常(低于指定阈值)时,警报会取消。
- 冷却风扇:风扇冷却卡车货物。冷却风扇与车门连接,当车门打开时,风扇关闭(允许温度升高)。同样,当车门关闭时,风扇开启(以使卡车货舱温度低于指定阈值)。
- 显示屏:显示系统状态、温度和车门状态。
工作原理
该解决方案根据传感器数据运行,这些数据包括卡车门的开/关状态、卡车内部温度以及许多事件,包括门的开/关操作、温度变化、温度阈值设置变化以及警报的触发/停止事件。所有数据都转发到网络界面,可用于监控卡车状态。
设置 Dell iSeries* Wyse 3290 物联网网关
本节提供了在 Dell iSeries Wyse 3290 网关上安装英特尔® 物联网网关软件套件的说明。
注意:如果您在英特尔网络中,则需要设置代理服务器。
- 如果您还没有帐户,请在英特尔® 物联网平台市场上创建一个帐户。
- 订购英特尔® 物联网网关软件套件,然后按照您将通过电子邮件收到的说明下载镜像文件。
- 解压缩存档,然后将 .img 文件写入 4 GB USB 驱动器。
- 在 Microsoft Windows* 上,您可以使用 Win32 Disk Imager* 等工具:https://sourceforge.net/projects/win32diskimager。
- 在 Linux* 上,使用
sudo dd if=GatewayOS.img of=/dev/sdX bs=4M; sync
,其中sdX
是您的 USB 驱动器。
- 将 USB 驱动器从您的系统拔出,然后将其插入 Dell iSeries* Wyse 3290 网关,同时连接显示器、键盘和电源线。
- 打开 Dell iSeries Wyse 3290 网关,然后在启动时按F2进入 BIOS。
- 从 USB 驱动器启动
- 在高级选项卡上,确保从 USB 启动已启用。
- 在启动选项卡上,将 USB 驱动器放在启动设备顺序的首位。
- 保存更改,然后重启系统。
- 使用root:root登录系统。
-
在本地存储上安装 Wind River Linux*
~# deploytool -d /dev/mmcblk0 --lvm 0 --reset-media -F
- 使用
poweroff
命令关闭您的网关,拔下 USB 驱动器,然后重新打开网关以从本地存储设备启动。 - 插入以太网线缆,然后使用 ifconfig eth0 命令查找分配给您的网关的 IP 地址(假设您已正确设置网络)。
-
使用英特尔® 物联网网关开发者中心将MRAA*和UPM*存储库更新到官方存储库 (https://01.org) 的最新版本。您可以通过输入以下命令实现相同的结果:
~# smart update
~# smart upgrade
~# smart install upm
- 使用 USB 线缆连接 Arduino 101* 开发板。
- 将 Omega* RH-USB 温度传感器连接到 USB 端口。
安装解决方案的其余部分
本节提供了解决方案其余安装的说明,包括传感器和其他组件的连接,以及项目软件存储库的克隆。
-
根据表 1 中的物料清单中提供的连接方案,将传感器和其他组件连接到 Dell iSeries Wyse 3290 物联网网关。
表 1. “盒中运输”解决方案的物料清单和连接方案。
基础系统
组件 (Component) 详细说明 Connection Dell iSeries* Wyse 3290 网关 Arduino 101* 开发板 传感器集线器 USB USB Type A 转 Type B 线缆 将 Arduino 101* 开发板连接到网关 传感器
组件 (Component) 详细说明 Connection Omega* RH-USB 温度传感器 USB Grove* - 继电器 风扇控制 D8 Grove - LCD RGB 背光 显示状态 I2C 磁性接触开关 门传感器 D3 帕尔帖热电冷却器模块+散热器组件 - 12V 5A 冷却风扇 坚固的金属开关带白色 LED 灯环 - 16毫米白色开/关 确认警报 D4 - 在您的计算机上使用 Git* 克隆产品路径存储库,如下所示:
$ git clone https://github.com/intel-iot-devkit/reference-implementations.git
- 要下载 .zip 文件,请在您的网络浏览器中打开并点击右下角的下载 ZIP按钮。下载 .zip 文件后,解压缩,然后使用该目录中的文件作为此示例。
将程序添加到英特尔® System Studio 物联网版
注意:本节中的屏幕截图来自闹钟示例;但是,添加程序的技术是相同的,只是源文件和 jar 不同。
- 打开英特尔® System Studio 物联网版。它会首先询问工作区目录;选择一个然后点击确定。
-
在英特尔® System Studio 物联网版中,选择文件 | 新建 | 英特尔® 物联网 Java 项目,如图 2 所示。
图 2. 新建英特尔® 物联网 Java* 项目。 -
将项目命名为“Transportation Demo”,如图 3 所示,然后点击下一步。
图 3. 命名英特尔® 物联网项目。 -
通过为连接选择一个名称,在目标名称字段中输入网关的 IP 地址,然后点击完成,连接到网关以将代码发送到网关,如图 4 所示。
注意:您也可以使用“搜索目标”按钮搜索网关。完成后点击完成。
图 4. 创建目标连接。 -
前面的步骤将创建一个空项目。将源文件和配置文件复制到项目中:
- 将 git 存储库的 src 文件夹中的所有文件拖到英特尔® System Studio 物联网版中新项目的 src 文件夹中。
- 确保之前自动生成的主类被覆盖。
-
该项目使用以下外部 jar:commons-cli-1.3.1.jar、tomcat-embed-core.jar和tomcat-embed-logging-juli。这些可以在 Maven 中央存储库中找到。在项目的根目录中创建一个“jars”文件夹,并将所有需要的 jar 复制到此文件夹中。在英特尔® System Studio 物联网版中,选择jars文件夹中的所有 jar 文件,右键单击它们,然后选择构建路径 | 添加到构建路径,如图 5 所示。
图 5. 将项目 jar 添加到构建路径。 -
添加与此特定示例相关的 UPM* jar 文件,如图 6 所示:
- 右键单击项目的根目录并选择“构建路径”|“配置构建路径”。
- 选择 Java 构建路径。
- 选择“库”选项卡。
- 点击“添加外部 JARs...”按钮。
-
添加以下 jar,它们可以在 IOT Devkit 安装根目录 *path\iss-iot-win\devkit-x86\sysroots\i586-poky-linux\usr\lib\java* 找到:
- upm_grove.jar
- upm_i2clcd.jar
- upm_rhusb.jar
- mraa.jar
图 6. 将外部 jar 添加到构建路径。
-
使用 scp 或 WinSCP* 将 *www* 文件夹复制到目标平台上的主目录。在 Eclipse* 中为项目的 Java* 应用程序创建新的运行配置。在Main选项卡中将主类设置为
com.intel.pathtoproduct.JavaONEDemoMulti
。然后,在参数选项卡中输入以下内容:-webapp <path/to/www/folder>
注意:要在没有 IDE 的情况下运行,请直接将存储库下载到目标平台并运行 start.sh 脚本。
结论
正如本操作文档所示,物联网开发人员可以以相对较低的成本构建解决方案,而无需专业的技能组合。特别是,使用英特尔® 物联网网关和 Arduino 101* 开发板,项目团队可以快速调整现有的英特尔® 物联网产品化路径解决方案,以满足新的业务需求。
更多信息
有关编译器优化的更完整信息,请参阅我们的 优化声明。