【教程】小安派BW21-CBV-Kit——MQTT 客户端以与 Broker 通信

[复制链接]
查看26 | 回复0 | 前天 15:28 | 显示全部楼层 |阅读模式

用料

示例

说明

MQTT(消息队列遥测传输)是 IBM 和 Eurotech 提出的一种协议。MQTT 官网介绍: MQTT 是一种机器对机器 (M2M)/“物联网”连接协议。它被设计为一种极其轻量级的发布/订阅消息传输。我们可以说 MQTT 是一种专为 IoT 设计的协议。MQTT 基于 TCP/IP,通过发布/订阅传输/接收数据。

请参考下图:

image.png

在 MQTT 的运行中,有几个角色:

  • 发布者:通常发布者是配备传感器的设备 (例如阿梅巴)。发布者将传感器的数据上传到 MQTT-Broker,用作具有 MQTT 服务的数据库。
  • Subscriber:Subscriber 是指接收和 观察消息,例如笔记本电脑或移动电话。
  • Topic: Topic 用于对消息进行分类,例如 消息的主题可以是 “PM2.5” 或 “Temperature”。订阅者可以 选择他们想要接收的主题的消息。

在本页中,有 3 个将 BW21-CBV-Kit 连接到 MQTT-Broker 的示例。 然后以发布者身份发送消息,并以 MQTT-Broker 的身份接收消息 订户。

  1. MQTT_Basic
  2. MQTT_Auth
  3. MQTT_Publish_In_Callback

MQTT_Basic 示例

  • 打开 MQTT 范例 “文件” -> “示例” -> “AmebaMQTTClient” -> “MQTT_Basic”
  • 请修改一些 WiFi 相关的参数和一些与 MQTT 相关的信息:

image.png

  • “ssid” 是用于 Internet 访问的网络 SSID。
  • “pass” 是用于访问 Internet 的网络密码。
  • “mqttServer”是指 MQTT-Broker,有免费的 MQTT 沙箱 “test.mosquitto.org” 进行测试。
  • “clientId” 是 MQTT-Broker 用于识别连接的 装置。
  • “publishTopic” 是示例中已发布消息的主题 它是 “outTopic”。订阅 “outTopic” 的设备将 接收消息。
  • “publishPayload” 是要发布的内容。
  • “subscribeTopic” 是告诉 MQTT-broker 订阅哪个主题 由董事会。
  • 接下来,编译代码并将其上传到 BW21-CBV-Kit。按下重置按钮,然后打开串行监视器。

image.png

  • 当 BW21-CBV-Kit 连接到 MQTT 服务器后,它会向 outTopic 发送消息 hello world。要查看该消息,需要设置另一个 MQTT 客户端。

“MQTT Explore” 是一个全平台应用程序,可以设置为 MQTT 客户端。请参阅网站 http://mqtt-explorer.com/

  • 点击左上角的 “Connections” 开始新的连接设置。“名称” 可以自定义。将 “Host” 设置为 “test.mosquitto.org”。

image.png

  • 点击底部的 “ADVANCED” 进行主题设置。使用与 Board 的 “publishTopic” 相同的 “outTopic”。单击“添加”,然后单击“返回”。

image.png

  • 点击“连接”。
  • “hello world” 消息显示在左侧。
  • 在右侧的 “Publish” 下,使用 “inTopic” 与 “sucribeTopic” 的 “sucribeTopic” 相同。
  • 选择 “raw” 并输入 “Text hello Ameba”,然后点击 “PUBLISH”。
  • Board 将收到 MQTT Explorer 发布的 raw 消息。

请注意:

由于 host 是免费的公共主机,因此 Board 可能会收到意外消息。

image.png

image.png

MQTT_Auth 示例

  • 打开 MQTT 范例 “文件” -> “示例” -> “AmebaMQTTClient” -> “MQTT_Auth”
  • 请修改一些 WiFi 相关的参数和一些与 MQTT 相关的信息:

