MQTT - 通过 TLS 设置 MQTT 客户端

材料准备

范例说明

在此范例中,Ameba 使用 TLS 身份验证连接到 MQTT 服务器。然后作为publisher发送消息并作为subscriber接收消息。

在“File”->“Examples”->“AmebaMQTTClient”->“MQTT_TLS”中打开范例。

请修改WiFi相关参数和MQTT参数。

2

• “ssid”是用于连接网路的SSID。
• “pass”是用于连接网路的密码。
• “mqttServer”是指MQTT-Broker,有免费的MQTT “test.mosquitto.org”可用于测试。
• “clientId”是 MQTT-Broker 识别连接设备的id。
• “publishTopic”是已发布消息的主题,在范例中为“outTopic”。订阅“outTopic”的设备将会收到该消息。
• “publishPayload”是要发布的内容。
• “subscribeTopic”是告诉MQTT-broker要订阅哪个主题。

接下来,编译代码并将其上传到Ameba。按重置按钮,然后打开serial monitor。

2

Ameba 连接到 MQTT 服务器后,向“outTopic”发送消息“hello world”。要查看消息,请使用另一个 MQTT 客户端。有关如何设置基于 PC 的 MQTT 客户端,请参阅 MQTT_Basic 范例说明。

除了使用 TLS 客户端身份验证外,还需要生成 OpenSSL 私钥并从服务器获取签署凭证。出于测试目的,可以按照 https://test.mosquitto.org/ssl/ 上的说明从 test.mosquitto.org 获取签署凭证。

将字串“certificateBuff”和“privateKeyBuff”替换为签署凭证和 OpenSSL 私钥,确保它们的格式与范例代码中所示的格式相同。将“MQTT_TLS_SERVER_AUTH”设置为“1”。

3

请先确认已安装QQ通讯软体