使用 IBM Bluemix 上的 IoT 及 Push 服务发送推送消息到手机

  在打开的 Node-RED 页面,找到 Go to your Node-RED flow editor 按钮,点击以进入流编辑器。接下来,我们将使用 Node-RED 流编辑器来构建一个工作流。 读者也可以 点击这里 打开 Node-RED 流编辑器。

1.在左侧调色板中,找到 input 区域,拖拽 ibmiot 节点

拖到画布上,双击以打开编辑页面进行配置。首先要选择认证(Authentication)的方式:此下拉框有 3 个值 Quickstart, API Key, Bluemix Service. Quickstart 是用于快速入门的案例学习用的;API Key 选项需要输入 API Key 和 API token,多用于 IoT Platform 与 Node-RED 不在同一个 app 时;Bluemix Service 是内部的服务调用,并不需要输入参数,主要用于 Node-RED 与 IoT 在同一 App 时。因为我们的 App 里边有 IoT Platform 服务,我们可以选择 Bluemix Service 直接连接。选定认证方式后,需要选择输入类型(Input Type),这里输入类型有 Device Event, Device Command, Device Status, Application Status, 从名称上我们即可知道他们 主要检测的重点。我们在此选择 Device Event。至于设备类型(Device Type),设备标识(Device Id),事件(Event),格式(Format)等选择 All 即可,再填写节点名称(Name),点击 OK。

  图 17 ibmiot 节点的编辑页面

物联网
物联网

2.在 function 区域找到 json 节点

,并将其拖拽到画布上。我们使用此节点是为了解析 msg.payload,把一个 javascript 对象转化为 json 字符串。 3.在 function 区域找到 function 节点

,并将其拖拽到画布上。双击该节点,打开编辑页面。在 Name 字段输入该节点名称(建议填上该字段,否则节点显示名为空),在 Function 区域已有一句 return msg; 在此之前加入如下代码:

  var message = JSON.parse(msg.payload).d ;

  msg.payload = {

  "message": {“alert": message.content }

  };

  return msg;

  图 18 function 节点的编辑页面

物联网
物联网

4.在 output 区域找到 ibmpush 节点

,将其拖拽至画布。双击该节点,打开编辑页面。因为当前节点所属的应用程序有 Push 服务,所以对该节点初始化时会自动去读取该应用程序 ID 和 push 服务的 appSecret 字段。编辑页面上的可编辑的推送属性只有 2 个:模式(Mode)和类型(Type)。

  模式有沙箱(Sandbox)和生产(Production)模式,由于我们的证书是生产模式下的,所以我们选择生产模式。

  类型一共有 5 种:

  广播(Broadcast):可以向所有设备发送

  通过标记(By Tags)

  通过设备唯一标识符(By DeviceIds)

  仅 Android 设备(Only Android devices)

  仅 iOS 设备(Only iOS devices)

  由于我们 demo 的移动端程序仅支持 iOS 设备,所以我们选择 alt="物联网" width="524" height="426" />

物联网

5.在 storage 区域找到 cloudant 节点

,将其拖拽至画布。双击节点,打开编辑页面。Service 字段已经自动定位到当前应用程序里附带的 Cloudant 数据库;Database 字段输入我们前面已经创建好的数据库名;Operation 字段表明要执行的操作是插入(insert)还是删除(remove),因为我们要存查消息进数据库,所以这里选择 insert;勾上 alt="物联网" width="508" height="371" />