昆仑通态MQTT对接平台
<p style="color: red;font-size: larger;font-weight:bold;">
注意事项 必看:
>d 1,昆仑通态触摸屏需要连接外网。
2,MQTT发送订阅需要通过触发通道(trigger)关联的变量的变化来触发。(实际使用中请使用脚本或着其他方法来触发变量的变化,这里模拟测试使用手动输入使变量变化)
3,发布主题是触摸屏向我们平台发送数据。注意区分 **订阅消息** 页面和 **发布消息** 页面
4,MQTT发布主题的主题名称必须为 sys/device/%1/variant_data (在触摸屏操作第五步中注意)
5,订阅主题是我们控制触摸屏中的变量。注意区分 **订阅消息** 页面和 **发布消息** 页面
6,MQTT订阅主题的主题名称必须为 sys/device/%1/write_data (在触摸屏操作第七步中注意)
7,订阅消息结构定义中不能使用普通成员变量,只能使用数据成员变量。(在触摸屏操作第七步中注意)
>i步骤:平台创建BOX(填写BOX信息)------配置触摸屏参数----平台添加变量、关联项目
# BOX创建
<p style="color: blue;font-size: larger;font-weight:bold;">
在平台上前期操作:
1,登录 [天启云平台](https://cloud.ecsiot.com) ,在左侧找到 **应用中心** **第三方设备** 点击进入
![昆仑通态MQTT1.png](https://cos.easydoc.net/67848957/files/lmlhigvt.png)
2,点击左下角的 **BOX管理** **批建BOX** 输入要建的BOX个数,前期测试输入1就行,点击 **确定**
![昆仑通态MQTT2.png](https://cos.easydoc.net/67848957/files/lmlide92.png)
3,在弹出的窗口中 **所属协议** 选择 **昆仑MQTT** , **BOX来源** 选择 **BOX输入** 自己输入一个20位的随机英文字符串即可(BOX ID 是不能和其他接到平台上设备的ID重复的) **BOX名称** 输入对这个昆仑通态MQTT的备注,然后点击 **确定**
![昆仑通态MQTT3.png](https://cos.easydoc.net/67848957/files/lmlihvrr.png)
4,点击确定后会出现如下界面,在昆仑通态触摸屏中需要用到以下几个信息。
![昆仑通态MQTT4.png](https://cos.easydoc.net/67848957/files/lmlj1ac7.png)
# 触摸屏配置
<p style="color: blue;font-size: larger;font-weight:bold;">
这里新建了四个测试的变量,使用的是 **TCP7072Gi/Gt** 在电脑上模拟运行。实际真机运行效果一样,真机运行请确保触摸屏连接外网
1,打开触摸屏软件新建项目,进入如下页面
![昆仑通态MQTT6.png](https://cos.easydoc.net/67848957/files/lmllkxro.png)
2,进入 **设备窗口** 新建一个MQTT设备。如果没有,请从设备管理器添加后新建。如下图
![昆仑通态MQTT7.png](https://cos.easydoc.net/67848957/files/lmllo19g.png)
3,双击新建的MQTT设备,在打开的页面进行MQTT的设置。
打开的 **mqtt客户端属性设置**中写入在平台前期操作第四步中圈中的信息。勾选 **使用域名** 和 **用户验证** 填写完成后点击 **确定** ,如下图:
![昆仑通态MQTT8.png](https://cos.easydoc.net/67848957/files/lmllypb1.png)
**平台创建BOX的参数:**
![image.png](https://cos.easydoc.net/16860085/files/lmojk5qs.png)
4,点击确定后回到 **MQTT** 服务器配置和消息列表页面,点击 **发布** 然后在空白处右键单击,在弹出的对话框中选择添加发布主题,弹出 **发布消息** 页面
![昆仑通态MQTT9.png](https://cos.easydoc.net/67848957/files/lmlmb5ht.png)
5, **发布消息** 页面
1)**主题名称:** 必须为 <span style="color:red;">sys/device/%1/variant_data</span>
2)**主题别名:** 相当于备注,可以自定义
3) 传输质量:保留消息,时间戳建议如下图所示。
4) 普通成员变量: 相当于 文件夹 如下图中的 test
5) 数据成员变量: 是要通过MQTT发送或者接收的数据,如下图test1、test2、test3
6) 右键单击空白处或者变量节点可以弹出修改或者添加变量的弹窗。
在 **发布消息** 页面填写如下图信息,新建如下图消息结构定义,test1为整数类型代替布尔量,test2为整数,test3为浮点数,test1,test2,test3为数据成员变量,test为普通成员变量
新建完成点击确定返回 **MQTT** 服务器配置和消息列表页面
![昆仑通态MQTT10.png](https://cos.easydoc.net/67848957/files/lmlogxkn.png)
6,点击确定后回到 **MQTT** 服务器配置和消息列表页面,点击 **订阅** 然后在空白处右键单击,在弹出的对话框中选择添加发布主题,弹出 **订阅消息** 页面
![昆仑通态MQTT11.png](https://cos.easydoc.net/67848957/files/lmlo110i.png)
7, **订阅消息** 页面
1)**主题名称:** 必须为 <span style="color:red;">sys/device/%1/write_data</span>
2)订阅消息结构定义中不能使用普通成员变量,只能使用数据成员变量。
在 **订阅消息** 页面填写如下图信息,新建如下图消息结构定义,test1为整数类型代替布尔量,test2为整数,test3为浮点数,test1,test2,test3为数据成员变量
新建完成点击两次确定放回 **设备编辑窗口**,
![image.png](https://cos.easydoc.net/16860085/files/lsu42150.png)
>d注意:时间戳不能勾选!!!
8,在 **设备编辑窗口** 中双击连接变量,关联我们需要发送和接收的变量,如下图,点击确定回到编辑触摸屏画面的地方做一个简单的下载进触摸屏或者模拟器里面运行。下图为我建的一个简单画面
![昆仑通态MQTT13.png](https://cos.easydoc.net/67848957/files/lmloocbb.png)
![昆仑通态MQTT14.png](https://cos.easydoc.net/67848957/files/lmlpfgv1.png)
9,昆仑通态mqtt协议需要一个触发变量,这个触发变量变化了就会发送一次数据到平台。可以创建一个循环周期脚本,如下图:
![image.png](https://cos.easydoc.net/16860085/files/lmokhcxw.png)
# 平台端配置
## 添加变量
1.【应用中心】-【第三方设备】-【变量列表】中添加变量。磁力中添加三个变量分别为test1 布尔量,test2 整数,test3 浮点数
添加完之后,在触摸屏上修改一下触发变量的值,即可看到云平台变量前面的红点变成绿色,即表示触摸屏MQTT和云平台连接成功。此时数据会显示 888888 ,每修改一次触发变量的值。更新时间会改变。
![昆仑通态MQTT15.png](https://cos.easydoc.net/67848957/files/lmlpz78l.png)
## 关联项目
1).【项目中心】-【设备监控】中新增自由项目
2).【项目中心】-【项目配置】-【BOX管理】中点击电加BOX按钮,选择BOX来源为第三方设备中选中自定义的BOX即可。
3).然后进入【项目中心】-【数据监控】即可看到数据,在触摸屏中改变数据,然后更改触发变量的值即可使触摸屏中的数据在云平台查看,云平台更改数据也能写入触摸屏。
![昆仑通态MQTT16.png](https://cos.easydoc.net/67848957/files/lmlqgvpz.png)
## 激活项目
如果项目未设置到期时间,监控到的数据都会显示88888888,如下图:
![昆仑通态MQTT17.png](https://cos.easydoc.net/67848957/files/lmlqm5ln.png)