盒内交通解决方案基于前代物联网产品路径互联交通解决方案,后者包含完整的开发流程 - 从构思与原型制作到产品化。2016 年英特尔®信息技术峰会上发布的前代产品为盒内交通解决方案奠定了基础,后者展示了如何以产品路径解决方案为出发点,简化物联网解决方案的开发流程。如欲阅读物联网产品路径交通案例研究的全文,请查阅如何创建互联交通解决方案。
一支欧洲的英特尔团队在现有的产品路径互联交通解决方案(更适合用于研讨会、会议等其他行业活动)的基础上进行改变时,发现了其价值,便开始研究盒内交通解决方案。该团队的目标是创建一个和扩展货车模型功能相似的模型,该货车模型用于之前的解决方案,但是能装进紧凑型保护套。图 1 并列展示了这两个解决方案。
图 1.互联交通模型和盒内交通解决方案对比
本文中的练习展示了如何重建盒内交通解决方案。该解决方案不需要特殊设备或深入的专业知识,主要为了展示如何调整物联网产品路径解决方案,以满足特定项目小组的需求。
如欲获取此项目的最新代码示例和文档,请访问 GitHub*。
简介
借助一台英特尔® 物联网网关、Grove* 商用物联网开发人员套件和英特尔® System Studio IoT Edition,便可以开发盒内交通解决方案。它可以监控卡车冷藏货物区域的温度,也能够监控货厢门的开关状态。网关基于状态变化生成事件,以支持在平板电脑应用上实现终端用户功能。
开发人员将通过本练习掌握以下操作:
- 设置 Dell iSeries* Wyse 3290 物联网网关,包括安装操作系统、更新 MRAA* 和 UPM* 库以及连接用于连接传感器的 Arduino 101*(美国境外的品牌名称为 Genuino 101*)开发板。
- 安装解决方案的其他部分,包括连接传感器等其它组件和复制项目软件存储库。
- 将程序添加至英特尔® System Studio IoT Edition,包括创建一个项目,利用创建解决方案所需的文件安装项目。
- 利用 Eclipse* IDE 运行解决方案或直接在目标平台上运行。
该解决方案的用途
盒内交通解决方案模拟交通监控解决方案的以下部分:
- 车门:通知司机车门的位置变化(打开或关闭)。
- 温度计: 监控卡车货厢区域的内部温度,并记录温度数据。
- 警报:用户界面会在温度超出设定的阈值时发出声音警报。按下 push 按钮或温度恢复正常(温度在设定的阙值以下)后,警报取消。
- 冷却风扇:风扇为卡车货物散热。冷却风扇连接至车门,当门打开时,风扇关闭(允许温度上升)。同样地,当门关闭时,风扇开启(为了保持货厢区域的温度低于特定的温度阙值)。
- 显示: 显示系统状态、温度和车门状态。
工作原理
解决方案基于传感器数据运行,包括车门开/关状态、卡车内部温度和一系列事件,如车门的开关、温度变化、温度阙值设置的变化以及警报的触发/停止事件。将全部数据发送到 web 接口,用于监控卡车状态。
设置 Dell iSeries* Wyse 3290 物联网网关
这个部分提供了在 Dell iSeries Wyse 3290 网关上安装英特尔® 物联网网关软件套件的指令。
注:如果您在英特尔网络上,需要设置一台代理服务器。
- 如果没有帐户,需要在英特尔® 物联网平台市场创建一个。
- 定购英特尔® 物联网网关软件套件,然后按照电子邮件接收的说明下载图像文件。
- 解压该存档文件,然后将该.img 文件写入一个 4 GB U 盘:
- 您可以在 Microsoft Windows* 上使用 Win32 Disk Imager* 等工具:https://sourceforge.net/projects/win32diskimager.
- 您可以在 Linux* 上使用
sudo dd if=GatewayOS.img of=/dev/ sdX bs=4M; sync
,sdX
是您的 U 盘。
- 将 U 盘拔出您的系统,然后插入 Dell iSeries* Wyse 3290 网关,该网关连接一台显示器、一个键盘和电源线。
- 打开 Dell iSeries Wyse 3290 网关,在启动时按 F2键进入 BIOS。
- 通过 U 盘启动:
- 在 Advanced选项卡上,确保已经开启通过 U 盘启动。
- 在 Boot选项卡上,将 U 盘设置为首个启动设备。
- 保存更改并重启系统。
- 通过 root:root登录系统。
在本地存储中安装 Wind River Linux*:
~# deploytool -d /dev/mmcblk0 --lvm 0 --reset-media -F
- 利用
poweroff
命令关闭网关,拔出 U 盘,然后通过本地存储设备重新开启网关。 - 插入以太网线缆,然后通过 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.用于盒内交通解决方案的物料清单和连接方案。
底部系统
组件 详细信息 连接 Dell iSeries* Wyse 3290 网关 Arduino 101* 开发板 传感器中枢 USB USB Type A 转 Type B 线缆 将 Arduino 101* 开发板连接至网关 传感器
组件 详细信息 连接 Omega* RH-USB 温度传感器 USB Grove* - Relay 风扇控制 D8 Grove - LCD RGB 背光 显示状态 I2C 磁性接触开关 车门传感器 D3 Peltier 热电冷却器模块+散热器组件 - 12V 5A 冷却风扇 带有白色 LED 环的耐久金属开/关 - 16 毫米白色开关 确认警报 D4 利用如下命令,借助 Git* 将产品路径存储库复制到电脑:
$ git clone https://github.com/intel-iot-devkit/reference-implementations.git
- 如欲下载.zip 文件,打开您的网络浏览器,前往并点击右下部分的 Download ZIP按钮。.zip 文件下载完毕后,对其进行解压,本示例需使用目录中的文件。
将程序添加至英特尔® System Studio IoT Edition
注:本部分的截屏来自于闹钟示例,但是,添加程序的技术是相同的,只是利用不同的源文件和 jar。
- 打开英特尔® System Studio IoT Edition。首先需要选择一个工作空间目录,然后单击 OK。
如图 2 所示,在英特尔® System Studio IoT Edition 中选择 File | New | Intel® IoT Java Project。
图 2.新英特尔® 物联网 Java* 项目。如图 3 所示,将项目命名为 “Transportation Demo”,然后单击 Next。
图 3.命名英特尔® 物联网项目。如图 4 所示,通过为连接选择一个名称、在 Target Name字段中输入 IP 地址,从电脑连接至网关,并向其发送代码。
注:您也可以通过 "Search Target"按钮搜索网关。完成后单击 finish。
图 4.创建目标连接。按照之前的步骤将创建一个空白项目。将源文件和 config 文件复制到项目:
- 将全部文件从 git 存储库的 src 文件夹中拖放至英特尔® System Studio IoT Edition 新建项目的 src 文件夹。
- 确保覆盖之前自动生成的主类。
该项目使用以下外部 jar:commons-cli-1.3.1.jar、tomcat-embed-core.jar和 tomcat-embed-logging-juli。可以从 Maven 中央存储库中找到上述 jar。在项目根目录中创建一个 "jars"文件夹,将全部所需的 jar 复制到该文件夹。如图 5 所示,在英特尔® System Studio IoT Edition 中选择并右键单击 jars文件夹中的全部 jar 文件,选择 Build path | Add to build path。
图 5.将项目 jar 添加至 build path。如图 6 所示,添加与本示例相关的 UPM* jar 文件:
- 右键单击项目的根目录,选择 Build path | Configure build path。
- 选择 Java Build Path。
- 选择 Libraries 选项卡。
- 单击 Add external JARs...按钮。
添加下列 jar,位于物联网开发套件安装根路径\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 添加至 build path。
利用 scp 或 WinSCP* 将 www文件夹复制到目标平台的主目录中。在 Eclipse* 中为面向 Java* 应用的项目创建一个新的运行配置。在 Main选项卡中将主类设置为 com.intel.pathtoproduct.JavaONEDemoMulti。然后,将如下命令输入 arguments 选项卡中:
-webapp <path/to/www/folder>
注:如果无需运行 IDE,请直接将存储库下载至目标平台,然后运行 start.sh script。
结论
如本篇操作文档所示,物联网开发人员能够以较低的成本创建解决方案,且无需专业的技能。具体而言,借助一台英特尔® 物联网网关和一个 Arduino 101* 开发板,项目小组可以快速调整现有的英特尔® 物联网产品路径解决方案,以满足全新的业务需求。