1.添加设备
2.配置接口与协议
不同物联网平台认证方式可能不同,不需要的参数,空着即可。
2.1 亚马逊
2.2 阿里云
注意模拟器和HMI都要配置一遍,区别较大是【证书】及【密钥】的路径,模拟器和HMI配置不一样
如:服务器证书,复制到“资源/图片"下
则:
模拟器配置应填: ./res/pic/emqxsl-ca.crt (注意:证书路径斜杠,如用"\"则应为:.\\res\\pic\\emqxsl-ca.crt)
HMI配置应填:/customer/prm/res/pic/emqxsl-ca.crt
3.发布消息
如工程不需要发布消息,跳过此步
3.1添加一个用于发布消息的设备变量
*软元件类型:选PubVariable
*地址:表示要发布的主题。如需发布不同的主题,可在执行发布重新设置
*字节数:注意要大于等于实际发布消息的长度
3.2组态
设计页中,放一个【功能键】,添加点击事件,代码如下:
void Frm02::wMButton2_clk_cb(uint16_t code, LvEvent e) {
/*wMButton2(发布)的点击事件*/
Dvchar dv = (Dvchar)vm->get("变量_9");//获取设备变量
dv->setAddress("pubtopic");//如需改变发布主题,加这句
dv->set("message:hello!");//发布信息
}
3.3 运行测试发布功能
用MQTTX等第三方软件连接并订阅所测试的主题,测试是否收到HMI发布的消息。
4.订阅消息
参数配置正确,则会自动启动订阅。如工程不需要订阅消息,跳过此步。
4.1添加一个用于发布订阅的设备变量
*软元件类型:选SubVariable
*地址:表示要订阅的主题。如需发布不同的主题,可在执行发布重新设置;如发布多个主题,用|分隔,如 a|b|c
*字节数:注意要大于等于实际接收消息的长度
4.2 接收订阅的消息
设置值变化函数
代码如下:
void HmiApp::v10_tri_cb(uint16_t code, LvEvent e) {
//变量[变量_10]值变化触发函数
string v;
vm->getChar("变量_10", v);
cout<<v<<endl;//处理接收到的消息
}
4.3 接收到的消息的主题
如您还关心消息来自哪个主题,添加如下变量
*软元件类型:选SubTopic
*地址:无意义
*字节数:注意要大于等于实际主题的长度
参照4.2对接收到的主题进行处理。
5.模拟器运行需要将mosquitto_pub.exe放到测试目录下
因是可执行文件,请自行下载安装mosquitto,安装后将mosquitto_pub.exe复制过来
https://mosquitto.org/files/binary/win64/mosquitto-2.0.21a-install-windows-x64.exe
6.try it!
见演示工程https://help.simtutai.cn/docs/MQTT-tong-yong-wu-lian-wang-iot-aws-aliyun-emqx-tuya-deng