转载

使用 HTTP(S) 向 IBM IoT Foundation 发布设备事件

要求

软件要求

  • IBMBluemix 帐户
  • Oracle JDK 7 或更高版本

硬件要求

  • Raspberry Pi Model B,带有 8 GB SD 卡

技能等级

  • 中等
  • Java 开发人员
  • 熟悉 Raspberry Pi

回页首

简介

设备和应用程序可以使用 HTTP(S) 与 IBM Internet of Things Foundation 进行交互。此消息传递协议可以用来代替 MQTT 消息协议 。请参阅文档的 HTTP(S) 连接性 部分,了解有关 HTTP(S) 支持的更多信息。

本文中使用了两个示例来演示 HTTP(S) 支持:

  • 设备示例 发布了一个事件,使用 HTTP(S) 每秒向 IBM IoT Foundation 发布事件。
  • 应用程序示例 代表设备发布了一个事件,使用 HTTP(S) 每秒向 IBM IoT Foundation 发布事件。

两个示例都是用 Java Client Library for IBM IoT Foundation 编写的,简化了与 IBM IoT Foundation 的交互。

回页首

准备工作

准备好您的设备

  1. 将您的 Raspberry Pi 连接到互联网。
  2. 如果尚未安装 Oracle Java,请安装它:
sudo apt-get update && sudo apt-get install oracle-java7-jdk

回页首

将设备事件发布到 Quickstart

使用 HTTP 将设备事件发布到 IBM Internet of Things Foundation Quickstart 服务

1. 使用 SSH 连接到您的 Raspberry Pi 设备

2. 从 GitHub 下载最新的 iotf java 客户端库:

curl -LO https://github.com/ibm-messaging/iot-java/releases/download/0.0.3/com.ibm.iotf-0.0.3.zip

3. 解压归档文件 com.ibm.iotf-0.0.3.zip

4. 通过输入您的组织 ID、设备类型和设备 ID 来修改 device.prop 文件,如下所示:

Organization-ID = quickstart Device-Type = iotsample-raspi Device-ID = RasPi01

(备注:该组织 ID 必须是 quickstart,以便将事件发布到 IBM Internet of Things Quickstart。设备类型和设备 ID 可以是任何有效的字母数字字符串)。

5. 通过指定以下命令运行 http 事件发布示例:

