一、mqtt.fx下载
http://mqttfx.jensd.de/index.php/download
http://www.jensd.de/apps/mqttfx/1.7.1/
二、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
- User Name:DeviceName&ProductKey,根据平台上设备参数填写即可
- Password:这里涉及到签名算法,需要将一系列参数拼接,后通过hmacsha1算法计算,得到一串数值,可以使用阿里云官方提供的小工具,或者自己手动计算:
官方小工具链接:
https://files.alicdn.com/tpsservice/88413c66e471bec826257781969d1bc7.zip?spm=a2c4g.11186623.2.21.442958002uC6N5&file=88413c66e471bec826257781969d1bc7.zip
自动计算方法:
填入相关参数即可生成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加密
协议protocol建议选TLSv1.2
三、mqtt连接,上下行数据测试
连接成功,设备在线,点击Topic列表
订阅一个具有订阅权限的topic。
后台选在线调试,下发一条指令
收到云端数据。
选择Publish发送一条数据,选择具有发布权限的topic
点击publish,推送消息到云端,看到云端设备状态已经被改变。
最后在LOG中可以看到上下行信息
参考自阿里云文档:
https://help.aliyun.com/document_detail/86706.html?spm=a2c4g.11186623.6.929.459f6405ayX0YA