使用mqtt.fx对接百度天工物接入平台

1. 云端准备工作

1.1. 注册并登录IoT

注册并登录百度物接入平台,完成实名认证后方可使用。

1.2. 创建计费套餐

目前百度天工物平台需要需要创建计费套餐才可使用,计费方式如下:

免费量在学习阶段足够使用了,接下来讲述如何开通。

开通后界面如下:

2. 云端操作 — 创建云端设备

2.1. 创建项目

物接入服务需要先创建一个项目,每个项目会为您对应一个接入点(endpoint)。一个项目表示一个完整的物接入服务,通过项目可以将不同项目的设备进行隔离和管理。

当前每个账户能创建 100 个项目,含 1 个设备型项目和 99 个数据型项目。

点击创建项目:

扫描二维码关注公众号,回复: 8535486 查看本文章

填写信息之后提交:

创建项目后,在项目列表页可以看到物接入默认提供的三类地址,选择不同的地址,意味着可以通过不同的方式连接到百度智能云物接入:

  • tcp://yourendpoint.mqtt.iot.gz.baiduce.com:1883,端口1883,不支持传输数据加密,可以通过MQTT.fx客户端连接。
  • ssl://yourendpoint.mqtt.iot.gz.baiduce.com:1884,端口1884,支持SSL/TLS加密传输,MQTT.fx客户端连接,参考配置MQTT客户端。
  • wss://yourendpoint.mqtt.iot.gz.baidubce.com:8884,端口8884,支持 Websockets 方式连接,同样包含 SSL 加密,参考Websockets Client。

本实验我们先使用第一个不加密方式连接测试,然后使用加密方式连接测试。

2.2. 获取对接信息

成功创建物接入项目(设备型项目)后,点击项目名称,进入配置物接入设备型项目页面,创建影子并获取连接信息。

2.2.1. 创建物模型

点击项目名称进入后,选择「物模型」,进入物模型列表页面,点击「新建物模型」。填写名称、属性等信息后,点击创建即可。

物模型用来表示一类(或同一型号的一批)设备。可为设备定义一套属性模板,在创建物影子时可以引用该模板,实现业务的快速部署


2.2.2. 创建物影子

在左侧选择「物影子」,进入物影子列表页面,点击「新建物影子」。输入名称,并选择需要的物模型(这里我们选择了刚才创建的 SmartStreetLight ),点击创建即可完成,此时会弹出连接信息:

物影子与真实设备一一对应,是设备在云端体现。通过一组 json,反映设备最后一次上报的状态信息。


2.2.3. 获取连接信息

物影子创建完成时,会弹出连接信息,建议下载保存备用:


2.3. 查看主题(Topic)列表

MQTT 消息的收发是基于主题的。

设备型项目的主题是由系统定义的,可点击相应影子的卡片,通过以下页面查看,可根据实际需求选择主题。每个消息均需为 json 格式。


至此,即可通过获取到的连接信息,建立设备与影子之间的连接,进行数据的上报与反控下发。

详细的信息可以参考官方文档:物影子操作——使用开源MQTT客户端

3. 使用mqtt.fx作为客户端测试不加密传输(mqtt)

配置 MQTT 的应用客户端,可以快速验证是否可以实现与物接入服务交流发送或者接收消息。

3.0. 前提条件

参考我的另一篇博客,下载并安装MQTT.fx客户端(1.7.1版本)。

注意: MQTT.fx 1.7.0版本对带有 $ 的 主题(Topic)处理存在 bug,请避免使用此版本进行测试。

3.1. 添加配置文件

  1. 打开MQTT.fx,单击“设置”图标:

  1. 单击弹出的对话框的左下角的“添加”图标,新增一个配置文件,按照下面的设置填写相应字段:
  • Profile Name:Test Baidu Tiangong
  • Broker Address:8sdmjix.mqtt.iot.bj.baidubce.com
  • Broker Port:1883
  • Client ID:随机生成(点击generate按钮)

  1. 选择“User Credentials”选项卡,并且按以下字段填写:
  • User Name: 8sdmjix/SmartStreetLight001
  • Password: xbcpwb5t9rqt9su5

  1. 单击“OK”按钮保存设置。

