使用MQTT.fx接入阿里云物联网平台
参考阿里云官方文档:
https://help.aliyun.com/document_detail/140507.html?spm=a2c4g.11174283.6.584.3a8b1668DTRPAb
以及CSDN另一篇文章写的挺详细的。
https://blog.csdn.net/qq_45097019/article/details/107418853
本文档以MQTT.fx为例,介绍使用第三方软件以MQTT协议接入物联网平台。MQTT.fx是一款基于Eclipse Paho,使用Java语言编写的MQTT客户端工具。支持通过Topic订阅和发布消息,用来调试MQTT服务很方便,也是常备工具。
1. 在阿里云物联网平台控制台创建产品和设备,并获取设备证书信息(ProductKey、DeviceName和DeviceSerect)。创建产品和设备具体操作细节,请参考创建产品、单个创建设备和批量创建设备。
2. MQTT.fx接入测试
- )下载并安装MQTT.fx软件。请访问MQTT.fx官网。
- )打开MQTT.fx软件,单击设置图标。
- )设置设备连接参数。物联网平台目前支持两种连接模式,不同模式设置参数不同。
-
设置基本信息。
参数 说明 Profile Name 输入您的自定义名称。 Profile Type 选择为 MQTT Broker。 MQTT Broker Profile Settings Broker Address 连接域名。格式:${YourProductKey}.iot-as-mqtt.${region}.aliyuncs.com。
其中,${region}需替换为您物联网平台服务所在地域的代码。地域代码,请参见地域和可用区。如:alxxxxxxxxxx.iot-as-mqtt.cn-shanghai.aliyuncs.com。
Broker Port 设置为1883。 Client ID 填写mqttClientId,用于MQTT的底层协议报文。格式固定:${clientId}|securemode=3,signmethod=hmacsha1|。
完整示例:
12345|securemode=3,signmethod=hmacsha1|
。其中,
- ${clientId}为设备的ID信息。可取任意值,长度在64字符以内。建议使用设备的MAC地址或SN码。
- securemode为安全模式,TCP直连模式设置为securemode=3,TLS直连为securemode=2。
- signmethod为算法类型,支持hmacmd5和hmacsha1。
说明 输入Client ID信息后,请勿单击Generate。
GeneralGeneral栏目下的设置项可保持系统默认,也可以根据您的具体需求设置。
password生成工具:
官方下载后解压,打开signhtml文件(其实是nodejs写的一个小服务)
阿里云设备信息:
-
-
参数 说明 User Name 由设备名DeviceName、符号(&)和产品ProductKey组成。 固定格式:${YourDeviceName}&${YourPrductKey}。
完整示例如:device&alxxxxxxxxxx。
Password 密码由参数值拼接加密而成。 您可以使用物联网平台提供的生成工具自动生成Password,也可以手动生成Password。
-
单击下载Password生成小工具。
使用Password生成小工具的输入参数:
- productKey:设备所属产品Key。可在控制台设备详情页查看。
- deviceName:设备名称。可在控制台设备详情页查看。
- deviceSecret:设备密钥。可在控制台设备详情页查看。
- timestamp:(可选)时间戳。
- clientId:设备的ID信息,与Client ID中${clientId}一致。
- method:选择签名算法类型,与Client ID中signmethod确定的加密方法一致。
- 手动生成方法如下:
- 拼接参数。
提交给服务器的clientId、deviceName、productKey和timestamp(timestamp为非必选参数)参数及参数值依次拼接。
本例中拼接结果为:
clientId12345deviceNamedeviceproductKeyalxxxxxxxxx
- 加密。
通过Client ID中确定的加密方法,使用设备deviceSecret,将拼接结果加密。
假设设备的deviceSecret值为abc123,加密计算格式为
hmacsha1(abc123,clientId12345deviceNamedeviceproductKeyalxxxxxxxxxx)
- 拼接参数。
-
- (可选)TCP直连模式下,无需设置SSL/TLS信息,直接进入下一步。
TLS直连模式下,需要单击SSL/TLS,勾选 Enable SSL/TLS,并将Protocol选择为TLSv1。
- 填写完成后,单击OK。
-
- 设置完成后,单击 Connect进行连接。
下行通信测试
从物联网平台发送消息,在MQTT.fx上接收消息,测试MQTT.fx与物联网平台连接是否成功 。
- 在MQTT.fx上,单击Subscribe。
- 输入一个设备具有订阅权限的Topic,单击Subscribe,订阅这个Topic。
订阅成功后,该Topic将显示在列表中。
- 在物联网平台控制台中,该设备的设备详情页,Topic列表下,单击已订阅的Topic对应的发布消息操作按钮。
- 输入消息内容,单击确认。
- 回到MQTT.fx上,查看是否接收到消息。
下发消息: