使用 Intel® IoT Gateway 软件套件连接到 IBM Watson IoT Platform
本指南演示了如何设置和编程三个关键组件,用于设计和开发真实的物联网 (IoT) 应用。
获取新的 Intel® IoT 开发人员套件,这是一个完整的硬件和软件解决方案,允许开发人员使用 Intel® Galileo 和 Intel® Edison 板开发令人兴奋的新解决方案。访问 Intel® 物联网开发人员区域。
本指南演示了如何设置和编程三个关键组件,用于设计和开发真实的物联网 (IoT) 应用。
- Arduino 101*,搭配 Seeed Studio Grove* 入门套件 Plus - 物联网版
- Intel® IoT Gateway
- 托管在 IBM Bluemix* 云中的 IBM Watson* 物联网平台
Arduino 101*(图 1)是一款低功耗处理器板,用于构建各种传感器应用。它配备 32 位 Intel® Quark 微控制器、带有闪存和 SRAM 内存的 Intel® Curie 模块、蓝牙* 低功耗无线电,以及带有加速计和陀螺仪的 6 轴运动传感器。它拥有 14 个数字输入/输出引脚(其中 4 个可用作脉冲宽度调制输出)、6 个模拟输入、SPI 和 I2C 通信接口,以及用于串行通信的 USB 接口。其 Arduino 接头允许您添加各种 Arduino 扩展板以获得额外的 I/O 和通信功能。
可以使用 Arduino IDE 和标准的 Arduino 编程命令对 Arduino 101* 进行编程。它也可以使用运行在 Arduino 101* 上的 Firmata 协议和关联的 Firmata 草图进行远程控制。
Seeed Studio Grove* 入门套件 Plus
该 Grove* 入门套件 Plus 提供了一种将混合式传感器和执行器添加到 Arduino 101* 的方法,用于物联网应用原型设计(图 2)。它包含一个与 Arduino 兼容的扩展板(插入 Arduino 101* 底板),并配有一组用于不同类型 Grove 传感器和执行器的连接器。有超过 200 种 Grove 传感器和执行器可供选择,Grove 入门套件 Plus 包含以下组件:
- 温度传感器
- 蜂鸣器
- Button
- LED 指示灯
- 声音传感器
- 三轴数字加速计
- 触摸传感器
- 光传感器
- LCD 字符显示屏
- 旋转角度传感器
- 压电振动传感器
Intel® 物联网网关
Intel® 物联网网关(图 3)是边缘处理节点,集成了 Intel 处理器;一个强大的操作系统;安全软件;各种类型的 I/O 接口;以及多种网络选项,包括以太网、Wi-Fi 和无线广域网。网关将一组独立设备连接起来——例如,建筑物内的一组传感器。它们支持分层组织的物联网系统,并提供关键功能,如本地设备 I/O 管理(例如,组合来自本地化传感器组的数据)、安全访问上游系统(例如,云平台)、网络安全和设备隔离、远程软件更新,以及在广域网出现问题时能够继续进行本地处理的能力。
您可以选择各种 Intel® 物联网网关,每种网关在容量、外形尺寸、工作温度范围和 I/O 接口方面都有不同的组合。您使用的网关通常取决于您应用程序的需求以及部署环境(例如,办公环境与工业环境)。在本指南中,将使用 Intel® NUC Kit DE3815TYKHE 网关。
您可以使用多种语言对 Intel® 物联网网关进行编程,包括 Python*、Node.js*、C/C++、Java*,以及 Node-RED 等图形化环境。
IBM Watson* 物联网平台
运行在 IBM Bluemix* 上的 IBM Watson* 物联网平台 是一个基于云的平台,用于将物理世界的设备和网关连接到云中运行的可扩展处理和存储服务(图 4)。它为在资产管理、设施管理、制造、供应链、交通运输、能源和智慧城市等领域构建现实世界应用程序提供了高度可扩展的环境。
IBM Watson 物联网平台允许您注册和管理设备,使用行业标准的 Message Queuing Telemetry Transport (MQTT) 协议实时连接设备和应用程序,安全地交换设备命令和数据,存储和访问设备数据,通过强大的 Web 门户查看操作,并允许设备与 Bluemix 云中提供的各种其他应用程序和服务进行交互。在设计需要扩展到数千甚至数百万设备的物联网应用程序时,所有这些功能都至关重要。
物联网开发流程
物联网应用程序的开发通常遵循以下步骤:
- 创建初步想法和候选用例。
- 通过迭代原型设计来测试和完善想法。
- 通过试点和试验来实施和评估可扩展性以及产品/市场契合度。
- 产品化解决方案,并进行制造设计和规模化设计。
- 推向市场并投入生产。
- 长期运营和维护。
Arduino 101*、Intel® 物联网网关和 IBM Watson* 物联网平台提供了一套丰富且可扩展的工具来支持此过程的每个步骤,从而缩短总体上市时间,同时提供现实世界物联网应用程序所需的规模、安全性和操作功能。
本指南的组织结构
本指南将向您展示如何开始使用每个组件并创建运行的应用程序。
第一部分 解释如何设置 Arduino 101*、Grove* 入门套件 Plus 和 Intel® 物联网网关。第一部分的重点是在本地化环境中运行传感器并生成数据。
第二部分 解释如何将第一部分中的组件连接到 Bluemix* 中运行的 IBM Watson* 物联网平台,在该平台可以存储、查看和处理数据,以创建可扩展的、由传感器驱动的业务应用程序。
第一部分:设置 Arduino 101*、Seeed Studio Grove* 入门套件 Plus 和 Intel® 物联网网关
Arduino 101* 和 Grove* 入门套件 Plus 通常在物联网项目的迭代原型设计和试点阶段使用。它们强大的计算能力、无线网络功能、各种 I/O 接口、Arduino 兼容连接器以及混合式 Grove 传感器和执行器,使您能够快速地将想法转化为可运行的原型。
Arduino 101 的乐趣 提供了一个分步指南,介绍如何设置 Arduino 101*、安装和使用集成开发环境、连接 Grove 入门套件 Plus,以及运行与数字和模拟传感器交互的示例程序。
使用 Intel® 物联网网关,您可以构建需要功能、安全性、可管理性和性能组合的复杂物联网应用程序。您可以直接将传感器和执行器连接到网关,并在本地处理和查看它们的数据。您还可以将一组传感器(例如,连接到 Arduino 101* 的 Grove 传感器)连接到网关,以进行本地化处理并形成传感器集群。网关可以通过 Internet 安全地连接到 IBM Watson* 物联网平台,以便您将数据发送到云端,在那里可以存储、分析和处理。
设置网关
这些说明适用于 Intel® 物联网网关型号 Intel® NUC Kit DE3815TYKHE,配备 Intel® Atom™ 处理器。网关已预加载操作系统映像并配置了默认系统设置。操作系统是 Intel® 物联网网关软件套件,一个基于 Linux* 的强大的 Wind River* 操作系统。
通过进行以下连接来设置网关硬件:
- 连接电源适配器,并将其插入墙壁电源。
- 将网关连接到具有 Internet 连接的有线以太网 LAN 网络。
- 您无需连接 VGA 显示器或 USB 键盘,因为它们仅在登录网关系统控制台进行管理时才需要。
- 将另一台计算机连接到同一 LAN,以便用户可以通过有线网络登录到网关。
注意: VGA 显示器和 USB 键盘连接对于调试网关启动问题或在开发期间登录网关系统控制台很有用。
有关网关和设置选项的更详细信息,请参阅 使用 Intel® 物联网开发人员套件 3.5 设置 Intel® 物联网网关入门指南。
将传感器连接到网关
有几种方法可以将传感器连接到网关;选项取决于您使用的具体网关型号。对于 Intel® NUC Kit DE3815TYKHE 网关,将 OMEGA* RH-USB 温度和湿度传感器连接到网关的一个 USB 端口,如图 5 所示。RH-USB 传感器测量范围为 1°F 至 120°F 的温度,以及 2% 至 98% 的相对湿度。它通过网关的 USB 端口作为串行 TTY 设备工作,并将温度和湿度报告为 ASCII 字符串。
按住电源按钮直到指示灯亮起,为网关通电。网关将使用动态主机配置协议 (DHCP) 从有线以太网 LAN 获取 IP 地址。
登录 Intel® 物联网网关开发者中心
Intel® 物联网网关软件套件包含一个名为 Intel® 物联网网关开发者中心的内置应用程序,您可以使用它来查看网关状态、配置网关设置以及创建传感器应用程序。默认设置允许您通过以太网 LAN 连接访问该中心,地址如下:
- 有线: http://<由以太网 LAN DHCP 服务器分配的网关 IP>
例如,如果网关被分配了有线 IP 地址 192.168.22.108,则可以通过 http://192.168.22.108 访问物联网网关开发者中心。
打开 Web 浏览器,然后输入 Intel® 物联网网关开发者中心的 URL。如果您的网关处于演示模式,您可能会看到一个隐私声明,您需要确认。在登录提示符处,使用默认用户名(gwuser)和默认密码(gwuser)(图 6)。
如果您看到一个许可协议页面,请阅读许可协议,如果您接受条款,请点击同意。
现在您已登录 Intel® 物联网网关开发者中心,如图 7 所示。您可以在此处监视网关及其连接的传感器,查看实时传感器数据,调整网关系统管理设置,访问文档,以及加载新的软件包。
状态区域 (1) 显示网关信息。传感器小部件区域 (2) 显示连接的传感器的实时数据。此处显示了 RH-USB 温度。在命令区域 (3) 中,您可以单击图标在网关的各个功能之间导航。
- 传感器 - 显示传感器仪表板。
- 软件包 - 在网关上安装或更新软件包。
- 管理 - 访问操作系统命令和其他配置工具。
- 文档 - 教程、指南和最佳实践。
注意: RH-USB 温度传感器在网关上显示为 Linux TTY 设备 /dev/ttyRH-USB,它是连接传感器的物理 USB TTY 端口的符号链接,例如 /dev/ttyUSB0。如果您插入其他 USB 设备,物理 TTY 端口号可能会发生变化,因此如果您在 Intel® 物联网网关开发者中心的传感器列表中看不到该传感器,这是首先需要检查的内容。
首次登录网关时,可能需要更新软件包。要检查更新,请单击软件包图标,然后查看安装更新按钮。如果显示有可用更新,请单击安装更新以下载并安装更新。这可能需要一些时间,具体取决于可用更新的数量。安装更新后,通过单击管理,然后单击重启操作系统来重新启动网关。
开发传感器应用程序
要对网关进行编程,您可以编写 Python*、Node.js* 等语言的代码,并直接在网关的 Linux* 操作系统上运行。但是,网关还包含一个强大的软件环境,称为 Node-RED*,它提供了一个图形化环境,用于创建、测试和部署物联网应用程序。Node-RED 是一个开源的、可视化的工具,用于以新颖有趣的方式将硬件设备、应用程序编程接口 (API) 和在线服务连接起来。它用 Node.js 编写,并在网关启动时自动运行。有关 Node-RED 的详细文档,请参阅Node-RED 文档。
要访问 Node-RED,请通过单击传感器图标,然后单击管理传感器来导航到 Intel® 物联网网关开发者中心的主门户。这将带您进入 Node-RED 画布,您将在其中看到 RH-USB 传感器的默认入门流程。
Node-RED 应用程序由执行特定操作的节点和将节点连接在一起形成端到端流程的连线组成。在基于 Web 的用户界面 (UI) 中,使用拖放操作在画布上拖放节点和连线。有三种主要类型的节点:
- 输入节点 - 读取数据并生成事件。
- 输出节点 - 写入数据并允许调试。
- 功能节点 - 处理或转换数据和事件。
其他类型的节点用于特殊目的,例如电子邮件和 Twitter 集成以及磁盘文件 I/O。还有一个庞大的社区开发节点生态系统,您可以将其添加到 Node-RED 环境中,以支持其他类型的传感器,发送和接收数据到云服务,以及执行各种处理算法。请参阅Node-RED 库以获取社区开发节点的示例。
网关还内置了对 MQTT 的支持,MQTT 是一种遵循发布/订阅架构模式的行业标准机器对机器物联网连接协议。作为该支持的一部分,有内置的传感器数据显示小部件,您可以将其连接到您的网关 Node-RED 流程中,以便在 Intel® 物联网网关开发者中心门户中显示数据。它们显示发布到网关的 /sensors MQTT 主题的数据。要了解如何使用 MQTT 设置到 IBM Bluemix* 的连接,请参阅 使用 MQTT 连接到 IBM Bluemix* 物联网。
关于 Node-RED 已经有很多介绍,Intel® 物联网开发人员区域有一个分步视频,可以帮助您在网关上运行 RH-USB 温度和湿度传感器。请按照视频中的步骤进行操作。完成视频后,您应该会在 Intel® 物联网网关开发者中心门户上看到温度和湿度的显示(图 8)。
如果您加热或冷却 RH-USB 温度探头,您应该会看到温度根据默认的 1 秒采样率实时增加或减少。
注意: 默认的 RH-USB 采样率由 Node-RED 流程中标记为 Interval 的 Inject 输入节点控制。双击该节点以查看其参数并选择更改速率。如果您进行了任何更改,请务必单击 Deploy 以将修改后的流程部署到网关。
以下是流程工作原理的简要说明:
- Interval 节点每秒生成一个触发消息,该消息流向 RH-USB 节点。
- RH-USB 节点是一个子流程,它将 ASCII 命令字符串 PA 发送到连接到网关上 /dev/ttyRH-USB 串行端口的 RH-USB 传感器。RH-USB 传感器通过串行端口返回一个 ASCII 响应字符串,该字符串被解析为单独的温度和湿度值。单独的值从 RH-USB 节点的两个不同输出端口流出。
- 温度值通过一个功能节点从华氏度转换为摄氏度。功能节点包含一个 JavaScript* 代码片段,该代码片段执行转换计算。
- 温度和湿度值流入图表格式化节点,这些节点设置网关图表小部件的显示范围和属性。
- Chart 节点将格式化的传感器数据连同图表显示属性一起发布到网关的 MQTT /sensors 主题,从而使这些值出现在 Intel® 物联网网关开发者中心门户上。
注释
- 要将温度显示从基于仪表盘的图更改为基于时间的折线图,请双击 Temperature 节点,并将类型更改为折线图 (Line) 而不是仪表盘 (Gauge)。保存更改,然后部署流程;之后,您将看到温度折线图。
- 功能节点允许您用 JavaScript 编写任意处理函数。有关编写自己的函数的详细信息,请参阅Node-RED 文档。
调试 Node-RED 流程
一个名为 debug 的输出节点对于调试流程特别有用(图 9)。
当您将 debug 节点拖放到画布上时,任何连接到该节点的内容的数据值都会显示在 Node-RED 画布的 debug 选项卡上。如果 debug 选项卡不可见,您可以通过打开或关闭侧边栏来切换它(图 10)。
注释
- 通过单击每个 debug 节点右侧的区域来打开或关闭调试输出。每次单击时,调试输出都会被切换一次。
- 通过单击debug选项卡上的垃圾桶图标来清除现有的调试消息。
- 您可以在同一个流程中使用多个 debug 节点,每个节点都有不同的连接。
- 使用 Comment 节点向您的流程添加注释。Comment 节点不连接到任何东西,它们只包含文本。使用它们来描述您的流程的工作原理。
网关的角色
此时,网关每秒测量一次来自 RH-USB 温度和湿度探头的实时传感器数据。这些值被处理并格式化为所需的单位,然后发布到网关的 MQTT 代理,在那里它们实时显示在 Intel® 物联网网关开发者中心门户上。
如果您需要进行其他温度读数——例如,在不同的位置——您可以添加另一个 RH-USB 探头并扩展 Node-RED 流程来测量它。使用网关的强大之处在于,网关可以连接一组传感器,在本地处理和组合原始数据,然后将数据发送到别处进行进一步处理或长期存储,这是下一节的重点。
第二部分:连接到 IBM Watson* 物联网平台
在本节中,您将 Intel® 物联网网关连接到 IBM Watson* 物联网平台,并将传感器数据发送到该平台进行云端处理。IBM Watson 物联网平台是一个基于云的环境,允许您设计、构建、扩展和运行生产物联网解决方案。它由一组服务组成,您可以通过构建块的方式对其进行配置和连接。Watson 物联网平台服务托管在 Bluemix* 云中,这意味着它们还可以利用 Bluemix 中提供的众多其他云服务。
您可以在两种基本模式下使用 IBM Watson 物联网平台:快速启动 (Quickstart) 和注册 (Registered)。有关这些模式的详细信息,请参阅 IBM Watson 物联网平台文档。
以快速启动模式连接到 IBM Watson* 物联网平台
快速启动 (Quickstart) 是一个开放的沙盒,允许您快速连接设备并查看实时传感器数据。它是免费的,您无需注册任何内容。您可以将真实设备或模拟设备作为数据源:数据不会被长期保留。快速启动模式对于在您熟悉 IBM Watson* 物联网平台的过程中,快速连接设备很有用。
有几种选项可以将网关连接到 IBM Watson 物联网平台,包括使用 Python* 或 Node.js* 编写程序,以及在 Node-RED 中创建流程。在本节中,您将构建上一节中的 Node-RED 实现,并使用该方法将网关连接到 IBM Watson 物联网平台。
首先,将网关连接到 IBM Watson 物联网平台快速启动服务。为此,您需要一种能够连接到 IBM Watson 物联网平台的新型节点。一个名为 node-red-contrib-ibm-watson-iot 的开源 Node-RED 包正好可以做到这一点。
要安装 IBM Watson 物联网的 Node-RED 组件,请向网关添加一个新的软件包存储库,并通过执行以下步骤从该存储库安装软件包:
- 通过另一台以太网 LAN 网络上的计算机登录网关,或者使用直接连接到网关的键盘和 VGA 显示器登录。对于以太网 LAN 方法,如果网关的 IP 地址是 192.168.22.100,则登录命令将是 ssh root@192.168.22.100。请使用您网关的正确 IP 地址。
- 登录用户名使用 root,默认密码为 root。
- 运行以下命令:rpm --import http://iotdk.intel.com/misc/iot_pub.key
- 命令完成后,您可以从网关命令行 shell 退出。
此命令的目的是安装 Intel 软件产品存储库的公钥,该存储库将在下一步中使用。
在 IoT 网关开发者中心 Web 界面中,执行以下步骤:
- 单击软件包图标,然后单击添加存储库按钮。
- 在“添加新存储库”下,将 Name 字段设置为 IoT_Cloud,将 URL 字段设置为 http://iotdk.intel.com/repos/iot-cloud/wrlinux7/rcpl13/。将 Authentication 信息留空。
- 单击添加存储库按钮添加新存储库。
添加 IoT_Cloud 存储库后,它应该会列在“现有存储库”列表中(图 11)。单击右上角的 X 关闭“管理存储库”对话框。
接下来,通过执行以下步骤安装 Node-RED Watson IoT 软件包:
- 单击软件包图标,然后单击添加软件包按钮。
- 在搜索字段中,键入 packagegroup-cloud-ibm,这将显示具有该名称的软件包。
- 单击安装以安装 packagegroup-cloud-ibm 软件包。安装完成后,单击 X 退出软件包安装对话框。
- 滚动软件包列表,确认 node-red-contrib-ibm-watson-iot 已在已安装软件包列表中。
注释
- 如果未安装存储库公钥,软件包安装将失败。
接下来,在列表中找到 node-red-experience 软件包,然后单击停止。然后单击启动以重新启动它。停止/启动周期是必需的,以便识别新安装的 Node-RED 软件包。
单击传感器图标,然后单击管理传感器。在左侧,您现在应该会看到两种新型节点,称为 Watson IoT:一种在输入 (Input) 部分,一种在输出 (Output) 部分。使用滚动条滚动可用节点列表。新节点允许您连接到 IBM Watson 物联网平台。单击 Node-RED 中的节点会在信息选项卡上显示其文档。
输入节点 | ![]() |
输出节点 | ![]() |
输出节点可以将数据发送到 IBM Watson 物联网平台,输入节点可以从 IBM Watson 物联网平台接收数据。您将为快速启动连接使用输出节点。
用鼠标将 IBM Watson 物联网平台输出节点拖到 Node-RED 画布上。其名称将自动更改为 IBM IoT Device。双击该节点以显示其属性。默认值将类似于图 12 的左侧面板,其中快速启动 ID 是随机生成的。将值更改为类似于右侧面板(将 Name 设置为 Send to Watson IoT Quickstart),然后单击确定。
现在,添加一条从 F to C 节点输出到 Send to Watson IoT Quickstart 节点输入的连线。结果应如图 13 所示。
现在,单击部署以将修改后的流程部署到网关。然后,双击 Send to Watson IoT Quickstart 节点。在 Quickstart Id 字段的右侧,您会看到一个小方框按钮(图 14)。单击该按钮以打开快速启动仪表板的新浏览器窗口,其中会自动填充您的随机生成的设备 ID。
您应该能在仪表板中看到实时温度数据(图 15),以及一个每秒更新一次的时间历史图。您的网关已成功首次连接到 IBM Watson 物联网平台。
在图 15 的快速启动仪表板中,上半部分(1)显示了接收数据的历史时间,下半部分(2)显示了平台接收到的最新事件数据。
以注册模式连接到 IBM Watson* 物联网平台
注册模式是比快速启动更高级的模式。您在 Bluemix* 上注册一个帐户,并设置一个运行在 Bluemix 上的 IBM Watson* 物联网平台实例。有免费和付费套餐;您选择哪种套餐通常取决于您的应用程序中的数据和处理量以及设备数量。在本指南中,您将使用免费套餐,因为设备数量和数据量相对较少。
注册模式是用于创建生产物联网应用程序的模式。创建一个运行在 Bluemix 上的 IBM Watson 物联网平台实例,您可以在其中定义您的设备并累积数据。您还将创建 IBM Watson IoT 实时洞察 (IoT Real-Time Insights) 的实例,该实例允许您丰富和监控来自您设备的数据,可视化正在发生的情况,并通过自动化操作进行响应。
如果您还没有 Bluemix 帐户,创建帐户是第一步。在 IBM Watson 物联网平台快速启动页面,滚动到底部,然后查找注册 (Sign Up) 按钮。或者,遵循此链接。
Bluemix 目前同时提供“经典”UI 和“新”UI。本指南使用新 UI,您可以通过单击试用新 Bluemix 切换到它。请注意,Bluemix 是一个动态环境,UI 会随着时间的推移而发展。
要创建新的 Bluemix 帐户,请单击注册,输入所需信息,然后单击创建帐户。IBM 网站上提供了其他信息和操作指南。注册过程会创建一个 IBM* ID,您将使用该 ID 登录 Bluemix。
使用您新创建的帐户登录 Bluemix。您应该会看到一个欢迎页面,其中列出了各种服务类别,包括物联网。单击物联网:您应该会看到多个可用的物联网服务,包括 IBM Watson 物联网平台和 IoT 实时洞察。
单击加号 (+) 将新服务添加到您的 Bluemix 帐户,然后单击物联网平台 (Internet of Things Platform)。选择免费套餐,然后单击创建。Bluemix 将配置您的物联网平台服务;准备就绪后,它将显示在您的 Bluemix 仪表板中作为一个磁贴。
现在,创建 IoT 实时洞察服务的一个实例,并选择免费套餐。配置完成后,您的 Bluemix 仪表板应显示这两个服务磁贴(图 16)。
注意: 在 Bluemix 中,有一个主帐户级控制台以及您添加到帐户的各种服务的独立服务仪表板。实例化服务并将其添加到帐户的过程称为配置。在服务配置完成后,它将作为新的磁贴显示在您的主 Bluemix 控制台中。Bluemix 控制台和独立服务仪表板将具有不同的 URL。顶级 Bluemix 控制台 URL 可能类似于“https://new-console.ng.bluemix.net”,而 Watson 物联网平台控制台可能类似于“https://xxxxxxx.internetofthings.ibmcloud.com/dashboard/”。您可以为控制台和仪表板添加书签,以便更容易访问。
现在,连接这两个服务,以便 IoT 实时洞察服务可以从 IBM Watson 物联网平台服务获取数据。此过程在 IoT 实时洞察文档 中进行了描述,并在此处进行总结:
- 在 IBM Watson 物联网平台仪表板中,生成新的 API 密钥。记下 API 密钥和认证令牌。(您只能在首次创建身份验证令牌时查看它。)
- 在 IoT 实时洞察仪表板中,添加新的数据源,并提供步骤 1 中的 API 密钥信息。
第一次完成此步骤时,可能需要一些时间,在此期间浏览器会旋转或似乎挂起。请给予足够的时间完成。在设置新数据源时,您可以输入一个名称(在本例中,命名为 Intel IoT Gateway)、您的 IBM Watson 物联网平台组织 ID(显示在 IBM Watson 物联网平台的配置设置屏幕中),以及在步骤 1 中创建的 API 密钥和认证令牌。
接下来,将 Intel® 物联网网关作为已注册设备连接到 IBM Watson 物联网平台服务。在 Bluemix 中导航到物联网平台服务,并启动仪表板。在左侧,您会看到 Boards、Devices、Access、Usage 和 Settings 图标。单击设备 (Devices),然后单击添加设备 (Add Device)。
由于这是您第一次添加新设备类型,因此您首先需要为 Intel® 物联网网关创建一种新设备类型。如果您单击选择设备类型 (Choose Device Type) 列表,您会看到它是空的,因为您还没有创建任何设备类型。
单击创建设备类型 (Create device type),然后选择创建网关类型 (Create gateway type)。在 IBM Watson 物联网平台中,连接设备有两种类别:
- 设备 (Device) - 这是 IBM Watson 物联网平台中的单个设备,例如温度传感器。设备可能有也可能没有 IP 地址和通过 Internet 通信的能力。
- 网关 (Gateway) - 这种类型的设备以分层或集群方式连接了其他设备——例如,连接了两个传感器的 Intel® 物联网网关。网关通常能够使用 IP 协议通过 Internet 进行通信。
设备和网关设备类型之间的区别在于,对于设备,您直接在云和设备之间执行操作;而对于网关,您在云、网关本身以及连接到网关的设备之间执行操作。本质上,网关既可以充当设备的通道,也可以充当可以在将数据发送到云之前执行设备数据处理的中间设备。
有关设备和网关的详细信息,请参阅 IBM Watson 物联网平台概念。
Create Gateway Type 功能是一系列分步对话框。在进行步骤时,输入以下设置: - 名称 (Name): Intel-IoT-Gateway
- 描述 (Description): Intel 网关
<下一步 (Next)> - 制造商 (Manufacturer): 已勾选
<下一步 (Next)> - 制造商 (Manufacturer): Intel
<下一步 (Next)> - 将元数据 (Metadata)(可选)字段留空
<下一步 (Next)>
<创建 (Create)>
现在您已为 Intel® 物联网网关创建了新的网关类型,它将显示在“添加设备”下的列表中。
在“添加设备”对话框中继续操作,从设备类型列表中选择 Intel-IoT-Gateway,然后单击下一步。在设备信息 (Device Info) 对话框中,为网关创建一个唯一的设备 ID。使用网关的以太网 MAC 地址。在设备 ID 字段中输入您的网关以太网 MAC 地址(包括前导零),然后单击下一步。将可选的元数据留空,然后单击下一步。在安全 (Security) 对话框中,单击下一步以使用自动生成的认证令牌。
在确认页面上,检查所有信息。如果一切正确,请单击添加。如果您需要更改任何内容,请单击返回。
网关设备添加成功后,您将看到一个包含标识符和认证凭据的信息屏幕。请务必将这些凭据安全保存,因为它们无法在以后恢复。如果您丢失了它们,您将不得不删除设备并重新创建它。请记住,这些凭据是敏感信息,因此请保护它们免遭未经授权的使用。
当您完成查看新网关信息并打印或保存它后,单击右上角的小圆圈 X 退出仪表板。
现在,网关将出现在 IBM Watson 物联网平台仪表板的设备列表中(图 17)。请注意,您的设备 ID 将因您网关的 MAC 地址而异。
现在网关已在 IBM Watson 物联网平台中定义,您可以从网关上的 Node-RED 流程连接到它。回到之前的 Node-RED 流程,将 Watson IoT 输出节点的另一个实例拖到画布上,并将其属性设置为如图 18 所示,确保使用您设备的正确设备 ID。对于凭据设置,您需要添加网关作为 IBM Watson 物联网平台新设备时保存的认证令牌。您还需要您的组织 ID,可以在 IBM Watson 物联网平台配置设置页面找到。
Watson IoT 节点需要特定格式的数据,因此接下来您将添加一个 Function 节点来以正确格式格式化温度读数。将一个 Function 节点拖到画布上,双击它,将其命名为 Format Temperature,并添加如图 19 所示的 JavaScript* 代码。完成代码添加后单击确定。
将 F to C 的输出连接到 Format Temperature 的输入,将 Format Temperature 的输出连接到 Send to Watson IoT Registered 的输入。然后,部署更改后的流程。生成的流程应如图 20 所示。
此时,实时温度数据正在从网关发送到 IBM Watson 物联网平台快速启动和已注册目的地。
在 IBM Watson 物联网平台仪表板中,转到设备列表,然后单击您的网关设备。您应该会看到一组近期事件 (Recent Events)(每秒变化一次)以及传感器信息 (Sensor Information) 下的温度读数。这些是网关发送和 IBM Watson 物联网平台接收的实时读数。单击近期事件下的某个事件:事件数据应类似于图 21。
这是 IBM Watson 物联网平台事件 JavaScript Object Notation (JSON),其中包含一个 temperature 键和相应的数值。它对应于网关上 Format Temperature 节点中的 JavaScript 代码。
return { payload: { temperature: msg.payload } };
在 IBM Watson 物联网平台仪表板中,导航到仪表板 (Boards) >所有仪表板 (All Boards) 页面。IBM Watson 物联网平台允许您创建一个或多个仪表板(简称 Boards),用于显示来自您设备的实时信息。单击使用概览 (Usage Overview) 仪表板,这是一个内置的默认仪表板。Intel-IoT-Gateway 设备应与基本数据传输统计信息一起显示。
接下来,将温度值的实时显示添加到使用概览仪表板。导航到设置页面,这将显示一组配置设置。在常规 (General) 部分,打开实验性功能 (Experimental Features),然后单击确认所有更改 (Confirm all changes)。这允许您将新的信息卡添加到您的仪表板。卡是可配置的显示小部件,可在 IBM Watson 物联网平台仪表板上显示不同类型的信息。导航回使用概览仪表板,您现在应该会在页面右上角看到添加新卡 (Add New Card) 按钮。
IBM Watson 物联网平台实验性功能在 IBM Watson 物联网平台博客文章 用户界面实验性功能 中进行了描述。
单击添加新卡。在打开的对话框中,向下滚动并单击显示更多以查看所有卡类型。在设备部分,单击仪表盘 (Gauge)。选择 Intel-IoT-Gateway 作为卡数据源,然后单击下一步。单击连接新数据集 (Connect new data set),然后设置以下数据集字段:
名称 (Name): Gateway Temp
事件 (Event): event (从菜单中选择)
属性 (Property): temperature (从菜单中选择)
类型 (Type): Float (从菜单中选择,向下滚动以查看所有选项)
单位 (Unit): °C (从菜单中选择)
精度: 1
最小值: 0
最大值: 40
单击下一步,将大小设置为 M(中等),然后单击下一步。将标题设置为温度 (Temperature),然后单击提交 (Submit)。
您现在应该会在 IBM Watson 物联网平台仪表板上看到一个新小部件,它显示连接到网关的 RH-USB 传感器的实时显示。如果您加热或冷却传感器,温度值应在 IBM Watson 物联网平台仪表板和网关的 IBM IoT 网关开发者中心显示上实时增加或减少。图 22 显示了添加了温度卡的 IBM Watson 物联网平台仪表板。
总结和后续步骤
此时,您拥有一个端到端运行的系统,该系统可在 Intel® 物联网网关上收集实时传感器测量值,进行处理和显示,并将数据发送到运行在 Bluemix 上的 IBM Watson* 物联网平台。网关使用 Node-RED 进行编程,Node-RED 提供了一个易于使用的工具,用于连接处理流程并添加传感器或处理算法。
您可以将 Arduino 101* 和 Grover* 入门套件 Plus - 物联网版添加到此环境中,通过 USB 将 Arduino 101* 连接到网关,并为 Grove 组件添加其他类型的 Node-RED 处理节点,以原型化其他传感器和执行器。
您还将 IoT 实时洞察添加到了您的 Bluemix* 环境中,并将其连接到 IBM Watson* 物联网平台服务。IoT 实时洞察允许您创建 if-then 逻辑来监视传感器数据,并在满足特定条件时触发操作——例如,监视温度读数并在它们超出定义范围时生成警报。
工业用例和教程:Intel 和 IBM Watson* 物联网平台 在本指南建立的基础上进行扩展。工业用例开发了一个测量温度和湿度的传感应用程序,并在参数超出可接受范围时生成电子邮件和短信警报。
将网关与 Bluemix 上的 IBM Watson 物联网平台集成,为使用 Bluemix 上提供的各种数据库和应用程序服务来存储、处理和可视化数据开辟了广泛的其他可能性。Intel 物联网网关与 Bluemix 上的 IBM Watson 物联网平台相结合,为构建和运行可扩展的物联网应用程序提供了强大而可靠的环境。