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

通过 IBM Bluemix 实现 MQTT 聊天-2

通过 IBM Bluemix 实现 MQTT 聊天-2

通过 IBM 云控制设备(已注册)1. 将 IoT 服务添加到您的应用程序
将 Internet of Things Bluemix 服务添加到您的应用程序,这会创建一个私有 Internet of Things Foundation 组织,您可以向其注册您的设备。
完成以下步骤来从 Bluemix 仪表板选择 Internet of Things 服务,在“Services”下,单击“Add a service or API”,在“Internet of Things”旁边,选择“Internet of Things”。
完成以下步骤来添加该服务:
选择您刚创建的应用程序来绑定此服务,修改服务名称并单击 CREATE 按钮(可选),在提示时,选择重新暂存您的应用程序。
2. 向您的 IoT Foundation 组织注册一个设备
单击您刚添加到应用程序的 Internet of Things 服务,现在您位于 IoT 服务仪表板页面上。选择“Launch dashboard”打开您的 Internet of Things Foundation 组织。
选择 Devices 选项卡,选择 Add Device。输入设备类型和设备 ID,然后单击“Continue”
(设备类型和 ID 可在 PTK-STM32F207 的 LCD 屏幕上找到)。
在设备注册过程中,您会获得设备属性,获得之后复制它们。这应该类似于:
1
org=vs9qqv type=PTK-STM32F207 id=beefbeef0001 auth-method=token auth-token=8MSW*8RMm@BkG9U3!p




单击“Done”完成注册过程。
3. 将注册凭据设置到设备上
使用以下 PC 控制台命令解析 MQTT 主机 IP。
ping vs9qqv.messaging.internetofthings.ibmcloud.com
备注:
将 org 字段中的 vs9qqv 替换为您在第 2 步中获得的信息。记下并标记解析为 MQTT_HOST_IP 的 IP(例如 23.246.232.210)。再一次打开 MQTT_cfg.h 文件并执行以下更改:
1
...#ifndef USE_DNS #undef MQTT_HOST_NAME #define MQTT_HOST_IP "23.246.232.210" ...#if (0) //Quickstart Mode ...#else //Registered Mode #define ORG "vs9qqv" //Replace with your org #define DEVICE_TYPE "PTK-STM32F207" // #define AUTH_METHOD "token" // #define AUTH_TOKEN "8MSW*8RMm@BkG9U3!p"//Replace with your auth-token #endif ...




在 IAR-EWARM IDE(如上所述)生成、下载并运行该代码,现在该设备正在 Registered 模式下运行。
该应用程序将连接到您刚才在 IBM IoT Foundation 服务中创建的组织,并开始定期发送数据。
4. 将您的应用程序与注册的设备相连接
返回到 IBM Bluemix 中的应用程序仪表板,单击应用程序 URL 来打开 Node-RED Internet of Things 登录页面。
进入 Node-RED 流编辑器,双击您的 Node-RED 流编辑器中的“IBM IoT App In”节点,在 Authentication type 字段中,从下拉列表中选择 Bluemix Service。
确保为该节点配置了以下参数:
单击 OK,然后再次部署该应用程序。
查看调试窗格,以便查看从向您组织注册的设备收到的事件和消息。
您还可以配置 IBM IoT App In 节点来订阅来自某个特定设备 ID 的事件,比如我们的例子中的 beefbeef0001。
5. 手动从您的应用程序发送命令 (Node-RED)
设备在 Registered 模式下运行时,您可以从 IoT Foundation 向它发送命令,设备会相应地处理这些命令。
要尝试此过程,您可以编写应用程序来连接到 IoT Foundation 并订阅来自该设备的消息。
您可以在 Node-RED 中执行此尝试。
我们首先将一个注入节点从 node 面板的 input 部分拖放到图纸上,双击该注入节点并设置属性如下。这可能将消息“{“beep”:5}”注入到下一个节点。
现在将一个 ibmiot 节点从 node 面板的 output 部分拖放到图纸上,双击该 ibmiot 节点并设置属性如下:
设备 ID 应该已被正确设置,可在 PTK LCD 屏幕上获得它。
将它们连接在一起并再次部署该应用程序。
正常情况下,您会听到哔哔声,以此作为手动触发注入节点的响应。
要手动触发该消息,只需单击注入节点左侧的开关。一条消息“{“beep”:5}”已经“注入”到
“IBM IoT App Out”节点中,然后后者会将命令消息发送给设备。
6. 自动控制您的设备
目前为止,我们已经了解了如何通过 IBM 云手动控制设备。如果我们能自动控制它,将会很有趣。
这是我们的计划:“通过光线强度”控制哔哔声。为此,完成以下步骤:
设置一个函数节点来检查光线强度水平:
从 node 面板的 function 部分将一个函数节点拖放到图纸上。双击该功能节点以打开 javascript 编辑器。将现有代码替换为以下代码:
1
if(msg.payload.d.Light < 100) { msg.payload = "{"beep":3}"; return msg; }




将该节点命名为“Light Ctrl”,单击 OK 确认并关闭编辑窗口。
将函数节点的输入连接到“IBM IoT App In”节点。
将函数节点的输出连接到“IBM IoT App Out”节点。
同样地,不要忘记部署设计。下面给出了该流程图。
将手放在光线传感器 (U4) 上,这可以降低传感器可检测到光线强度。如果光线水平低于预设值(在我们的设计中为 100 Lux),则会激活板载蜂鸣器。
返回列表