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

使用 IBM Watson IoT Platform 与 Intel® IoT 设备和网关

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.33/5 (2投票s)

2016 年 6 月 20 日

CPOL

8分钟阅读

viewsIcon

10513

当您将物联网 (IoT) 设备(支持 Intel 微控制器(如 Intel® Edison 主板、Intel® Curie™ 计算模块和 Intel® 物联网网关)的设备)连接到 IBM Watson* 物联网平台时,您可以快速构建实现您物联网用例的物联网应用程序。

获取新的 Intel® 物联网开发者套件,这是一个完整的硬件和软件解决方案,使开发人员能够使用 Intel® Galileo 和 Intel® Edison 主板创建激动人心的新解决方案。请访问 Intel® 物联网开发者专区

当您将物联网 (IoT) 设备(支持 Intel 微控制器(如 Intel® Edison 主板、Intel® Curie™ 计算模块和 Intel® 物联网网关)的设备)连接到 IBM Watson* 物联网平台时,您可以快速构建实现您物联网用例的物联网应用程序。本文提供了有关如何连接到 Watson 物联网平台环境的指南。

IBM Watson* 物联网平台和 IBM Bluemix*

Watson* 物联网平台是一项完全托管的云托管服务,可轻松地从物联网设备中提取价值。该平台提供设备管理功能以及时间序列格式的数据收集和管理。作为 IBM 的平台即服务 (PaaS) 产品 IBM Bluemix* 的一部分,您可以使用 Watson 物联网平台从 Bluemix 中提供的服务目录中快速构建物联网应用程序。您可以选择物联网应用程序选项,如存储服务、规则、分析服务、流分析、机器学习、可视化和用户应用程序(Web 或移动)。您还可以通过使用 Bluemix 中提供的 IBM Watson 服务,在物联网应用程序中嵌入认知能力。

通信策略

IBM Watson* 物联网平台支持 MQ Telemetry Transport (MQTT) 协议,该协议是 Intel 或其他物联网设备与 IBM Watson 物联网平台之间所有通信的基础。MQTT 是基于发布/订阅模型的轻量级面向消息的中间件。该协议专为涉及小型数据占用的机器对机器通信而设计。发布/订阅模型依赖于消息代理,该代理根据消息主题在感兴趣的客户端之间进行中介。客户端可以充当订阅者(从主题消费消息)或发布者(向相应主题发布消息)。在物联网的上下文中,物联网设备通过 TPC 连接到中央 MQTT 代理以发送和接收消息。MQTT 在高带宽是问题的资源受限设备和网络中得到广泛应用。有关 MQTT 的详细信息,请参阅 物联网网关协议比较:MQTT 和 Modbus

Watson 物联网平台提供设备客户端库,方便设备连接到该平台。客户端库支持 Python*、Java*、嵌入式 C、Node.js* 和 C# 编程语言。有关客户端库应用程序接口 (API) 的详细信息,请参阅 IBM 文档和参考资料

将 Intel 设备连接到 Watson 物联网平台的另一种方法是使用开源的 Eclipse* Paho MQTT 库,该库提供了 MQTT 的客户端实现。要使用 Paho,您需要获取一个受支持的 Paho MQTT 库,例如,用于 Windows* 10 设备的 Microsoft .Net,或支持该编程语言的设备的 C 客户端。

图 1 展示了 Intel 物联网设备如何与 Watson 物联网平台进行通信。

图 1. 通过 MQ Telemetry Transport 协议将 Intel® 物联网 (IoT) 设备连接到 IBM Watson* 物联网平台

将 Intel® Edison 主板连接到 Watson 物联网平台

对于将 Intel® Edison 主板连接到 Watson* 物联网平台,您可以选择 C 或 C++、JavaScript*,或者 Watson 物联网平台提供的 Java 库。您还可以直接使用 Paho MQTT 库将设备连接到 Watson 物联网平台。

为了开发和调试设备代码,您可以 下载您的编程环境所需的集成开发环境 (IDE)。例如,您可以下载用于 JavaScript 的 Intel® XDK 物联网版、用于 C 和 C++ 的 Intel® System Studio 物联网版、用于 Java 的 Intel® System Studio 物联网版,或者使用 Arduino* IDE 使用 Arduino 技术对 Intel® Edison 主板进行编程。然后,您可以在代码中导入所需的 Watson 物联网平台 API 或 MQTT 库,以连接到 Watson 物联网平台并向其发送数据(即传感器数据)。

为了与主板上的传感器和执行器进行交互,Intel 提供了 libmraa 库。该库提供了对受支持硬件的抽象层,因此您可以以标准方式读取传感器和执行器的值,并创建可在支持的平台上运行的可移植代码。

