1.1 实训目的
1、通过中移物联网平台注册创建 MQTT 设备;
2、使用官方 MQTT 工具模拟智能家居系统实现;
3、利用平台的 MQTT 消息服务能力,实现智能家居系统设备的实时受控;理解设备之间数据传递和 平台命令下发/上传数据的异同。
1.2 实训步骤
1.2.1 创建基于 MQTT 协议的产品
步骤1 进入中移物联网首页的“开发者中心”; 点击左上角 标记,从“全部产品”下各级功能中找到“基础服务”类别,点选“多协议接入” 功能点进入。
步骤 2: 创建产品 选择“MQTT(旧版)“的 Tab 页,可以看到目前没有产品,则点击“添加产品”按钮,进行添加。 在右侧滑出的页面中添加必要的产品信息:如本次实训任务中,产品名称输入“智能家居”,行业选 择“智能家居”,类别选择“家用电器”->”厨房电器”->“电热饭盒”等信息。
步骤 3:继续完善产品有关信息, 最后点击确定,保存各项信息,稍等页面提示产品创建成功,可以创建设备了。
1.2.2 创建基于 MQTT 的主控设备
1.配置主控设备的信息 在右侧滑出的添加设备页面中,设备名称输入“灯光主控点”,鉴权信息输入“publish”(全小写),其他保持默认。最后点击“添加”保存第一个设备的信息。
1.2.3 创建基于 MQTT 的受控设备
步骤 1: 添加设备 点击 按钮,添加一个新的设备,名称输入“客厅顶灯”、鉴权信息输入“light1”, 点击“添加”完成第二个设备的创建。
步骤 2: 继续添加设备 继续点击 按钮,添加另一个新的设备:设备名称输入“卧室落地灯”、鉴权信息输入 “light2”,点击“添加”完成该设备的创建。
1.2.4 下载并使用官方提供的 MQTT 工具
步骤 1:通过文档中心找到官方工具
在当前设备列表页面的右上部分,我们可以随时进入“文档中心”查看有关帮助,那么官方提供的 MQTT 测试工具也可以从这里进入获取到。 在左侧菜单中,展开“设备开发指南”项,选择“测试工具”功能。
步骤 2:下载 MQTT 工具 选择 MQTT 工具“点击下载”。下载后解压其中的 文件到本地磁盘目录, 双击运行该文件,能正常运行。完成即可进入下一步。
1.2.5 使用官方 MQTT 工具模拟设备接入
步骤 1: 记录 OneNET 平台中已经注册的产品及创建好的设备 ID 提示:该步目的用于填入到工具中,使得发起的 MQTT 连接里可以携带正确的信息,使其请求能被 OneNET 平台正确认证,作为一个设备顺利接入。
步骤 2:我们在这里回顾下如何查看产品的 ID ⚫ 查看产品信息:
步骤 3:查看设备的 ID: ⚫ 查看设备信息:
步骤 4:接入主控设备“灯光主控点”
(1)打开 如下图所示界面,注意红色箭头所指的三个关键输入:
⚫ DeviceID,即之前步骤查看的 “灯光主控点”的设备 ID;
⚫ ProductID,即之前步骤查看的 MQTT 产品的 ID;
⚫ AuthInfo,即之前步骤中“灯光主控点”在创建时填入的鉴权信息 提示:对于““灯光主控点”,当时输入的鉴权信息是:publish。如果大家按照之前步骤也是 这样填入的话。
(2)填入所需信息,检查无误后,点击“Connect”按钮,连接到 OneNET 平台。 提示:OneNET 平台的 MQTT 服务接入地址及端口,工具已经默认填入,不需更改。
(3)进入 OneNET 平台设备管理页面中。查看平台侧对于设备状态的刷新情况。可以看到,“灯光 主控点”设备已上线。
步骤 5:接入受控设备“客厅顶灯”
(2)检查无误后,点击“Connect”按钮,连接到 OneNET 平台。查看平台侧对于设备状态的刷新 情况。可以看到 “客厅顶灯”设备已上线。
步骤 6:接入受控设备“卧室落地灯”
( 1 ) 好了,举一反三,我们 仍然保留之前打开的 MQTT 工具窗口 不变,再次新打开 窗口,按照”卧室落地灯”的设备 ID、所属产品 ID、鉴权信息进行配置,并点 击 Connect 按钮连接,在 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”,点击下方的“发送”按 钮。
(4)在命令列表页面可以看到下发命令数为 1,且状态为已发往设备。
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 的数据集。
点击该数据集,可以看到之前上传的数据展开成为一个折线图。
4.实训小结 实训小结:
1、中移物联网平台创建 MQTT 产品的入口、注册 MQTT 设备的注意点;
2、官方 MQTT 协议工具的使用技巧,如何正确将智能家居系统场景映射到 MQTT 设备客户端中;
3、利用平台的 MQTT 消息服务能力,实现设备之间的数据实时传递,以及平台与设备之间的命令下 发和数据上传。