陈拓 [email protected] 2020/01/03-2020/01/05
MQTT.fx 是一个MQTT客户端工具,支持windows、Linux和Mac,可以对基于MQTT的云服务进行测试。
本文介绍MQTT.fx的基本用法,在《MQTT.fx脚本Scripts使用》
https://blog.csdn.net/chentuo2000/article/details/104252690
一文中介绍MQTT.fx的高级用法。
下面我们用阿里云物联网平台进行测试。
先设置阿里云物联网平台,看《阿里云物联网平台基本设置-物模型》
https://blog.csdn.net/chentuo2000/article/details/103559553
官方网址:http://mqttfx.jensd.de/index.php/download
下载最新版本:
我用的是32位版的win7,下载mqttfx-1.7.1-windows.exe。
双击mqttfx-1.7.1-windows.exe进行安装,默认安装就好。
打开MQTT.fx。
点击齿轮图标进行设置:
说明:
为配置文件起个名字:mosquitto test
格式:${YourProductKey}.iot-as-mqtt.${region}.aliyuncs.com
■ ProductKeyt
到阿里云物联网平台查看:
■ Region
物联网平台服务所在地域的代码。先去阿里云看看我的服务所在地域:
查代码:
https://help.aliyun.com/document_detail/40654.html?spm=a2c4g.11186623.2.19.3d1b5800mCdZd7#concept-h4v-j5k-xdb
华东 2 上海 cn-shanghai
所以我的Broker Address:
a14U7TTbz9q.iot-as-mqtt.cn-shanghai.aliyuncs.com
填写mqttClientId,用于MQTT的底层协议报文。
格式固定:${clientId}|securemode=3,signmethod=hmacsha1|。
其中,
■ ${clientId}为设备的ID信息。可取任意值,长度在64字符以内。建议使用设备的MAC地址或SN码。就取12345
■ securemode为安全模式,TCP直连模式设置为securemode=3,TLS直连为securemode=2。
■ signmethod为算法类型,支持hmacmd5和hmacsha1。
我的Client ID:12345|securemode=3,signmethod=hmacsha1|
注意:输入Client ID信息后,请勿单击后面的Generate。
单击User Credentials,设置User Name和Password。
■ User Name
由设备名DeviceName、符号(&)和产品ProductKey组成。
去阿里云查看设备名DeviceName和产品ProductKey:
DeviceName:BedroomTemp
ProductKey:a14U7TTbz9q
固定格式:${YourDeviceName}&${YourPrductKey}。
所以,我的User Name:BedroomTemp&a14U7TTbz9q
■ Password
下载Password生成小工具: 88413c66e471bec826257781969d1bc7.zip
https://files.alicdn.com/tpsservice/88413c66e471bec826257781969d1bc7.zip?spm=a2c4g.11186623.2.21.3d1b5800mCdZd7&file=88413c66e471bec826257781969d1bc7.zip
解压缩下载包后,双击sign文件,即可使用。
使用Password生成小工具的输入参数:
■ productKey:设备所属产品Key。可在控制台设备详情页查看。
■ deviceName:设备名称。可在控制台设备详情页查看。
■ deviceSecret:设备密钥。可在控制台设备详情页查看。
■ timestamp:(可选)时间戳。
■ clientId:设备的ID信息,与Client ID中${clientId}一致。
■ method:选择签名算法类型,与Client ID中signmethod确定的加密方法一致。
其他设置都保持默认即可。
设置完成后,单击右下角的OK。
单击Connect进行连接。
从物联网平台发送消息,在MQTT.fx上接收消息,测试MQTT.fx与物联网平台连接是否成功 。
输入一个设备具有订阅权限的Topic,例如阿里云物联网平台上的自定义Topic:/a14U7TTbz9q/BedroomTemp/user/get
在MQTT.fx上,输入/a14U7TTbz9q/BedroomTemp/user/get
单击Subscribe按钮,订阅这个Topic。
订阅成功后,该Topic将显示在列表中。
在MQTT.fx上发送消息,通过查看设备日志,测试MQTT.fx与物联网平台连接是否成功 。
输入一个设备具有发布权限的Topic,例如阿里云物联网平台上的物模型通信Topic:
/sys/a14U7TTbz9q/BedroomTemp/thing/event/property/post
在MQTT.fx上,输入/sys/a14U7TTbz9q/BedroomTemp/thing/event/property/post
和要发送的消息内容,这里是温度值 23.4。
单击Publish,向这个Topic推送一条消息。
在物联网平台控制台中,该设备的设备详情 > 日志服务 > 上行消息分析栏下,查看上下行消息。
消息详情:
消息详情:
数据格式有错误。
在MQTT.fx上,单击Log查看操作日志和错误提示日志。
推送成功。
在《树莓派连接阿里云物联网平台-订阅(nodejs)》一文中有正确的格式可供参考:
{"id":"1","version":"1.0","params":{"RoomTemp":23.4},"method":"thing.event.property.post"}
Success,成功!