使用mqtt.fx模拟真实设备连接阿里云平台

时间:2024-04-12 09:55:05

一、mqtt.fx下载

http://mqttfx.jensd.de/index.php/download
使用mqtt.fx模拟真实设备连接阿里云平台

http://www.jensd.de/apps/mqttfx/1.7.1/
使用mqtt.fx模拟真实设备连接阿里云平台

二、mqtt.fx配置

使用mqtt.fx模拟真实设备连接阿里云平台
其中:

  • Profile Name:为名字,自己任取

  • Profile Type:选MQTT Broker

  • Broker Adress:[productkey].iot-as-mqtt.cn-shanghai.aliyuncs.com,[productkey]根据自己设备在阿里云上的productkey做修改,shanghai为节点区域名称,一般不用改动,国内保持为shanghai就行,因为国内各节点对于设备接入阿里云的连接速度都差不多。

  • Broker Port:MQTT端口号,1883

  • ClientID:12345|securemode=2,signmethod=hmacsha1|,12345为设备ID信息,长度在64字符以内,建议使用设备的MAC地址或者SN,securemode为加密方式,2即使用SSL/TLS加密的TLS直连,3为不使用SSL/TLS的TCP直连。
    signmethod为算法类型,支持hmacmd5和hmacsha1。

点击User Credentials,需要填写User Name和Password
使用mqtt.fx模拟真实设备连接阿里云平台

  • User Name:DeviceName&ProductKey,根据平台上设备参数填写即可
  • Password:这里涉及到签名算法,需要将一系列参数拼接,后通过hmacsha1算法计算,得到一串数值,可以使用阿里云官方提供的小工具,或者自己手动计算:
    官方小工具链接:
    https://files.alicdn.com/tpsservice/88413c66e471bec826257781969d1bc7.zip?spm=a2c4g.11186623.2.21.442958002uC6N5&file=88413c66e471bec826257781969d1bc7.zip

自动计算方法:
使用mqtt.fx模拟真实设备连接阿里云平台
使用mqtt.fx模拟真实设备连接阿里云平台
填入相关参数即可生成password,timestamp可以不填。

手动计算方法:
1.拼接参数。
提交给服务器的clientId、deviceName、productKey和timestamp(timestamp为非必选参数)参数及参数值依次拼接。
本例中,clientId值为12345,deviceName值为device,productKey值为alxxxxxxxxx,拼接结果为:clientId12345deviceNamedeviceproductKeyalxxxxxxxxx。
2.加密。
通过Client ID中确定的加密方法,使用设备deviceSecret,将拼接结果加密。
假设设备的deviceSecret值为abc123,加密计算格式为hmacsha1(abc123,clientId12345deviceNamedeviceproductKeyalxxxxxxxxx)。

点击SSL/TLS设置SSL/TLS加密
使用mqtt.fx模拟真实设备连接阿里云平台
协议protocol建议选TLSv1.2

三、mqtt连接,上下行数据测试

使用mqtt.fx模拟真实设备连接阿里云平台
使用mqtt.fx模拟真实设备连接阿里云平台
连接成功,设备在线,点击Topic列表
使用mqtt.fx模拟真实设备连接阿里云平台
订阅一个具有订阅权限的topic。
使用mqtt.fx模拟真实设备连接阿里云平台
后台选在线调试,下发一条指令
使用mqtt.fx模拟真实设备连接阿里云平台
使用mqtt.fx模拟真实设备连接阿里云平台
收到云端数据。

选择Publish发送一条数据,选择具有发布权限的topic
使用mqtt.fx模拟真实设备连接阿里云平台
点击publish,推送消息到云端,看到云端设备状态已经被改变。
使用mqtt.fx模拟真实设备连接阿里云平台
最后在LOG中可以看到上下行信息
使用mqtt.fx模拟真实设备连接阿里云平台

参考自阿里云文档:
https://help.aliyun.com/document_detail/86706.html?spm=a2c4g.11186623.6.929.459f6405ayX0YA