简介
在阅读本部分之前,必须完成本系列的第 1 部分。
这是本系列的第 3 部分,在这一部分中,我们将演示重新启动操作 – 重新启动 Raspberry Pi 网关和 Arduino Uno 设备 。
要参与重新启动和恢复出厂设置等设备操作,网关/设备需要将 supports.deviceActions 字段设置为 true,并通过管理请求告诉 Watson IoT Platform Device Management 服务器。在本文中,将会仍在管理步骤中告知它。请参阅 此链接 ,了解设备操作的更多信息。
重新启动 Raspberry Pi 网关
在这一步中,我们将使用 DM 协议重新启动 Raspberry Pi 网关。
让我们使用 Watson IoT Platform API 来发起 Raspberry Pi 网关的重新启动操作。执行以下活动,通过 ReST API 发起设备重新启动操作:
- 通过执行以下步骤,生成 API 密钥(如果还未生成)来保护与 IBM Watson IoT Platform 的通信:
- 启动 IBM Watson IoT Platform 仪表板
- 单击 ACCESS 选项卡
- 单击 API Keys 选项卡
- 单击 “Generate API Key” 按钮,如下所示。
- 记下 “ API Key ” 和 “ Authentication Token ”,在执行 ReST 操作时会使用它们来执行身份验证。
- 使用生成的 API 密钥和身份验证令牌在指定的 URI 上发送以下 JSON 消息,
- ReST URI:
https://orgid.internetofthings.ibmcloud.com/api/v0002/mgmt/requests
- JSON 消息:( 确保正确复制了双引号
)
{ "action":"device/reboot", "devices":[ { "typeId":"iotsample-gwType", "deviceId":"Gateway01" } ] }
(如果您的设备类型和设备 Id 有所不同,请使用它们修改此消息)
- 可以观察到,Raspberry Pi 网关已重新启动。为了完成重新启动操作,需要再次连接网关并发送管理请求。所以在设置 Raspberry Pi 后,要再次运行示例并发送管理请求。请参阅本文的第 1 部分来启动托管网关示例并发送管理请求。
在这一步中,我们成功地重新启动了 Raspberry Pi 网关。
重新启动 Arduino Uno
在这一步中,我们将重新启动 Arduino Uno 设备。
我们在前一小节中更新的 sketch 程序( 可从此处获得 )将会监听来自 raspberry Pi 网关的重新启动命令,并在收到该命令时重新启动该设备。sketch 的开发方式使得它只要通过串行端口收到 0 值,就会重置 Arduino Uno,但在收到其他任何正值时,它会让连接到引脚 13 的 LED 灯闪烁。
使用 IBM Watson IoT Platform 仪表板启动重新启动操作
- 在仪表板中选择 Reboot Action 并单击 Next,如下所示。
- 选择合适的设备类型并单击 Next,在我们的示例中,Arduino Uno 的设备类型为 iotsample-deviceType 。
- 选择 Arduino01 设备并单击 Next。
- 可以观察到,Arduino Uno 设备重新启动并重新发送了管理请求(为了完成重新启动操作,该设备需要再次建立连接并发送 manage() 请求)。
- 此外,还可以观察到 tdatapoint count 被重置为 0。
status temp:30.89,pir:0,count:0 status temp:30.89,pir:0,count:1 status temp:30.07,pir:0,count:2
在这一步中,我们成功地通过 Raspberry Pi 网关重新启动了附加设备 Arduino Uno。
结束语
在这一部分中,我们演示了如何使用 Java Client Library for IBM Watson IoT Platform IoT Platform 执行重新启动操作。请继续阅读本文中的下一部分,学习使用 DM 协议更新网关/附加设备的位置、诊断错误代码和日志信息。
原文 http://www.ibm.com/developerworks/cn/iot/blog/raspberry-pi-as-managed-gateway-in-watson-iot-platform-part-3/index.html?ca=drs-