使用MQTT.fx接入阿里云/百度云/OneNET/…系列
一、使用MQTT.fx接入阿里云MQTT服务器
二、使用MQTT.fx接入百度云MQTT服务器
三、使用MQTT.fx接入OneNET MQTT服务器
`
使用MQTT.fx接入阿里云MQTT服务器
相关下载
MQTT.fx 1.7.1这个链接应该可以用,官方旧的已经不能下载,最新5.0不是免费的。
MQTT签名计算工具根据阿里云的认证参数计算实际的client id,password
一、配置阿里云mqtt服务器
1、首先要注册一个阿里云账号,并进行实名认证。也可以直接使用支付宝/淘宝/钉钉等账号直接登录。我们找到物联网平台,并进入。
2、在实例概览找到公共实例并开通,然后进入;在设备管理>产品,单击创建产品
3、新建产品,配置相关参数;这里的数据我选择的是透传数据,方便后面我们测试。
4、在设备列表页签,单击添加设备,输入设备名称(DeviceName)为device1,设置备注名称为设备1,单击确认。
创建设备成功后,在弹出的添加完成对话框,单击一键复制设备证书获取设备证书。
您也可单击前往查看,在设备详情页面,单击DeviceSecret右侧查看,获取设备证书。
设备证书包含ProductKey、DeviceName和DeviceSecret,是设备与物联网平台进行通信的重要身份认证。
![在这里插入图片描述](https://img-blog.csdnimg.cn/e9e319ea84e84c97aa14f0b371a2daf7.png
5、在我们创建的设备处点击查看进入到设备信息,然后复制mqtt连接参数。
二、MQTT.fx连接MQTT服务器
1.MQTT签名参数
注意:老版本的阿里云只能通过设备证书包含ProductKey、DeviceName和DeviceSecret这三个证书参数计算出连接参数,但是现在的阿里云可以直接使用连接参数
- 在上面一步我们获取了mqtt连接参数,我们可以直接使用这个参数
- 通过设备证书参数计算连接参数
(1)首先下载我开头提供的mqtt签名工具,然后解压打开其中的sign.html文件
(2)在MQTT签名计算页面,根据页面提示,输入对应信息,如下图所示。
2.连接
(1)我们打开MQTT.fx,单击菜单栏中的Extras,选择Edit Connection Profiles。也可以直接点击齿轮
(2)如下图我们对MQTT.fx进行参数配置
参数 | 参数说明 |
---|---|
Profile Name | 自定义名称随便输入 |
Profile Type | MQTT Broker |
Broker Address | 可以使用mqtt连接参数中的mqttHostUrl,也可以是a1***.iot-as-mqtt.cn-shanghai.aliyuncs.com a1***为本示例产品的ProductKey |
Broker Port | 设置为1883 |
Client ID | 对于阿里云来说是由固定格式${ClientId}|securemode=${Mode},signmethod=${SignMethod}|timestamp=${timestamp}|。这个具体说明请看阿里云mqtt说明文档,这里我们把云平台上连接参数或者计算生成的mqttClientid填过来就可以了 |
User Name | 固定格式为${DeviceName}&${ProductKey}。这里我们也可以不用管,直接填我们获取或者计算生成的username就好了 |
Password | 获取的mqtt连接参数或计算生成的password直接填就好了 |
(3)设置完成后,单击右下角的OK,单击Connect,右侧绿灯亮表示连接成功。
三、发布订阅数据
这里我们使用自定义topic进行发布和订阅数据,自定义topic可以直接发送数据没有特殊格式和解析
在设备管理>产品>Topic类列表可以查看有哪些Topic
自定义Topic的格式如下:
/${ProductKey}/${deviceName}/user/get | 订阅 |
---|---|
/${ProductKey}/${deviceName}/user/update | 发布 |
/${ProductKey}/${deviceName}/user/update/error | 发布 |
发布
在MQTT.fx的Publish处输入发布topic主题,然后点击Publish发布消息
在监控运维>日志服务>云端日志 查看我们发布的消息
订阅
在MQTT.fx的Subscribe处输入订阅的topic主题,点击Subscribe订阅topic主题。订阅成功会出现如下标识。
在设备管理>设备>Topic列表处发布消息
发布成功后,我们MQTT.fx的订阅主题处可以看到对于的消息