java -cp com.ibm.iotf.client-0.0.3.jar:com.ibm.iotf.samples-0.0.3.jar:lib/*  com.ibm.iotf.sample.client.device.HttpDeviceEventPublish

6.输入设备 ID 来可视化设备事件:

使用 HTTP(S) 向 IBM IoT Foundation 发布设备事件

回页首

使用 IoT Foundation 的已注册服务

要访问 Internet of Things Foundation 的全部功能,必须访问 IoT Foundation 内部的一个组织。下一步将会详细介绍如何设置您自己的 IoT Foundation Organization。

回页首

向 IoT Foundation 注册您的设备

您可以通过使用 IBM Bluemix,向一个 Internet of Things Foundation (IoTF) 组织注册您的设备。要使用 IBM Bluemix 注册您的设备,必须首先创建一个Bluemix 帐户。

创建 IoT Foundation Organization

  • 转到 Bluemix 。如果您已是一名 Bluemix 用户,请像平常一样登录。如果您没有 Bluemix 账户,可以通过注册获得一个免费 30 天的试用版。
  • 在 Bluemix 应用程序中,单击 Catalog 选项卡下的“Internet of Things”服务。
  • 在“Connect your devices”部分,单击“Launch dashboard”。这会将您带到 IBM IoT Foundation 组织空间。该 IoTF 组织是一个用来连接和管理连接到 IoT Foundation 的设备(比如您的 Raspberry Pi)的一个空间,这样您的应用程序就可以访问它的实时数据和历史数据。

注册您的设备

  • 单击“Devices”选项卡。
  • 在屏幕的底部,单击“Add Device”按钮。
  • 单击“Create Device Type” 并指定一个名称,例如,“iotsample-raspberry″。单击屏幕右下角的“Next”。
  • 单击下一组屏幕上的“Next”,直到看见屏幕右下角的“Create”选项。
  • 选择您刚刚创建的“iotsample-raspberry″ 设备类型。
  • 输入一个唯一设备 id,它会将您的 Raspberry Pi 设备与您可以连接到 IoTF 的其他所有设备区分开来(您可以使用 “1”或更复杂的 id 作为设备 id,比如设备的 MAC 地址)。
  • 单击下一组屏幕上的“Next”,直到看见屏幕右下角的“Add”选项。
  • 单击“Add”来添加您的设备,这会向您提供设备凭证。记下这些细节,因为稍后我们需要使用它们与 IoT Foundation 进行交互。

组织 ID

设备类型

设备 ID

身份验证方法

身份验证令牌

  • 您现在应该可以在 Device 选项卡中看见已注册的设备。

回页首

使用 IoT Foundation 的已注册服务发布设备事件

使用 HTTP(S) 向 IBM Internet of Things Foundation 已注册组织发布设备事件

1. 回到 SSH 会话,并通过您在前面步骤中记下的以下设备注册细节来修改 device.prop 文件。

Organization-ID = <Your Organization ID> Device-Type = <Your Device Type> Device-ID = <Your Device ID> Authentication-Method = token Authentication-Token = <Your Device Token>

请注意:配置文件中的所有属性都是强制性的。目前,仅支持基于令牌的身份验证。

2. 通过指定以下命令运行 http 设备事件发布示例:

java -cp com.ibm.iotf.client-0.0.3.jar:com.ibm.iotf.samples-0.0.3.jar:lib/*  com.ibm.iotf.sample.client.device.HttpDeviceEventPublish

3. 通过执行以下步骤,在 IBM Internet of Things Foundation Connect 仪表板中观察设备事件:

  • 启动 IBM IoT Foundation Connect 仪表板
  • 单击 DEVICES 选项卡
  • 单击您的设备
  • 转到 Recent Events 部分
  • 单击某个特殊的行来查看内容
使用 HTTP(S) 向 IBM IoT Foundation 发布设备事件 使用 HTTP(S) 向 IBM IoT Foundation 发布设备事件

回页首

使用应用程序发布设备事件

应用程序可以代表设备发布事件。然而,要实现此操作,需要一个 Internet of Things Foundation 注册组织。

1. 通过执行以下步骤,生成 API 密钥来保护应用程序与 IBM IoT Foundation 的通信:

  • 从浏览器启动 IBM IoT Foundation 仪表板
  • 单击 ACCESS 选项卡
  • 单击 API Keys 选项卡
  • 单击“Generate API Key”按钮,如下所示:
使用 HTTP(S) 向 IBM IoT Foundation 发布设备事件
  • 记下“API Key”和“Authentication Token”。我们需要使用这些信息连接到 IoT Foundation 来发布事件。

2. 回到 SSH 会话,并通过输入您的组织 ID、应用程序的 API 密钥和身份验证令牌来修改 application.prop 文件:

Organization-ID = <Your Organization ID> API-Key = <Your Organization's API Key> Authentication-Token = <Your Organization's Token> Device-Type = <Device Type of the device the application will publish the event as> Device-ID = <Device ID of the device the application will publish the event as>

(备注:所有字段都是强制性的)

1. 通过指定以下命令运行 http 应用程序事件发布示例:

java -cp com.ibm.iotf.client-0.0.3.jar:com.ibm.iotf.samples-0.0.3.jar:lib/*  com.ibm.iotf.sample.client.application.HttpApplicationDeviceEventPublish

2. 通过执行以下步骤,在 IBM Internet of Things Foundation 仪表板中观察设备事件:

  • 启动 IBM IoT Foundation 仪表板
  • 单击 DEVICES 选项卡
  • 单击您的设备 ID
  • 转到 Recent Events 部分
  • 单击特殊的行来查看内容
使用 HTTP(S) 向 IBM IoT Foundation 发布设备事件 使用 HTTP(S) 向 IBM IoT Foundation 发布设备事件

回页首

有疑问?

您对此有任何疑问吗?事情不像您预期的那样发展?

请尝试将问题发到论坛上,获得来自某个 IoT 团队成员的解答。

原文  http://www.ibm.com/developerworks/cn/iot/iot-publish-device-events-to-ibm-iot-foundation-using-https/index.html?ca=drs-
正文到此结束
Loading...