2018年9月21日 星期五

當 ESP8266 遇上中華電信 IoT 智慧聯網大平台 { 入門 - 05 } - 結合 ESP8266 發佈 MQTT 消息

網頁最後修改時間:2018/11/10


經過了上一篇的說明,已對於發佈 MQTT 消息到中華電信 IoT 智慧聯網大平台 (下面簡稱 CHT IoT SP 或 平台),不論是通訊的過程或是控制封包格式有了基本的了解。而在實際的應用上,是不會直接 (也不應該) 自己去合成控制封包來發送,因為這也太折磨人了!

在這一篇,我們來換個與 MQTT Broker 溝通的方法,改採用 Arduino 開發板加上 ESP8266 WiFi 模組的方式。

ESP8266 負責 WiFi 通訊,Arduino 開發板負責 ESP8266 的操作和 MQTT 控制封包的發送與接收,與定時連續發佈三個感測器的資料,並持續維持與 MQTT Broker 之間的聯繫。

2018年9月11日 星期二

當 ESP8266 遇上中華電信 IoT 智慧聯網大平台 { 入門 - 04 } - 了解 MQTT 協議,學習如何發佈 MQTT 消息

網頁最後修改時間:2018/09/30

中華電信 IoT 智慧聯網大平台 ( 下面簡稱 平台 或 CHT IoT SP ) 的API 文件介紹可以知道,CHT IoT SP 支援 RESTful、MQTT 和 WebSocket 三種傳輸協定;關於 RESTful,已經在入門網頁 [01][02][03] 做過介紹。從這篇開始到接下來的幾篇,將以 MQTT 協議為主,先簡單的說明 MQTT 通訊所會用的控制封包的格式,再利用 ESP8266 做驗證,最後將這些結果配合 Arduino 開發板完成一個可以自動發佈消息的 MQTT 物聯網裝置。

此篇網頁以了解基本 MQTT 協議的控制封包格式為主,配合 Wireshark 抓取特定TCP 連線的封包為輔,直接由電腦發送不同的 MQTT 控制封包 (Control Packets):CONNECT (連接伺服器)、PUBLISH (發佈消息)、PINGREQ (心跳請求)、SUBSCRIBE (訂閱主題) 和 DISCONNECT (斷開伺服器) ... 等,得到完整的發送與接收格式 。利用這樣的方式可得到完整的客戶端 (Client) 與服務端 (Server) 之間一來一回的 Request 和 Response 控制封包格式,不但可用來直接與 MQTT 規格文件做對照來加速了解用法,而且寫程式的時候也可以直接套用。

在本篇的最後,用影片演示了 ESP8266 在 AT 指令的透傳模式下,如何與 CHT IoT SP 進行 MQTT 通訊並發佈消息,以此作為接下來撰寫程式的依據。