Skip to content

集成 MQTT - 通过 MindConnect IoT Extension

MindConnect IoT Extension 支持许多协议和接口,例如,MQTT、REST、OPC-UA。MQTT 是一种消息传输协议,它采用代理发布/订阅模式。此模式可将发送特定消息的发布者客户端与接收该消息的其它订阅者客户端分开。

本指南演示了如何通过 MindConnect IoT Extension 使用 MQTT,并介绍了其部分基本功能。

信息

执行时间:30 分钟
测试所使用的 MindSphere 版本:2018 年 10 月 8 日版本

网络

如果将 MQTTBox 集成在使用代理服务器的公司网络中,则将无法发挥作用。

先决条件

  • 计算机中已安装 MQTTBox,例如 Google Chrome 插件
  • MindSphere 账号
  • MindConnect IoT Extension 升级 - 以便使用 MindConnect IoT Extension。要进行升级,您的租户管理员需要联系其指定的客户经理或客户成功经理。
  • 必须为您的用户分配以下角色
  • mdsp:core:TenantAdmin,在 User Management 中分配
  • mdsp:core:mci.user,在 User Management 中分配
  • Devicemanagement User,在 MindConnect IOT Extension 中分配

将 MQTTBox 连接到 MindSphere

MQTTBox 可用于推送和订阅消息。它使用特殊的 主题和模板 向 MindConnect IoT Extension 发送消息,消息将实时显示。

  1. 打开 MQTTBox。
  2. 单击“创建 MQTT 客户端”
  3. 在“MQTT 客户端设置”表单中填写如下相关信息。未列出的字段可以保留默认值。

    字段 配置
    MQTT 客户端名称 {uniqueName}
    MQTT 客户端 ID {arbitraryUniqueID}
    协议 mqtt/tcp
    主机 mciotextension.{yourMCIoTExtensionRegion}-central.{mindsphere-domain}
    例如:mciotextension.eu-central.mindsphere.io
    用户名 {tenantName}/{mciotExtensionUsername}
    密码 {password}
    将时间戳附加到 MQTT 客户端 ID? 取消选中
    代理与 MQTT v3.1.1 兼容 选中
    清除会话 选中
    对传出 QoS 零级消息进行排队 选中
    保持激活 选中
  4. 单击“保存”。

建立到 MindConnect IoT Extension 的连接。

通过 MQTT 创建设备

要向 MindSphere 发送数据,必须在 MindConnect IoT Extension 中创建设备。

  1. 在 MQTTBox 中打开新的 MQTT 客户端。
  2. 在发布表单中输入下面列出的配置参数。这将通知 MQTTBox 使用模板 100 在 MindConnect IoT Extension 中新建设备。

    字段 配置
    要发布的主题 s/us
    QoS 0 - Almost Once
    保留 取消选中
    有效载荷类型 strings / JSON / XML / Characters
    有效载荷 100,My first MQTT device,MCIoT_MQTTdevice
  3. 单击“发布”。

在 MindConnect IoT Extension 中验证设备

  1. 在 MindSphere Launchpad 中打开 MindConnect IoT Extension。
  2. 使用有效凭证登录。
  3. 导航到“设备管理”→“所有设备”。
  4. 从列表中选择新建的设备,查看其详细信息。 MCIOT verify device
  5. 在“信息”选项卡中查看常规信息。 MCIOT device info
  6. 选择“标识”选项卡并查看外部 ID。 此 ID 是自动创建的,作用是将设备链接到 MQTT 客户端(此 ID 与 MQTTBox 的“MQTT 客户端 ID”相同)。 MCIOT device identity

通过 MQTT 发送数据

管理设备信息

目前,设备的常规信息仅包含所有者、名称和类型等元数据。本部分介绍如何通过设置硬件参数和从 MQTT 客户端接收数据的时间间隔来管理 MindConnect IoT Extension 中的设备信息。

  1. 在 MQTTBox 中打开 MQTT 客户端。
  2. 在发布表单中输入下面列出的配置参数。这将通知 MQTTBox 使用 模板 110 和 117 来分别设置硬件参数(序列号、型号、修订版本)以及监视设备可用性所需的相应时间间隔。

    字段 配置
    要发布的主题 s/us
    QoS 0 - Almost Once
    保留 取消选中
    有效载荷类型 strings / JSON / XML / Characters
    有效载荷 110,MQTT test model,1.2.3
    117,10
  3. 单击“发布”。

  4. 重新加载 MindConnect IoT Extension 中 MQTT 设备的“信息”选项卡,以验证“设备状态”和“硬件”部分是否已更新。 MCIOT Device manage info

发送测量值

时间戳

可选择是否在 MQTT 客户端和 MindConnect IoT Extension 之间的连接中传递时间戳。如果不传递时间戳,服务器会使用当前服务器时间自动创建一个时间戳。

MQTTBox 可提供常用测量值的模板,例如,信号强度、温度和电池。本部分介绍如何 发送模板测量值 以及如何 发送自定义测量值

