首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

使用 Watson 和 IoT Platform 服务构建家庭助理移动应用程序(4)

使用 Watson 和 IoT Platform 服务构建家庭助理移动应用程序(4)

开发流来控制 LED执行这一步之前,请确保已完成上一步,在 Raspberry Pi 中准备好了 Node-RED 环境。然后,需要从浏览器导航到 Node-RED 应用程序。
  • 按以下方式连接该流。它接收一个命令,确定意图,执行意图(打开或关闭 LED),然后向移动应用程序发送一个事件。
下表解释了该流的每部分所控制的功能。
节点名称节点类型说明 Light cmd  Watson IoT 输入节点  用于通过 IoT Platform 从移动应用程序接收命令。格式为                iot-2/cmd/[CMD_TYPE]/fmt/json,其中 [CMD_TYPE] 是在 Command              字段中定义的(例如 “light”)。

它使用了在 raspberrypi 配置对象中定义的凭证。 Decide Intent  功能节点  从有效负载中获取意图,重新格式化有效负载来打开或关闭                LED。1
2
3
4
5
6
7
8
9
10
11
action = msg.payload.action
object = msg.payload.object
intent = msg.payload.intent
if (intent == "OnLight") {
    msg.payload = "#ffffff"
    return [msg, null]
} else if (intent == "OffLight") {
    msg.payload = "#000000"
    return [null, msg];
}
return msg;




NeoPixel LED  rpi neopixels 节点  按以下方式配置此节点:

Format Status On  功能节点  Construct a status 'on'              message in JSON               
1
2
3
var jsonObj = { "dev":"light", "status": "on"};
msg.payload = JSON.stringify(jsonObj)
return msg;




Format Status Off  功能节点  Construct a status 'off'              message in JSON               
1
2
3
var jsonObj = { "dev":"light", "status": "off"};
msg.payload = JSON.stringify(jsonObj)
return msg;




Light Event  Watson IoT 输出节点  用于通过 IoT Platform              从移动应用程序发送设备事件。格式为                iot-2/type/[DEV_TYPE]/id/[DEV_ID]/evt/[EVT_TYPE]/fmt/json,其中:
  • [DEV_TYPE] 是在 IoT Platform 服务中定义的。
  • [DEV_ID] 是在 IoT Platform 服务中定义的。
  • [EVT_TYPE] 是在字段 Event type 中配置的(例如 light)。

raspberrypi  wiotp-credentials 的配置对象  Inject 节点用于测试 LED              的打开和关闭功能。Debug 节点用于将消息有效负载发送到右侧的 Debug 窗口。

从 IoT Platform 获取并供 Watson IoT 节点使用的 Credentials 配置对象包括:
  • 组织:ORG_ID
  • 服务器名称:ORG_ID.messaging.internetofthings.ibmcloud.com
  • 设备类型:DEV_TYPE
  • 设备 ID:DEV_ID
  • 身份验证令牌:AUTH_TOKEN
  • 名称:raspberrypi
返回列表