Ameba Arduino: [RTL8722CSM] [RTL8722DM] [RTL8722DM MINI] 使用 MQTT over TLS

准备

  • AmebaD [RTL8722DM / RTL8722CSM / RTL8722DM MINI] x 1

范例说明

在此范例中,我们使用TLS身份验证将Ameba连接到MQTT服务器。然后以发布者的身份发送消息,并以订阅者的身份接收消息。打开MQTT范例, “File” -> “Examples” -> “AmebaMQTTClient” -> “MQTT_TLS”

2

请修改与WiFi相关的参数以连接到您的WiFi网络。

请修改MQTT参数以符合您的应用程序:

2

“mqttServer” 表示MQTT-Broker,我们使用免费的MQTT服务器“ test.mosquitto.org”进行测试。

“clientId” 是MQTT-Broker用来标识已连接的设备。

“publishTopic” 是发布消息的主题,我们在范例中使用“outTopic”。订阅“outTopic”的设备将收到该消息。

“publishPayload” 是要发布的内容。

“subscribeTopic” 通知MQTT-broker我们要订阅哪个主题。

接着编译程式码并将其上传到Ameba。按下重置按钮,然后打开串行端口。

3

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

如果除了服务器身份验证之外,还希望使用TLS客户端身份验证,则需要生成OpenSSL私钥并从服务器获取凭证。出于测试目的,可以按照https://test.mosquitto.org/ssl/上的指南从test.mosquitto.org获得凭证。

将字串“certificateBuff”和“privateKeyBuff”替换为凭证和OpenSSL私钥,确保它们的格式设置与范例代码中所示的相同。另外还要取消黄色部分的注解代码以启用客户端身份验证并更改MQTT端口号。

3

3

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