3.2. 连接服务器

选择“Test Baidu Tiangong”,然后单击“Connect”按钮,连接成功之后如图:

3.3. 客户端订阅消息

成功连接后,即可开始订阅消息。

打开 Subscribe 标签,填写主题 topic,例如:

其中SmartStreetLight001自行替换为你测试时使用的物影子名称

$baidu/iot/shadow/SmartStreetLight001/update/accepted
$baidu/iot/shadow/SmartStreetLight001/update/rejected

这两个是分别被用作 update 被接受和拒绝时返回信息,选择默认的QoS 0,点击“Subscribe”进行订阅操作,订阅成功之后如图:

3.4. 客户端发布消息

打开Publish标签,填写主题topic,例如:

$baidu/iot/shadow/SmartStreetLight001/update

其中SmartStreetLight001自行替换为你测试时使用的物影子名称。

消息质量选择默认的QoS 0,输入框中填写以下有效信息:

{
  "reported": {
    "Lightness": 100,
    "led_status": true
  }
}

其中Lightness和led_status及其值,均可自行替换为创建物模型时所指定的属性值,点击“Publish”进行发布操作。

发布之后,因为我们订阅了主题$baidu/iot/shadow/SmartStreetLight001/update,所以可以在订阅一栏中看到服务器发布回来的信息:

发布之后,在天工物接入平台也可以看到刚刚使用mqtt.fx客户端发布的消息:

4. 使用mqtt.fx作为客户端测试加密传输(mqtts)

配置 MQTT 的应用客户端,可以快速验证是否可以实现与物接入服务交流发送或者接收消息。

4.0. 前提条件

参考我的另一篇博客,下载并安装MQTT.fx客户端(1.7.1版本)。

注意: MQTT.fx 1.7.0版本对带有 $ 的 主题(Topic)处理存在 bug,请避免使用此版本进行测试。

4.1. 添加配置文件

  1. 打开MQTT.fx,单击“设置”图标:

  1. 单击弹出的对话框的左下角的“添加”图标,新增一个配置文件,按照下面的设置填写相应字段:
  • Profile Name:Test Baidu Tiangong
  • Broker Address:8sdmjix.mqtt.iot.bj.baidubce.com
  • Broker Port:1884
  • Client ID:随机生成(点击generate按钮)

  1. 选择“User Credentials”选项卡,并且按以下字段填写:
  • User Name: 8sdmjix/SmartStreetLight001
  • Password: xbcpwb5t9rqt9su5

  1. 选择“SSL/TLS”选项卡,勾上“Enable SSL/TLS”,并选择“CA signed server certificate”:

  1. 单击“OK”按钮保存设置。

4.2. 连接服务器

选择“Test Baidu Tiangong”,然后单击“Connect”按钮,连接成功之后如图:

4.3. 客户端订阅消息

成功连接后,即可开始订阅消息。

打开 Subscribe 标签,填写主题 topic,例如:

其中SmartStreetLight001自行替换为你测试时使用的物影子名称

$baidu/iot/shadow/SmartStreetLight001/update/accepted
$baidu/iot/shadow/SmartStreetLight001/update/rejected

这两个是分别被用作 update 被接受和拒绝时返回信息,选择默认的QoS 0,点击“Subscribe”进行订阅操作,订阅成功之后如图:

4.4. 客户端发布消息

打开Publish标签,填写主题topic,例如:

$baidu/iot/shadow/SmartStreetLight001/update

其中SmartStreetLight001自行替换为你测试时使用的物影子名称。

消息质量选择默认的QoS 0,输入框中填写以下有效信息:

{
  "reported": {
    "Lightness": 100,
    "led_status": true
  }
}

其中Lightness和led_status及其值,均可自行替换为创建物模型时所指定的属性值,点击“Publish”进行发布操作。

发布之后,因为我们订阅了主题$baidu/iot/shadow/SmartStreetLight001/update,所以可以在订阅一栏中看到服务器发布回来的信息:

发布之后,在天工物接入平台也可以看到刚刚使用mqtt.fx客户端发布的消息:

发布了156 篇原创文章 · 获赞 489 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/Mculover666/article/details/103803859