模板测量值

  1. 在 MQTTBox 中打开 MQTT 客户端。
  2. 在发布表单中输入下面列出的配置参数。这将通知 MQTTBox 使用 模板 210、211 和 212 分别发送信号强度、温度和电池测量值。

    字段 配置
    要发布的主题 s/us
    QoS 0 - Almost Once
    保留 取消选中
    有效载荷类型 strings / JSON / XML / Characters
    有效载荷 210,-87
    211,24
    212,95
  3. 单击“发布”。

  4. 对有效载荷中的值进行微调后多次重新发布,例如,使用:

    字段 配置 1 配置 2 配置 3
    有效载荷 210,-85
    211,20
    212,90
    210,-80
    211,22
    212,92
    210,-50
    211,28
    212,85
  5. 在 MindConnect IoT Extension 中打开设备的“测量值”选项卡,并验证已发布的值是否显示在三个图表中。如果未显示这些值,请在设置中启用“实时”。 MCIOT Device measurements

自定义测量值

  1. 在 MQTTBox 中打开 MQTT 客户端。
  2. 在发布表单中输入下面列出的配置参数。这将通知 MQTTBox 使用 模板 200 发送自定义测量值。

    字段 配置
    有效载荷 200,myCustomTemperatureMeasurement,fahrenheit,75.5,F
  3. 对有效载荷中的值进行微调后多次重新发布,例如,使用:

    字段 配置
    有效载荷 200,myCustomTemperatureMeasurement,fahrenheit,85.5,F
    200,myCustomTemperatureMeasurement,fahrenheit,60.5,F
    200,myCustomTemperatureMeasurement,fahrenheit,55.8,F
    200,myCustomTemperatureMeasurement,fahrenheit,70.2,F
    200,myCustomTemperatureMeasurement,fahrenheit,91.5,F
  4. 在 MindConnect IoT Extension 中打开设备的“测量值”选项卡,并验证是否已经添加自定义测量值图表。

通过 MQTT 接收事件和错误

  1. 在 MQTTBox 中打开 MQTT 客户端。
  2. 在订阅表单中输入下面列出的配置参数。这将通知 MQTTBox 订阅错误队列,在发生错误时会在该队列中发布通知。

    字段 配置
    要订阅的主题 s/e
    QoS 0 - Almost Once
  3. 单击“订阅”。 MQTT Device subscribe

  4. 在发布表单中输入下面列出的配置参数,以便触发错误通知。列出的有效载荷与使用的模板不对应将导致出错。

    字段 配置
    要发布的主题 s/us
    QoS 0 - Almost Once
    保留 取消选中
    有效载荷类型 strings / JSON / XML / Characters
    有效载荷 211,cold
  5. 单击“发布”。

  6. 订阅部分中会显示一条错误消息。 MQTT Device subscribe error

信息

请参见 MQTT 备忘单 了解更多可订阅主题。

创建子设备

  1. 在 MQTTBox 中打开 MQTT 客户端。
  2. 在发布表单中输入下面列出的配置参数。这将通知 MQTTBox 使用 模板 101 新建子设备。

    字段 配置
    要发布的主题 s/us
    QoS 0 - Almost Once
    保留 取消选中
    有效载荷类型 strings / JSON / XML / Characters
    有效载荷 101,API_MQTT_Child,API MQTT Child,c8y_MQTTChildType
  3. 单击“发布” Create Child Device via MQTT

  4. 在 MindConnect IoT Extension 中打开设备的新“子设备”选项卡,并验证是否已创建子设备。 Child Device created via MQTT

创建报警

本部分介绍如何在 MQTTBox 中为设备创建报警。可以使用四个 模板 创建对应于不同严重程度的报警:

  • 模板 301 创建严重报警。
  • 模板 302 创建主要报警。
  • 模板 303 创建次要报警。
  • 模板 304 创建警告报警。

以下步骤演示如何为设备定义主要报警和警告报警。

  1. 在 MQTTBox 中打开 MQTT 客户端。
  2. 在发布表单中输入下面列出的配置参数。这将通知 MQTTBox 使用 模板 302 和 304 分别创建主要报警和警告报警。

    字段 配置
    要发布的主题 s/us
    QoS 0 - Almost Once
    保留 取消选中
    有效载荷类型 strings / JSON / XML / Characters
    有效载荷 302,My_MQTT_FirstDevice_Major,No data received from device
    304,simple warning
  3. 单击“发布”。

  4. 在 MindConnect IoT Extension 中打开设备的新“报警”选项卡,并验证各报警类型中是否已列出相应报警。 MQTT Create alarm for device

创建事件

  1. 在 MQTTBox 中打开 MQTT 客户端。
  2. 在发布表单中输入下面列出的配置参数。这将通知 MQTTBox 使用 模板 401 创建位置事件。您可以从 https://www.latlong.net/ 中获取某一位置的纬度和经度。

    字段 配置
    要发布的主题 s/us
    QoS 0 - Almost Once
    保留 取消选中
    有效载荷类型 strings / JSON / XML / Characters
    有效载荷 401,49.872825,8.651193
  3. 单击“发布”

  4. 在 MindConnect IoT Extension 中打开设备的“事件”选项卡,并验证是否已经列出位置事件。 Create Event MCIoT
  5. 在 MQTTBox 中再次打开 MQTT 客户端。
  6. 在发布表单中输入下面列出的配置参数。这将通知 MQTTBox 使用 模板 402 创建位置事件并更新设备位置。

    字段 配置
    有效载荷 402,49.872825,8.651193
  7. 单击“发布”。

  8. 导航至 MindConnect IoT Extension。
  9. 在 MindConnect IoT Extension 中打开设备的“位置”选项卡和“跟踪”选项卡,并验证设备的位置是否已更新。 MCIOT Location event

相关链接

还有问题?

向社区提问


除非另行声明,该网站内容遵循MindSphere开发许可协议.


Last update: July 11, 2019