MQTT - 通過 TLS 設置 MQTT 客戶端
材料準備
- AmebaPro2 [ AMB82 MINI ] x 1
範例說明
在此範例中,Ameba 使用 TLS 身份驗證連接到 MQTT 服務器。 然後作為publisher發送消息並作為subscriber接收消息。
在“File”->“Examples”->“AmebaMQTTClient”->“MQTT_TLS”中打開範例。
請修改WiFi相關參數和MQTT參數。
• “ssid”是用於連接網路的SSID。
• “pass”是用於連接網路的密碼。
• “mqttServer”是指MQTT-Broker,有免費的MQTT “test.mosquitto.org”可用於測試。
• “clientId”是 MQTT-Broker 識別連接設備的id。
• “publishTopic”是已發布消息的主題,在範例中為“outTopic”。 訂閱“outTopic”的設備將會收到該消息。
• “publishPayload”是要發布的內容。
• “subscribeTopic”是告訴MQTT-broker要訂閱哪個主題。
接下來,編譯代碼並將其上傳到Ameba。 按重置按鈕,然後打開serial monitor。
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”。