文章分享

开放、平等、协作、快速、分享

当前位置:首页>文章分享

使用MQTT.fx接入物联网平台(阿里云)

摘录:HCTech 无锡和控电子   时间:2020-08-07   访问量:3633

本文档以MQTT.fx为例,介绍使用第三方软件以MQTT协议接入物联网平台。MQTT.fx是一款基于Eclipse Paho,使用Java语言编写的MQTT客户端工具。支持通过Topic订阅和发布消息。

前提条件

已在物联网平台控制台创建产品和设备,并获取设备证书信息(ProductKey、DeviceName和DeviceSerect)。创建产品和设备具体操作细节,请参考创建产品单个创建设备批量创建设备


使用MQTT.fx接入

  1. 下载并安装MQTT.fx软件。请访问MQTT.fx官网

  2. 打开MQTT.fx软件,单击设置图标。

    MQTT.fx
  3. 设置连接参数。物联网平台目前支持两种连接模式,不同模式设置参数不同。

    说明 设置参数时,请确保参数值中或参数值的前后均没有空格。
    • 单击下载Password生成小工具。解压缩下载包后,双击sign文件,即可使用。

      使用Password生成小工具的输入参数:

    • 手动生成方法如下:

    • productKey:设备所属产品Key。可在控制台设备详情页查看。

    • deviceName:设备名称。可在控制台设备详情页查看。

    • deviceSecret:设备密钥。可在控制台设备详情页查看。

    • timestamp:(可选)时间戳。

    • clientId:设备的ID信息,与Client ID中${clientId}一致。

    • method:选择签名算法类型,与Client ID中signmethod确定的加密方法一致。

    • ${clientId}为设备的ID信息。可取任意值,长度在64字符以内。建议使用设备的MAC地址或SN码。

    • securemode为安全模式,TCP直连模式设置为securemode=3,TLS直连为securemode=2

    • signmethod为算法类型,支持hmacmd5hmacsha1

    • TCP直连:Client ID中securemode=3,无需设置SSL/TLS信息。

    • TLS直连:Client ID中securemode=2,需要设置SSL/TLS信息。

    1. 拼接参数。

      提交给服务器的clientIddeviceNameproductKeytimestamp(timestamp为非必选参数)参数及参数值依次拼接。

      本例中,clientId值为12345,deviceName值为device,productKey值为alxxxxxxxxx,拼接结果为:clientId12345deviceNamedeviceproductKeyalxxxxxxxxx

    2. 加密。

      通过Client ID中确定的加密方法,使用设备deviceSecret,将拼接结果加密。

      假设设备的deviceSecret值为abc123,加密计算格式为hmacsha1(abc123,clientId12345deviceNamedeviceproductKeyalxxxxxxxxx)

    3. 设置基本信息。

      MQTT.fx

      参数说明
      Profile Name输入您的自定义名称。
      Profile Type选择为MQTT Broker
      MQTT Broker Profile Settings
      Broker Address连接域名。

      格式:${YourProductKey}.iot-as-mqtt.${region}.aliyuncs.com

      其中,${region}需替换为您物联网平台服务所在地域的代码。地域代码,请参见地域和可用区。如:alxxxxxxxxx.iot-as-mqtt.cn-shanghai.aliyuncs.com

      Broker Port设置为1883。
      Client ID填写mqttClientId,用于MQTT的底层协议报文。

      格式固定:${clientId}|securemode=3,signmethod=hmacsha1|

      完整示例:12345|securemode=3,signmethod=hmacsha1|

      其中,

      说明 输入Client ID信息后,请勿单击Generate
      General

      General栏目下的设置项可保持系统默认,也可以根据您的具体需求设置。

    4. 单击User Credentials,设置User Name和Password。

      MQTT.fx

      参数说明
      User Name由设备名DeviceName、符号(&)和产品ProductKey组成。

      固定格式:${YourDeviceName}&${YourPrductKey}

      完整示例如:device&alxxxxxxxxx

      Password密码由参数值拼接加密而成。
      说明 如果您使用的MQTT.fx版本,在粘贴Password后不显示具体的字符串,只要光标已从输入框的前部移至了后部,则表示粘贴成功,请勿重复粘贴。

      您可以使用物联网平台提供的生成工具自动生成Password,也可以手动生成Password。

    5. (可选)TLS直连模式(即securemode=2)下,需要选择SSL/TLS,勾选Enable SSL/TLS,设置Protocol。建议Protocol选择为TLSv1.2

      说明 TCP直连模式(即securemode=3)下,无需设置SSL/TLS信息,直接进入下一步。
      MQTT.fx
  4. 设置完成后,单击右下角的OK

  5. 单击Connect进行连接。

    MQTT.fx

下行通信测试

从物联网平台发送消息,在MQTT.fx上接收消息,测试MQTT.fx与物联网平台连接是否成功 。

  1. 在MQTT.fx上,单击Subscribe

  2. 输入一个设备具有订阅权限的Topic,单击Subscribe,订阅这个Topic。

    MQTT.fx

    订阅成功后,该Topic将显示在列表中。

    MQTT.fx
  3. 物联网平台控制台中,该设备的设备详情页,Topic列表下,单击已订阅的Topic对应的发布消息操作按钮。

  4. 输入消息内容,单击确认

    MQTT.fx
  5. 回到MQTT.fx上,查看是否接收到消息。

    MQTT.fx

上行通信测试

在MQTT.fx上发送消息,通过查看设备日志,测试MQTT.fx与物联网平台连接是否成功 。

  1. 在MQTT.fx上,单击Publish

  2. 输入一个设备具有发布权限的Topic,和要发送的消息内容,单击Publish,向这个Topic推送一条消息。

    MQTT.fx
  3. 物联网平台控制台中,该设备的设备详情 > 日志服务 > 上行消息分析栏下,查看上行消息。

查看日志

在MQTT.fx上,单击Log查看操作日志和错误提示日志。

MQTT.fx


上一篇:在MQTT服务器上使用TLS进行安全通信

下一篇:Paho-MQTT C接入示例(阿里云)

在线咨询

点击这里给我发消息 售前咨询专员

点击这里给我发消息 售后服务专员

在线咨询

免费通话

24小时免费咨询

请输入您的联系电话,座机请加区号

免费通话

微信扫一扫

微信联系
返回顶部