项目三 MQTT

实训任务 1 基于 MQTT 的智能家居系统实现


1.1 实训目的

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

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

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

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

1.2 实训步骤

1.2.1 创建基于 MQTT 协议的产品

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

选择多协议接入,产品信息可随意创建,联网方式选择wifi,操作系统:无

多协议接入

选择“MQTT(旧版)“的 Tab 页,点击“添加产品”按钮,进行添加。

创建产品

1.2.2 创建基于 MQTT 的主控设备

步骤 1: 在之前创建的产品中添加设备

当我们在上一步成功建立产品后点击“立即添加设备”,页面即进入设备列表管理页面。我们也可以

点击左侧的“设备列表”菜单,同样进入该管理页面。

目前因为是新产品,当前设备数为 0,我们点击右侧的“添加设备”按钮。

主控点


1.2.3 创建基于 MQTT 的受控设备

步骤 1: 添加设备

点击“添加设备”按钮,添加一个新的设备,名称输入“客厅顶灯”、鉴权信息输入“light1”,

点击“添加”完成第二个设备的创建。

步骤 2: 继续添加设备

继续点击“添加设备”按钮,添加另一个新的设备:设备名称输入“卧室落地灯”、鉴权信息输入

“light2”,点击“添加”完成该设备的创建

添加完成后回到设备列表页面,可以看到有 3 个设备记录,且他们的状态是“离线”


1.2.4 下载并使用官方提供的 MQTT 工具

步骤 1:通过文档中心找到官方工具

在左侧菜单中,展开“设备开发指南”项,选择“测试工具”功能。


下载工具

步骤 2:下载 MQTT 工具

选择 MQTT 工具“点击下载”。下载后解压其中的   simulate-device.exe   文件到本地磁盘目录,双击运行该文件,能正常运行。完成即可进入下一步。


1.2.5 使用官方 MQTT 工具模拟设备接入

步骤 1: 记录 OneNET 平台中已经注册的产品ID及创建好的设备 ID

步骤2 :接入主控设备“灯光主控点”

(1)打开

如下图所示界面,注意红色箭头所指的三个关键输入:

DeviceID,即之前步骤查看的 “灯光主控点”的设备 ID;

ProductID,即之前步骤查看的 MQTT 产品的 ID;

AuthInfo,即之前步骤中“灯光主控点”在创建时填入的鉴权信息

主控

(2)填入所需信息,检查无误后,点击“Connect”按钮,连接到 OneNET 平台。


连接

(3)进入 OneNET 平台设备管理页面中。查看平台侧对于设备状态的刷新情况。可以看到,“灯光主控点”设备已上线。

步骤 3:接入受控设备“客厅顶灯”

(1)保持前一个 MQTT 工具窗口不关闭,另外新打开一个软件窗口,


同样在红色箭头所指的三个关键输入框中填入“客厅顶灯”设备的各项信息:

light1

(2)检查无误后,点击“Connect”按钮,连接到 OneNET 平台。查看平台侧对于设备状态的刷新情况。可以看到 “客厅顶灯”设备已上线。

     同理light2也这样配置,成功后可看到全部设备上线。

全部上线

(3)依次点击所有 MQTT 工具窗口中的 “Disconnect”按钮,断开工具的 MQTT 连接,刷新设备列表页面,查看显示的设备状态信息:可以看到其状态都变为离线。


离线


1.2.6 为所有受控设备设置订阅

步骤 1: 对“客厅顶灯”设备设置一个“订阅”

(1)在 “客厅顶灯”设备所代表的 MQTT 工具窗口中部“订阅”tab 页里,填写一个订阅主题,本次实训任务填写内容为“power“;

(2)点击“订阅“按钮,告知 OneNET 平台该设备对“power”主题的相关数据感兴趣,有这方面的数据均要告知本设备。

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)在右侧滑出的窗口中选择字符串格式,输入数据“芜湖”,点击下方的“发送”按钮。

芜湖

(4)在命令列表页面可以看到下发命令数为 1,且状态为已发往设备。


芜湖


发送成功


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 为 2的数据集。

上报数据


实训任务2   中移和物开发环境搭建

1、 实验目的

1、分析中移和物开发板套件硬件,了解各个组成部分作用;

2、熟悉开发板各个信号输入、输出点位置,了解其连接电脑的方式;

3、认识中移和物开发板的主要硬件及组成结构;

4、开发板上电方式、程序下载刷写方式;

5、简单的板级程序控制。

2、实验步骤

2.1、开发板上电

1.安装CP2102 驱动程序(位于工具包内)

安装

根据向导点击安装即可

安装

给设备上电后,打开设备管理器,查看端口,发现端口后,进入下一步

端口

2.2、开发环境准备

1.启动Keil uVision 5 软件


2.装载和物开发配套工程

打开Project菜单下“open project” 命令,打开“project”文件夹,双击HEWU_Standard.uvprojx进入工程文件


打开工程

3.工程编译

点击左上角的编译按钮开始编译,没有错误即可

编译

2.3、开发板程序刷写

1.运行串口刷写工具

拷贝配套资料目录中“工具“目录里

文件到本地目录,双击运行。

2.匹配串口,选择目标文件,点击搜索串口进行匹配

依次选择点击

3.设置开发板进入待下载状态

开发板上电后默认不是等待下载状态,需按住Boot0按键,不要松开,同时按一下复位键,这时开发板会进入下载状态,才可烧写代码。

4.下载目标程序文件

点击开始编程按钮,上述操作完成后便可刷写完成。

选择hex文件

如果刷写失败可理解第三步的做法,多次尝试拷录。

下载完成以后请按复位键或者重新上电,使开发板进入程序运行状态。

下载成功


3.3智能家居系统端到端搭建

3.1实训目的

1.通过中移和物平台实现自定义的智能家居系统。

2.利用平台的数据接入以及应用能力,实现智能家居系统端的快速搭建和调试上线。


3.2、实训步骤

1.创建中移和物的智能家居产品

1.进入中移和物的平台

通过onenect平台“全部产品”,可选择进入中移和物平台

选择

使用OneNET平台账号登录

2.创建产品

进入首页点击加速智能进入产品管理

开发者中心

然后进行创建产品

创建

选择产品类别选择其他

输入产品名称,然后根据下图进行创建


创建完成就可以看到自己的产品条目了(记录产品ID)

3.2.定义智能家居系统具备的功能

1.产品功能定义

先进行产品功能定义,  在自定义功能处进行添加(选择自由配置

配置

1.定义“温度”数据上报能力

                功能类型:属性值

                功能点名称:温度

                字段名称: temperature

                数据类型:数值型

                数值范围:0 --50

                间距:0.1

                单位:℃

                传输类型:只上报

温度

2.继续添加“湿度”数据上报能力

湿度

3.添加“触控开关”数据上报能力

触控开关

4.添加“彩虹灯色彩”控制能力

彩虹灯色彩

5.添加“彩虹灯亮度”控制能力

彩虹灯亮度

6.添加“智能窗帘”控制能力

智能窗帘

7.添加“洗衣机”控制能力

洗衣机

8.添加“空调”控制能力

空调

2.检查信息

全部添加完成后会呈现这种状态,记得进行对比检查数据是否相同。

检查


3.APP界面设计

1.编辑app模板

点击此处进行APP界面设计

点进去以后点击编辑模板

模块大小设置为“中模块”,图标可按照下图或自行选择设计

点击保存以后返回APP配置界面

2.和物APP

在刚才的编辑模板界面中可以扫码下载和物APP,或者各个应用商店搜索即可。


安装以后可扫码查看APP的界面效果

4.接入设备

1.设备分配入网ID

打开Keil uVision 5软件,

根据下图找到product_def.h文件,修改产品ID(第30行),改完以后保存。

2.配置真实设备的序列号

打开user.c自行设置或默认一个唯一的设备号

3.按功能序号及字段名称配置设备的数据上报和下发点,与平台一致

找到func_ops.c文件,定位到45-52行代码,将这些代码跟和物平台的代码进行比对,确定无误后保存。并重新烧写hex文件到开发板中

5.设备配网及接入

1.通过和物平台进行配网

点击设备接入测试,然后点击真实设备调试

此处点击添加设备,跳转出二维码后,手机进行扫描配置

手机端操作如下



2.真实设备进入配网模式

长按外设板上的普通按键2,约3秒钟后,蓝灯闪烁,设备自动进入配网模式,可以进行配网。

3.手机端发送WiFi配置给设备

和物APP 点击开始连接设备即可配网

配网成功界面如下图:

4.设置重启按新的WiFi网络接入平台

给设备重新上电,等待约5秒后,可以看到外设板普通LED灯3、灯4(均为蓝色)都已经点亮,表示设备板已经接入到和物平台。



6.智能家居系统中APP的使用

1.和物APP打开设备

在和物app设备列表页可可以看到新增了一个“智能家居系统”的设备,它不再是虚拟的,而是已映射到真实设备,我们点击该设备,进入到具体信息展示和控制页面

2.变更彩虹灯的颜色

点击APP界面彩虹灯色彩模块,选择绿色按钮,观察设备的状态变化。

3.变更亮度

1.拖动彩虹灯亮度模块的滑动条,到某个位置后放开,观察设备的状态变化。

2.多次点击彩虹灯亮度模块左右两端的“-”和“+”符号,观察设备变化

4.调整窗帘动作

1.点击APP界面智能窗帘模块,选择正转按钮,观察设备的状态变化,点击停止按钮,观察设备变化。

2.如发现点击的按钮望动作,与实际设备动作不符,则依次排查和物平台数据点定义,设置程序中对于控制数据点颜色定义是否一致。

4、实训小结

本次实验,又让我了解了云平台的相关新知识,认识了中移和物开发板的主要硬件及组成结构,实验内容真实有趣,虽有一些问题断断续续,但在同学与老师的指导帮助下成功完成,收获挺大的。

你可能感兴趣的:(项目三 MQTT)