image.png

  • “mqttServer”是指 MQTT-Broker,有免费的 MQTT 认证主机 由 AmebaIoT 主页 “cloud.amebaiot.com” 提供。请访问 https://www.amebaiot.com/en/cloud-getting-started/ 进行帐户设置。
  • “clientId” 是 MQTT-Broker 用于识别连接的 装置。在本例中,它是已注册的设备名称。请参阅 https://www.amebaiot.com/en/cloud-service/
  • “clientUser” 是身份验证用户名。在本例中,它是 Realtek IoT/Wi-Fi MCU 解决方案网站的登录用户名。请注意,它 如果以 “clientUser” 身份使用电子邮件,则无法接收消息。
  • “clientPass” 是身份验证密码。在本例中,它是 Realtek IoT/Wi-Fi MCU 解决方案网站的登录密码。
  • 其他参数与 pervious 相同。
  • 接下来,编译代码并将其上传到 BW21-CBV-Kit。
  • 按下重置按钮,然后打开串行监视器。
  • 当 BW21-CBV-Kit 连接到 MQTT 服务器后,它会向 outTopic 发送消息 hello world。

要查看该消息,需要设置另一个 MQTT 客户端。

  • 启动 MQTT Explore,并设置身份验证连接。
  • 点击左上角的 “Connections” 开始新的连接设置。
  • “名称” 可以自定义。
  • 将 “Host” 设置为 “cloud.amebaiot.com”。
  • “用户名”和“密码”与“clientUser”和“clientPass”相同。

image.png

  • 点击底部的 “ADVANCED” 进行主题设置。使用与 Board 的 “publishTopic” 相同的 “outTopic”。单击“添加”,然后单击“返回”。
  • 点击“连接”。
  • “hello world” 消息显示在左侧。
  • 在右侧的 “Publish” 下,使用 “inTopic” 与 “sucribeTopic” 的 “sucribeTopic” 相同。
  • 选择 “raw” 并输入 “Text hello Ameba”,然后点击 “PUBLISH”。
  • BW21-CBV-Kit 将收到 MQTT Explorer 发布的 raw 消息。

请注意,“hello world”有时不会显示,因为开发板在 MQTT Explorer 之前连接到 MQTT 代理。

image.png

image.png

MQTT_Publish_In_Callback 示例

  • 打开 MQTT 范例 “文件” -> “示例” -> “AmebaMQTTClient” -> “MQTT_Publish_In_Callback”
  • 请修改一些 WiFi 相关的参数和一些相关信息 到 MQTT:

image.png

  • 所有参数都与 MQTT_Auth 示例相同。
  • 接下来,编译代码并将其上传到 BW21-CBV-Kit。
  • 按下重置按钮, 然后打开串行监视器。
  • 将 BW21-CBV-Kit 连接到 MQTT 服务器后, 它将消息 “hello world” 发送到 “outTopic”。

要查看该消息, 需要设置另一个 MQTT 客户端。

  • 启动 MQTT Explore,并设置身份验证连接。所有设置为 与 MQTT_Auth 示例相同。
  • 点击底部的 “ADVANCED” 进行主题设置。使用与 “publishTopic” 的 Cookie 的单击“添加”,然后单击“返回”。
  • 点击“连接”。
  • “hello world” 消息显示在左侧。
  • 在右侧的 “Publish” 下,使用 “inTopic” 与 “sucribeTopic” 相同的开发板。
  • 选择 “raw” 并输入 “Text hello Ameba”,然后点击 “PUBLISH”。
  • Board 将收到 MQTT Explorer 发布的 raw 消息。
  • 然后 从板侧发布,MQTT Explorer 将在左侧。

请注意,“hello world” 有时不会显示,因为 板在 MQTT Explorer 之前连接到 MQTT 代理。

image.png

image.png

用心做好保姆工作
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则