基于 MQTT 的智能家居系统实现

1.1 实训目的

1、通过中移物联网平台注册创建 MQTT 设备;

2、使用官方 MQTT 工具模拟智能家居系统实现;

3、利用平台的 MQTT 消息服务能力,实现智能家居系统设备的实时受控;理解设备之间数据传递和

平台命令下发/上传数据的异同。

1.2 实训步骤

1.2.1 创建基于 MQTT 协议的产品

步骤 1 进入中移物联网首页的“开发者中心”

注:如提示用户需登录,则先登录后再进入;

选择“MQTT(旧版)“的Tab页,可以看到目前没有产品,则点击“添加产品”按钮,进行添加
在右侧滑出的页面中添加必要的产品信息:如本次实训任务中,产品名称输入“智能家居”,行业选择“智能家居”,类别选择“家用电器”->”厨房电器”->“电热饭盒”等信息。
1.2.2 创建基于MQTT的主控设备

步骤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 的数据集。

点击该数据集,可以看到之前上传的数据展开成为一个折线图。

你可能感兴趣的:(基于 MQTT 的智能家居系统实现)