要连接设备,您需要首先获取设备凭据(ThingsBoard支持各种设备凭据,下文以access_token为例,MQTT协议)
设备要通过MQTT连接到tb平台,需要将MQTT的username设置为access_token,下面是access_token的几种获取方式

  • 手动创建
  • 批量配置
  • 设备自动配置
  • REST API配置

    手动创建

  • 登录到ThingsBoard实例,然后打开“设备”页面。

  • 单击表格右上角的“ +”图标,然后选择“添加新设备”。
  • 输入设备名称。例如,“我的新设备”。目前不需要其他更改。点击“添加”添加设备。
  • 单击表中的设备行以打开设备详细信息
  • 点击“复制访问令牌”。令牌(access_token)将被复制到剪贴板。
  • 将access_token作为username使用mqtt协议连接平台

image.png

批量配置

thingsboard官网批量配置介绍

  • 登录到ThingsBoard实例,然后打开“设备”页面。
  • 将CSV文件上传到系统。
  • 进行一系列配置,详情参考官网链接。

image.png

设备自动配置

在设备配置文件详情编辑里,更改【设备预配置】选项 设备预配置 的预配置策略有三个选项【禁用】【允许创建新的设备】【检查预配置的设备】 若选择【允许创建新的设备】则只要预配置设备秘钥名预配置设备秘钥就可以自动注册到tb平台 若选择【检查预配置的设备】则需要提前把设备名称通过手动或批量方式录入tb,在设备请求自动注册时进行核对。如果tb存在设备上传的设备名称且此设备未配置的情况下允许设备自动注册。这种方式更安全。

thingsboard官网设备配置介绍

  • 登录到ThingsBoard实例,然后打开设备配置页面。
  • 选择或新建一个设备配置,点击设备配置打开并编辑详情页面。
  • 步骤4设备预配置(device-provisioning)中选择允许创建新的设备(provision-strategy-created-new)。
  • 拷贝预配置设备秘钥名预配置设备秘钥

image.pngimage.pngimage.png

  • MQTTusername设置为provision连接tb平台(以MQTTBox演示操作)

image.png

  • 向topic/provision/request发送以下内容(以MQTTBox演示操作)

image.pngimage.png

  1. {
  2. "deviceName": "smokeSensor",
  3. "provisionDeviceKey": "xnugbvb1kfyn74rc3ug8",
  4. "provisionDeviceSecret": "8pg1tie8skdrgvpggwc4"
  5. }
  • 系统会给此设备在topic /provision/response返回以下内容,credentialsValue对应的值就是ACCESS_TOKEN

    1. {
    2. "credentialsValue":"9r1u4GaZ7ETJCNg0ZkUK",
    3. "credentialsType":"ACCESS_TOKEN",
    4. "status":"SUCCESS"
    5. }
  • 再以9r1u4GaZ7ETJCNg0ZkUK作为username连接tb的mqtt即可

image.png

REST API配置

全部rest api请访问thingsboard_host:port/swagger-ui.html
发送post请求到thingsboard_host:port/api/v1/provision
json内容体(provisionDeviceKey,provisionDeviceSecret获取参考本文设备自动配置)

  1. {
  2. "deviceName": "smokeSensor",
  3. "provisionDeviceKey": "xnugbvb1kfyn74rc3ug8",
  4. "provisionDeviceSecret": "8pg1tie8skdrgvpggwc4"
  5. }

返回内容如下,之后以9r1u4GaZ7ETJCNg0ZkUK为mqtt的username来连接tb

  1. {
  2. "credentialsValue":"9r1u4GaZ7ETJCNg0ZkUK",
  3. "credentialsType":"ACCESS_TOKEN",
  4. "status":"SUCCESS"
  5. }

postman演示
image.png
也可以使用thingsboard提供的rest-client

  1. <dependencies>
  2. <dependency>
  3. <groupId>org.thingsboard</groupId>
  4. <artifactId>rest-client</artifactId>
  5. <version>3.2.1</version>
  6. </dependency>
  7. </dependencies>

小可爱点赞.gif