读取传感器数据后,它将通过支持的网络使用 MQTT 协议传输到 Watson 物联网平台。您通常会将数据转换为 JavaScript 对象表示法 (JSON) 等格式,而不是通过设备客户端库使用 MQTT 发送原始数据。设备可以使用 Wi-Fi 或以太网连接直接连接到 Internet 和 Watson 物联网平台,或者可以连接到 Intel 网关,然后该网关连接到 Watson 物联网平台。

要连接到 Watson 物联网平台,您必须在 Watson 物联网平台上注册您的设备。然后,您将收到一个组织 ID,这是您帐户的唯一六位标识符。Watson 物联网平台组织就像一个域,数据只能从该域中的设备和应用程序访问。注册设备后,这些设备和 API 密钥将绑定到该组织。当应用程序使用 API 密钥连接到 Watson 物联网平台时,该连接将注册到“拥有”该 API 密钥的组织。这种组合使得不属于同一组织的设备和应用程序无法相互通信。有关注册设备的详细说明,请参阅 如何在 IBM 物联网基金会中注册设备

将 Intel® Curie™ 计算模块连接到 Watson 物联网平台

Intel® Curie™ 模块是一个采用 Intel® Quark™ 处理器的片上系统。它提供了一个完整的低功耗解决方案,专为可穿戴设备以及消费和工业边缘产品而设计。Intel® Curie™ 模块内置六轴组合传感器,并配有蓝牙*低功耗 (Bluetooth LE) 无线电和低功耗特性,使其成为健康和健身监测器等“始终在线”项目的理想主板。

要开始原型设计和开发应用程序,您可以使用 Arduino 101*/Genuino 101* 开发板,该板随 Intel® Curie™ 模块发货。Arduino* IDE 允许您编写程序(在 Arduino 中称为 sketch),该程序读取传感器值。然后,传感器数据将通过支持的网络使用 MQTT 传输到 Watson* 物联网平台。Intel® Curie™ 模块支持蓝牙低功耗 (Bluetooth LE),一种选择是通过蓝牙将 Intel® Curie™ 模块连接到智能手机,利用智能手机的蜂窝或 Wi-Fi 连接作为连接到 Internet 的集线器。Intel® Curie™ 模块提供专用的蓝牙低功耗库,可更轻松地与其他支持蓝牙的设备通信(有关详细信息,请阅读 Intel® Curie® 蓝牙参考指南)。另一种选择是通过蓝牙将 Intel® Curie™ 模块连接到 Intel 网关;然后网关连接到 Watson 物联网平台。还有其他选项,例如使用带 Arduino 101 板的 Wi-Fi 扩展板,使开发板能够直接连接到 Internet。您选择的网络策略取决于您的用例以及最终产品的用途。

注意:敬请期待 Intel® System Studio for Microcontrollers,这是一个集成了 Eclipse 的软件套件,可简化开发并帮助您使用 Intel Curie 模块创建激动人心的消费和工业解决方案。

将 Intel 网关连接到 Watson* 物联网平台

当设备由于协议不兼容问题而无法直接连接到 Watson* 物联网平台,或者需要现有设备数据通过中央实体进行处理以满足各种要求时,则需要 Intel 网关。典型的要求包括在边缘过滤数据并将相关数据传输到 Watson 物联网平台、执行本地分析以获取实时洞察,或者确保网络安全和合规性。

协议不兼容问题在连接和集成遗留工业设备或家庭自动化设备(例如,智能建筑解决方案)时尤其常见,这些设备通常采用 ZigBee* 或 Z-Wave* 等协议。使用 Intel 网关设备,您可以选择将这些智能设备连接到您的网关,并使用这些设备支持的协议收集数据。然后,网关使用云平台支持的协议将数据传输到云端。

Watson* 物联网 Intel 设备配方

要开始将 Intel 物联网设备连接到您的 Watson* 物联网平台,IBM 在 IBM developerWorks* Recipe 社区中提供了一套配方(运行代码和文档)。以下配方目前适用于 Intel 物联网设备:

使用 Watson* 物联网平台和 Bluemix* 构建物联网应用程序

当设备数据在 Watson* 物联网平台上可用时,您可以开始可视化数据。来自设备的数据可在相应的应用程序中用于消费,并且应用程序(即 Bluemix* 服务)可以订阅该应用程序以消费设备数据。例如,您可以创建一个 Node-RED Bluemix 服务,当消息到达相应应用程序时调用该服务。在 Node-RED 服务中,您可以根据您的需求创建应用程序流来调用其他 Bluemix 服务(例如,MongoDB* 用于存储设备数据),使用规则服务创建规则来过滤和处理数据,并调用 IBM SPSS* 机器学习服务来分析数据并预测结果。最后,您可以使用 IBM 推送通知服务向移动设备发送通知。

摘要

在本文中,您学习了如何将 Intel 物联网设备连接到 Watson* 物联网平台。当数据在 Watson 物联网平台上可用时,您可以对其进行消费,并通过组合相应的 Bluemix* 服务快速构建物联网应用程序,从而实现您的物联网用例。

© . All rights reserved.