1.1 实训目的
1、通过中移物联网平台注册创建 MQTT 设备;
2、使用官方 MQTT 工具模拟智能家居系统实现;
3、利用平台的 MQTT 消息服务能力,实现智能家居系统设备的实时受控;理解设备之间数据传递和
平台命令下发/上传数据的异同。
1.2 实训步骤
1.2.1 创建基于 MQTT 协议的产品
步骤 1 进入中移物联网首页的“开发者中心”
注:如提示用户需登录,则先登录后再进入;
步骤1: 在之前创建的产品中添加设备当我们在上一步成功建立产品后点击“立即添加设备”,页面即进入设备列表管理页面。我们也可以
点击左侧的“设备列表”菜单,同样进入该管理页面。
目前因为是新产品,当前设备数为0,我们点击右侧的“添加设备”按钮:
步骤2: 配置主控设备的信息 在右侧滑出的添加设备页面中,设备名称输入“灯光主控点”,鉴权信息输入“publish”(全小写), 基于中移和物的智能家居监控系统实训手册其他保持默认。最后点击“添加”保存第一个设备的信息。
注意:请按照实训手册的填入的信息输入建立设备,以确保后续步骤的实训效果。
1.2.3 创建基于 MQTT 的受控设备
步骤 1: 添加设备
点击
按钮,添加一个新的设备,名称输入“客厅顶灯”、鉴权信息输入“light1”,
点击“添加”完成第二个设备的创建。
步骤 2: 继续添加设备
继续点击
按钮,添加另一个新的设备:设备名称输入“卧室落地灯”、鉴权信息输入
“light2”,点击“添加”完成该设备的创建。
添加完成后回到设备列表页面,可以看到有 3 个设备记录,且他们的状态是“离线”
1.2.4 下载并使用官方提供的 MQTT 工具
步骤 1:通过文档中心找到官方工具
在当前设备列表页面的右上部分,我们可以随时进入“文档中心”查看有关帮助,那么官方提供的
MQTT 测试工具也可以从这里进入获取到。
在左侧菜单中,展开“设备开发指南”项,选择“测试工具”功能
步骤 2:下载 MQTT 工具
选择 MQTT 工具“点击下载”。下载后解压其中的
文件到本地磁盘目录,双击运行该文件,能正常运行。完成即可进入下一步。
1.2.5 使用官方 MQTT 工具模拟设备接入
步骤 1: 记录 OneNET 平台中已经注册的产品及创建好的设备 ID
提示:该步目的用于填入到工具中,使得发起的 MQTT 连接里可以携带正确的信息,使其请求能被
OneNET 平台正确认证,作为一个设备顺利接入。
步骤 2:我们在这里回顾下如何查看产品的 ID
⚫ 查看产品信息:
本次实训任务里,查看到的产品信息应该类似如下,注意红框部分即是所需的产品 ID:
步骤 3:查看设备的 ID:
⚫ 查看设备信息
本次实训任务里,查看到的设备信息应该类似如下,注意红框部分的设备 ID,分别对应不同的设备。
提示:在大家自己创建的信息里看到的产品 ID、设备 ID 是不同的,需要大家对号入座正确标记。
步骤 4:接入主控设备“灯光主控点”
(1)打开
如下图所示界面,注意红色箭头所指的三个关键输入:
⚫DeviceID,即之前步骤查看的 “灯光主控点”的设备 ID;
⚫ProductID,即之前步骤查看的 MQTT 产品的 ID;
⚫AuthInfo,即之前步骤中“灯光主控点”在创建时填入的鉴权信息
提示:对于““灯光主控点”,当时输入的鉴权信息是:publish。如果大家按照之前步骤也是
这样填入的话。
(2)填入所需信息,检查无误后,点击“Connect”按钮,连接到 OneNET 平台。
提示:OneNET 平台的 MQTT 服务接入地址及端口,工具已经默认填入,不需更改。
(3)进入 OneNET 平台设备管理页面中。查看平台侧对于设备状态的刷新情况。可以看到,“灯光
主控点”设备已上线
步骤 5:接入受控设备“客厅顶灯”
(1)保持前一个 MQTT 工具窗口不关闭,另外新打开
窗口,同样在红色箭
头所指的三个关键输入框中填入“客厅顶灯”设备的各项信息:
提示:对于“客厅顶灯”,当时输入的鉴权信息是:light1。如果大家按照之前步骤也是这样填
入的话。
(2)检查无误后,点击“Connect”按钮,连接到 OneNET 平台。查看平台侧对于设备状态的刷新
情况。可以看到 “客厅顶灯”设备已上线。
步骤 6:接入受控设备“卧室落地灯”
( 1 ) 好了,举一反三,我们 仍然保留之前打开的 MQTT 工具窗口 不变,再次新打开
窗口,按照”卧室落地灯”的设备 ID、所属产品 ID、鉴权信息进行配置,并点
击 Connect 按钮连接,在 OneNET 平台中检查设备在线状态变化情况。
提示 1:操作结果应跟之前设备的连接情况相同。
提示 2:我们应该接入了三个设备,如下这样子,看上去不是那么直观,毕竟我们没有使用真实的硬
件设备,而且是支持 MQTT 的硬件设备来接入,但对于 OneNET 平台来说,都一视同仁。
(2)将所有窗口的 Connect 按钮都点击,可以在 OneNET 平台上看到所有设备的状态都变为在线。
提示:可能页面的状态刷新不是那么及时,可以稍微等待下,确认设备的连接情况在页面上的状态对
应。
(3)依次点击所有 MQTT 工具窗口中的 “Disconnect”按钮,断开工具的 MQTT 连接,刷新设
备列表页面,查看显示的设备状态信息:可以看到其状态都变为离线
步骤 7: 设置官方 MQTT 工具的连接保持为长连接。
工具的默认连接保持时长为 120 秒,这样当其空闲 2 分钟后,工具会自动断开,从 OneNET 平台上
看就是设备一会儿就掉线了。为确保后续实训效果,我们勾中该工具的“Auto KeepAlive”选项,再次点击“Connect”,以设备身份接入 OneNET 平台
1.2.6 为所有受控设备设置订阅
步骤 1: 对“客厅顶灯”设备设置一个“订阅”
(1)在 “客厅顶灯”设备所代表的 MQTT 工具窗口中部“订阅”tab 页里,填写一个订阅主题,
本次实训任务填写内容为“power“;
(2)点击“订阅“按钮,告知 OneNET 平台该设备对“power”主题的相关数据感兴趣,有这方面
的数据均要告知本设备。
提示:如何确认打开的 MQTT 窗口是代表的“客厅顶灯”设备?可以根据之前填写的设备 ID 和鉴权
信息来识别。
步骤 2: 对“卧室落地灯”设备设置一个相同的“订阅”
(1)在 “卧室落地灯”设备所代表的 MQTT 工具窗口中部“订阅”tab 页里,填写同样的一个订阅
主题,本次实训任务填写内容为“power“;
(2)点击“订阅“按钮,告知 OneNET 平台该设备也对“power”主题的相关数据感兴趣,有这方
面的数据均要告知本设备。
提示:我们可以将需要相同控制的设备都订阅相同的主题,以获得一致的信息推送。
1.2.7 主控设备发布消息,受控设备均获得消息
步骤 1: 在“灯光主控点”设备中发布一个数据消息,主题为“power”
(1)在 “灯光主控点”设备所在 MQTT 工具窗口中部“发布”tab 页里,发布一个主题,本次实训
任务填写内容为“power“,在内容部分里可以填“Hello everyone, 关灯!”
(2)点击“Submit“按钮,发布一条“power”相关主题的数据到 OneNET 平台。
步骤 2: 分别在不同的受控设备上查看收到的平台推送消息
(1)在 “客厅顶灯”设备所在 MQTT 工具窗口中部“收到的 Topic”tab 页里,查看来自 OneNET
平台推送的信息,可以看到有一条推送,且内容正是“Hello everyone, 关灯!”。
步骤 3: 继续在“灯光主控点”设备上发布主题为 power 的不同内容的消息。查看在不同的受控
设备上收到的平台推送消息,注意观察其推送时间。
提示:本次实训任务,发布的内容可以自行填写,并不影响任务的实训效果。
1.3 拓展实训部分
1.3.1 OneNET 平台直接下发命令给接入的设备
步骤 1: OneNET 平台直接下发命令给接入的设备
(1)在 OneNET 平台上设备列表页面,对“客厅顶灯”设备记录所在的条目,点击右侧“更多操作”,
在浮动窗口里点“下发命令”功能。
(2)在打开的页面中可以看到,当前下发命令数量为 0 个,点击右侧的“下发命令”按钮。
(3)在右侧滑出的窗口中选择字符串格式,输入数据“跟我一起做 ABC”,点击下方的“发送”按
钮。
步骤 2:查看对应设备接受命令情况
在“客厅顶灯”设备所在 MQTT 工具窗口中部“[OneNET]平台指令接收”tab 页里,查看来自 OneNET
平台下发的指令,可以看到有一条指令,且内容正是“跟我一起做 ABC
1.3.2 接入的设备上报数据到 OneNET 平台
步骤 1: 接入的设备上报数据到 OneNET 平台
(1)在 “客厅顶灯”设备所在 MQTT 工具中部“[OneNET]上传数据点”tab 页里,选择“数据类
型”下拉列表框:数据类型 7:分号间隔的 Float 数据(带时间戳)
(2)在下方切换的窗口里输入数据流 ID:1,数据:26.6;30.4;33.5;38.6;36.5;30.2;20.1;18.8。注意
各个数据之间用英文分号“;”隔开,点击“上传数据”。
提示:这里的各个浮点数据是模拟灯光强度等物理量,这里的数据并不要求必须真实,跟实训任务的
场景一致,也可以是一天之内的客厅温度数据等等,以分号间隔即可。
步骤 2:在 OneNET 平台上查看设备上报数据
在 OneNET 平台上设备列表页面,对“客厅顶灯”设备记录所在条目,点击右侧“数据流”,查看
收到的数据流,可以看到数据 ID 为 1 的数据集。
点击该数据集,可以看到之前上传的数据展开成为一个折线图。