基于 MQTT 的智能家居系统实现
3.1 实训目的
1、通过中移物联网平台注册创建 MQTT 设备;
2、使用官方 MQTT 工具模拟智能家居系统实现;
3、利用平台的 MQTT 消息服务能力,实现智能家居系统设备的实时受控;理解设备之间数据传递和平台命令下发/上传数据的异同。
3.2 实训步骤
3.2.1 创建基于 MQTT 协议的产品
步骤 1 进入中移物联网首页的“开发者中心”
步骤 2: 创建产品
选择“MQTT(旧版)“的 Tab 页,可以看到目前没有产品,则点击“添加产品”按钮,进行添加。
在右侧滑出的页面中添加必要的产品信息:如本次实训任务中,产品名称输入“智能家居”,行业选择“智能家居”,类别选择“家用电器”->”厨房电器”->“电热饭盒”等信息。
步骤 3:继续完善产品有关信息,最后点击确定,保存各项信息,稍等页面提示产品创建成功,可以创建设备了。
3.2.2 创建基于 MQTT 的主控设备
步骤 1: 在之前创建的产品中添加设备
当我们在上一步成功建立产品后点击“立即添加设备”,页面即进入设备列表管理页面。我们也可以点击左侧的“设备列表”菜单,同样进入该管理页面。
目前因为是新产品,当前设备数为 0,我们点击右侧的“添加设备”按钮:
步骤 2: 配置主控设备的信息
在右侧滑出的添加设备页面中,设备名称输入“灯光主控点”,鉴权信息输入“publish”(全小写),其他保持默认。最后点击“添加”保存第一个设备的信息。
3.2.3 创建基于 MQTT 的受控设备
步骤 1: 添加设备
点击添加设备按钮,添加一个新的设备,名称输入“客厅顶灯”、鉴权信息输入“light1”,点击“添加”完成第二个设备的创建。
步骤 2: 继续添加设备
继续点击添加设备按钮,添加另一个新的设备:设备名称输入“卧室落地灯”、鉴权信息输入“light2”,点击“添加”完成该设备的创建
添加完成后回到设备列表页面,可以看到有 3 个设备记录,且他们的状态是“离线”
3.2.4 下载并使用官方提供的 MQTT 工具
步骤 1:通过文档中心找到官方工具,展开“设备开发指南”项,选择“测试工具”功能。
步骤 2:下载 MQTT 工具选择 MQTT 工具“点击下载”。下载后解压其中的 simulate-device.exe 文件到本地磁盘目录,双击运行该文件,能正常运行。完成即可进入下一步。
3.2.5 使用官方 MQTT 工具模拟设备接入
步骤 1: 记录 OneNET 平台中已经注册的产品及创建好的设备 ID
提示:该步目的用于填入到工具中,使得发起的 MQTT 连接里可以携带正确的信息,使其请求能被
OneNET 平台正确认证,作为一个设备顺利接入。
步骤 2:我们在这里回顾下如何查看产品的 ID
查看产品信息本次实训任务里,查看到的产品信息应该类似如下,注意红框部分即是所需的产品 ID:步骤3 :接入主控设备“灯光主控点”如下图所示界面,注意红色箭头所指的三个关键输入:
- DeviceID,即之前步骤查看的 “灯光主控点”的设备 ID;
- ProductID,即之前步骤查看的 MQTT 产品的 ID;
- AuthInfo,即之前步骤中“灯光主控点”在创建时填入的鉴权信息
(2)填入所需信息,检查无误后,点击“Connect”按钮,连接到 OneNET 平台。
(3)进入 OneNET 平台设备管理页面中。查看平台侧对于设备状态的刷新情况。可以看到,“灯光主控点”设备已上线。
步骤 4:接入受控设备“客厅顶灯”
(1)保持前一个 MQTT 工具窗口不关闭,另外新打开 窗口,同样在红色箭
头所指的三个关键输入框中填入“客厅顶灯”设备的各项信息:
提示:对于“客厅顶灯”,当时输入的鉴权信息是:light1。如果大家按照之前步骤也是这样填入的话。
2)检查无误后,点击“Connect”按钮,连接到 OneNET 平台。查看平台侧对于设备状态的刷新情况。可以看到 “客厅顶灯”设备已上线。
(3)依次点击所有 MQTT 工具窗口中的 “Disconnect”按钮,断开工具的 MQTT 连接,刷新设备列表页面,查看显示的设备状态信息:可以看到其状态都变为离线。
3.2.6 为所有受控设备设置订阅
步骤 1: 对“客厅顶灯”设备设置一个“订阅”
(1)在 “客厅顶灯”设备所代表的 MQTT 工具窗口中部“订阅”tab 页里,填写一个订阅主题
(2)点击“订阅“按钮,告知 OneNET 平台该设备对“power”主题的相关数据感兴趣,有这方面的数据均要告知本设备。
步骤 1: 在“灯光主控点”设备中发布一个数据消息,主题为“power”
(1)在 “灯光主控点”设备所在 MQTT 工具窗口中部“发布”tab 页里,发布一个主题,本次实训任务填写内容为“power“,在内容部分里可以填“Hello everyone, 关灯!”
(2)点击“Submit“按钮,发布一条“power”相关主题的数据到 OneNET 平台。
步骤 2: 分别在不同的受控设备上查看收到的平台推送消息
(1)在 “客厅顶灯”设备所在 MQTT 工具窗口中部“收到的 Topic”tab 页里,查看来自 OneNET
平台推送的信息,可以看到有一条推送,且内容正是“Hello everyone, 关灯!”
步骤 3: 继续在“灯光主控点”设备上发布主题为 power 的不同内容的消息。查看在不同的受控设备上收到的平台推送消息,注意观察其推送时间。
3.3 拓展实训部分
3.3.1 OneNET 平台直接下发命令给接入的设备
步骤 1: OneNET 平台直接下发命令给接入的设备
(1)在 OneNET 平台上设备列表页面,对“客厅顶灯”设备记录所在的条目,点击右侧“更多操作”,在浮动窗口里点“下发命令”功能
(2)在打开的页面中可以看到,当前下发命令数量为 0 个,点击右侧的“下发命令”按钮。
(3)在右侧滑出的窗口中选择字符串格式,输入数据“跟我一起做 ABC”,点击下方的“发送”按钮。
(4)在命令列表页面可以看到下发命令数为 1,且状态为已发往设备
步骤 2:查看对应设备接受命令情况
在“客厅顶灯”设备所在 MQTT 工具窗口中部“[OneNET]平台指令接收”tab 页里,查看来自 OneNET平台下发的指令,可以看到有一条指令,且内容正是“跟我一起做 ABC”。
3.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 的数据集。
点击该数据集,可以看到之前上传的数据展开成为一个折线图。
实训任务2 中移和物开发环境搭建
3.2、实训步骤
1.创建中移和物的智能家居产品
1.进入中移和物的平台
通过onenect平台“全部产品”,可选择进入中移和物平台
2.创建产品
进入首页点击加速智能进入产品管理
然后进行创建产品
选择产品类别选择其他
输入产品名称,然后根据下图进行创建
3.2.定义智能家居系统具备的功能
1.产品功能定义
先进行产品功能定义, 在自定义功能处进行添加(选择自由配置)
1.定义“温度”数据上报能力
2.继续添加“湿度”数据上报能力
3.添加“触控开关”数据上报能力
4.添加“彩虹灯色彩”控制能力
5.添加“彩虹灯亮度”控制能力
6.添加“智能窗帘”控制能力
7.添加“洗衣机”控制能力
8.添加“空调”控制能力
2.检查信息
全部添加完成后会呈现这种状态,记得进行对比检查数据是否相同。
3.APP界面设计
1.编辑app模板
点击此处进行APP界面设计
点进去以后点击编辑模板
模块大小设置为“中模块”,图标可按照下图或自行选择设计
点击保存以后返回APP配置界面
2.和物APP
在刚才的编辑模板界面中可以扫码下载和物APP。
安装以后可扫码查看APP的界面效果
4.接入设备
1.设备分配入网ID
打开user.c自行设置或默认一个唯一的设备号
2.按功能序号及字段名称配置设备的数据上报和下发点,与平台一致
3.设备配网及接入
1.通过和物平台进行配网点击设备接入测试,然后点击真实设备调试
此处点击添加设备,跳转出二维码后,手机进行扫描配置
手机端联网
2.真实设备进入配网模式
长按外设板上的普通按键2,约3秒钟后,蓝灯闪烁,设备自动进入配网模式,可以进行配网。
3.手机端发送WiFi配置给设备
和物APP 点击开始连接设备即可配网
配网成功界面如下图:
4.设置重启按新的WiFi网络接入平台
给设备重新上电,等待约5秒后,可以看到外设板普通LED灯3、灯4(均为蓝色)都已经点亮,表示设备板已经接入到和物平台。
6.智能家居系统中APP的使用
1.和物APP打开设备
在和物app设备列表页可可以看到新增了一个“智能家居系统”的设备,它不再是虚拟的,而是已映射到真实设备,我们点击该设备,进入到具体信息展示和控制页面
2.变更彩虹灯的颜色
点击APP界面彩虹灯色彩模块,选择绿色按钮,观察设备的状态变化。
总结
- 对MQTT协议有了详细认识。
- 对中移何物开发板的使用,和配网等操作有了一定的了解,能够独立完成实验,