MQTT - 通过 TLS 設置 MQTT 客户端

材料準備

  • AmebaD [AMB21 / AMB22 / AMB23 / BW16] x 1

範例説明

In this example, we connect Ameba to a MQTT broker using TLS authentication. Then send messages as a publisher and receive messages from as a subscriber. Open the MQTT example “File” “Examples” “AmebaMQTTClient” “MQTT_TLS”

1

請修改與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端口號。

4

5