本教程聚焦于LuatOS在Air780EPM開發板上的應用,演示如何通過腳本實現MQTT協議通信,助力物聯網設備快速聯網。
一、MQTT 協議詳解
1.1 什么是 MQTT?
MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸協議)是一種基于發布/訂閱模式的輕量級通信協議。你可以把它想象成一個郵局系統:
發布者(Publisher):就像寄信的人,把消息發送到特定的“郵箱”(主題)。
訂閱者(Subscriber):就像收信的人,他們事先告訴郵局(Broker)他們對哪些“郵箱”(主題)的信件感興趣。
Broker(代理):就像郵局,負責接收發布者的消息,并根據訂閱者的興趣將消息分發給他們。
MQTT 協議由 IBM 在 1999 年開發,現在是 ISO 標準(ISO/IEC 20922),適用于物聯網(IoT)和機器對機器(M2M)通信。
1.2 MQTT 的核心工作機制
1. 發布/訂閱模式:
發布者(Publisher)將消息發送到特定的主題(Topic)。
訂閱者(Subscriber)向 Broker 訂閱感興趣的主題。
Broker 負責將發布到主題的消息路由給所有訂閱了該主題的客戶端。
這種模式實現了發布者和訂閱者的解耦,簡單來說就是它們不需要知道彼此的存在。
2. 服務質量(QoS)等級:
QoS 0(最多一次):消息可能丟失,也可能因為網絡層或中間件的意外重放而出現重復,但 MQTT 協議本身不會主動再發一次。適用于對可靠性要求不高的場景,如傳感器數據。
QoS 1(至少一次):發送端會一直重試,直到收到接收端的 PUBACK 確認,因此消息至少送達一次,但也可能因確認丟失而被重復投遞。適用于需要確保消息送達但可以容忍重復的場景。
QoS 2(只有一次):通過四步握手(PUBLISH → PUBREC → PUBREL → PUBCOMP)保證消息恰好送達一次;若任一步丟失,發送端會重傳對應報文,直至整個流程完成,從而避免重復或丟失。適用于對消息可靠性要求極高的場景,如金融交易。
3. 輕量級設計:
MQTT 協議頭最小只有 2 字節,非常適合網絡帶寬和設備資源有限的環境。
協議簡單,易于實現,降低了開發成本。
1.3 MQTT 的主要優勢
低帶寬消耗:協議設計精簡,有效減少網絡流量。
低功耗:適用于電池供電的設備。
高可靠性:通過 QoS 機制保證消息傳遞的可靠性。
雙向通信:支持設備間和設備與服務器間的雙向通信。
多語言支持:支持多種編程語言,便于開發。
安全性強:支持用戶名/密碼和 SSL/TLS 加密,保障通信安全。
1.4 典型應用場景
智能家居:智能燈泡、智能插座、溫控器等設備通過 MQTT 與家庭網關通信。
工業自動化:傳感器數據采集、設備狀態監控。
環境監測:氣象站、水質監測站等遠程數據收集。
車聯網:車輛狀態信息上報、遠程控制指令下發。
醫療監控:遠程病人監護設備數據傳輸。
二、演示功能概述
1. 創建四路 mqtt 連接,詳情如下
注意:代碼中的 mqtt 服務器地址和端口會不定期重啟或維護,僅能用作測試用途,不可商用,說不定哪一天就關閉了。用戶開發項目時,需要替換為自己的商用服務器地址和端口。
創建一個 mqtt client,連接 mqtt server;
創建一個 mqtt ssl client,連接 mqtt ssl server,不做證書校驗;
創建一個 mqtt ssl client,連接 mqtt ssl server,client 僅單向校驗 server 的證書,server 不校驗 client 的證書和密鑰文件;
創建一個 mqtt ssl client,連接 mqtt ssl server,client 校驗 server 的證書,server 校驗 client 的證書和密鑰文件;
2. 每一路 mqtt 連接出現異常后,自動重連;
3. 每一路 mqtt 連接,client 按照以下幾種邏輯發送數據給 server
串口應用功能模塊uart_app.lua,通過 uart1 接收到串口數據,將串口數據增加send from uart:前綴后,使用mobile.imei().."/uart/up"主題,發送給 server;
定時器應用功能模塊timer_app.lua,定時產生數據,將數據增加send from timer:前綴后,使用mobile.imei().."/timer/up"主題,發送給 server;
4. 每一路 mqtt 連接,client 收到 server 數據后,將數據增加 recv from mqtt/mqtt ssl/mqtt ssl ca/mqtt ssl mutual ca(四選一)server: 前綴后,通過 uart1 發送出去;
5. 啟動一個網絡業務邏輯看門狗 task,用來監控網絡環境,如果連續長時間工作不正常,重啟整個軟件系統;
6. netdrv_device:配置連接外網使用的網卡,目前支持以下三種選擇(三選一)
(1) netdrv_4g:4G 網卡
(2) netdrv_eth_spi:通過 SPI 外掛 CH390H 芯片的以太網卡
(3) netdrv_multiple:支持以上兩種網卡,可以配置兩種網卡的優先級
三、演示硬件環境

1、Air780EPM V1.3 版本開發板一塊 + 可上網的 sim 卡一張 +4g 天線一根 + 網線一根:
sim 卡插入開發板的 sim 卡槽
天線裝到開發板上
網線一端插入開發板網口,另外一端連接可以上外網的路由器網口
2、TYPE-C USB 數據線一根 + USB 轉串口數據線一根,Air780EPM V1.3 版本開發板和數據線的硬件接線方式為:
Air780EPM V1.3 版本開發板通過 TYPE-C USB 口供電;(外部供電/USB 供電 撥動開關 撥到 USB 供電一端)
TYPE-C USB 數據線直接插到核心板的 TYPE-C USB 座子,另外一端連接電腦 USB 口;
USB 轉串口數據線,一般來說,白線連接開發板的 UART1_TX,綠線連接開發板的 UART1_RX,黑線連接核心板的 GND,另外一端連接電腦 USB 口;
四、演示軟件環境
4.1 軟件環境
1. 燒錄工具:Luatools 下載調試工具
2. 內核固件:Air780EPM V2012 版本固件(理論上,2025 年 8 月 10 日之后發布的固件都可以)
3. 腳本文件:Air780EPM MQTT 腳本文件
3. PC 端串口工具:例如SSCOM、LLCOM等都可以
4. MQTT 客戶端:MQTT 客戶端軟件 MQTTX
5. LuatOS 運行所需要的 lib 文件:使用 Luatools 燒錄時,勾選 添加默認 lib 選項,使用默認 lib 腳本文件。
準備好軟件環境之后,接下來查看如何燒錄項目文件到 Air780EPM 開發板中,將本篇文章中演示使用的項目文件燒錄到 Air780EPM 開發板中。
4.2 API 介紹
sys 庫:https://docs.openluat.com/osapi/core/sys/
libnet 庫:https://docs.openluat.com/osapi/ext/libnet/
socket 庫:https://docs.openluat.com/osapi/core/socket/
mqtt 庫:https://docs.openluat.com/osapi/core/mqtt/
五、程序結構

5.1 文件說明
main.lua:主程序入口文件,負責初始化系統、啟動網絡驅動和 MQTT 客戶端。
mqtt/:普通 MQTT 連接相關文件。
mqtt_main.lua:普通 MQTT 客戶端的初始化和事件處理。
mqtt_receiver.lua:普通 MQTT 客戶端的數據接收處理。
mqtt_sender.lua:普通 MQTT 客戶端的數據發送隊列管理。
mqtts/:MQTT SSL 連接(無證書校驗)相關文件。
mqtts_main.lua:MQTT SSL 客戶端的初始化和事件處理。
mqtts_receiver.lua:MQTT SSL 客戶端的數據接收處理。
mqtts_sender.lua:MQTT SSL 客戶端的數據發送隊列管理。
mqtts_ca/:MQTT SSL 連接(單向證書校驗)相關文件。
mqtts_ca_main.lua:MQTT SSL 單向證書校驗客戶端的初始化和事件處理。
mqtts_ca_receiver.lua:MQTT SSL 單向證書校驗客戶端的數據接收處理。
mqtts_ca_sender.lua:MQTT SSL 單向證書校驗客戶端的數據發送隊列管理。
openluat_root_ca.crt:服務器 CA 證書文件。
sntp_app.lua:時間同步應用。
mqtts_mutual_ca/:MQTT SSL 連接(雙向證書校驗)相關文件。
mqtts_m_ca_main.lua:MQTT SSL 雙向證書校驗客戶端的初始化和事件處理。
mqtts_m_ca_receiver.lua:MQTT SSL 雙向證書校驗客戶端的數據接收處理。
mqtts_m_ca_sender.lua:MQTT SSL 雙向證書校驗客戶端的數據發送隊列管理。
airtest_client.crt:客戶端證書文件。
airtest_client.key:客戶端私鑰文件。
openluat_root_ca.crt:服務器 CA 證書文件。
sntp_app.lua:時間同步應用。
netdrv/:網絡驅動相關文件。
netdrv_4g.lua:4G 網絡驅動。
netdrv_eth_spi.lua:SPI 以太網驅動。
netdrv_multiple.lua:多網絡驅動管理。
netdrv_device.lua:網絡設備配置文件。
network_watchdog.lua:網絡環境檢測看門狗。
timer_app.lua:定時器應用,用于生成測試數據。
uart_app.lua:串口應用,用于與 PC 端通信。
六、核心模塊詳解
6.1 主程序 (main.lua)
主程序文件main.lua是整個項目的入口點。它負責初始化系統環境。
6.1.1 初始化流程
1. 項目和版本定義:
定義PROJECT和VERSION變量。
2. 日志記錄:
使用log.info("main", PROJECT, VERSION)在日志中打印項目名和版本號。
3. 看門狗初始化(如果支持):
配置并啟動硬件看門狗,防止程序死循環卡死。
4. 加載功能模塊:
加載網絡環境檢測看門狗模塊(network_watchdog)。
加載網絡驅動設備模塊(netdrv_device)。
加載串口應用模塊(uart_app)。
加載定時器應用模塊(timer_app)。
加載MQTT客戶端主模塊(mqtt_main)。
加載MQTT SSL客戶端主模塊(mqtts_main、mqtts_ca_main、mqtts_m_ca_main)。
5. 啟動任務調度器:
調用sys.run()啟動LuatOS的任務調度器,開始執行各個任務。

6.2 網絡驅動 (netdrv/)
網絡驅動模塊負責初始化和管理不同的網絡連接方式,如 4G 和以太網。
6.2.1 4G 網絡驅動 (netdrv_4g.lua)
監聽IP_READY和IP_LOSE消息,監控網絡連接狀態。
設置默認網卡為socket.LWIP_GP。

6.2.2 以太網網絡驅動(netdrv_eth_spi.lua)
通過 SPI 接口外掛 CH390H 芯片實現以太網。
通過控制 GPIO20 引腳使能芯片供電。
配置 SPI1 接口參數,用于與 CH390H 芯片通信。
通過netdrv.setup函數配置以太網卡,并開啟 DHCP 動態獲取 IP 地址。
設置默認網卡為socket.LWIP_ETH。

6.2.3 多網絡驅動管理 (netdrv_multiple.lua)
管理多個網絡驅動實例,根據配置選擇合適的網絡連接方式。
通過exnetif.set_priority_order函數配置多網卡的控制參數以及優先級。
通過exnetif.notify_status函數設置網卡狀態變化通知回調函數。

6.3 MQTT 客戶端 (mqtt/,mqtts/,mqtts_ca/,mqtts_mutual_ca/)
每個 MQTT 客戶端目錄都包含三個核心文件:_main.lua、_receiver.lua和_sender.lua,分別負責客戶端的初始化、數據接收和數據發送。
6.3.1 客戶端初始化 (_main.lua)
注意:代碼中的 mqtt 服務器地址和端口會不定期重啟或維護,僅能用作測試用途,不可商用,說不定哪一天就關閉了。用戶開發項目時,需要替換為自己的商用服務器地址和端口。
創建 MQTT 客戶端對象,配置服務器地址、端口、客戶端 ID、用戶名、密碼等參數。
設置事件回調函數,處理連接、訂閱、接收和異常等事件。
啟動客戶端任務,開始連接 MQTT 服務器。
6.3.2 數據接收 (_receiver.lua)
實現proc函數,處理接收到的數據。
打印接收到的數據內容。
通過sys.publish("FEED_NETWORK_WATCHDOG")觸發網絡看門狗喂狗。
6.3.3 數據發送 (_sender.lua)
實現send函數,將數據添加到發送隊列。
管理發送隊列,按順序發送數據。
支持 QoS 配置和發送結果回調。
6.4 應用功能 (timer_app.lua,uart_app.lua)
應用功能模塊負責生成測試數據和處理串口通信。
6.4.1 定時器應用 (timer_app.lua)
創建一個 5 秒循環的定時器。
定時生成遞增的測試數據。
通過sys.publish("SEND_DATA_REQ", data)發布發送請求消息。
實現發送結果回調,根據發送結果決定是否重發數據。

6.4.2 串口應用 (uart_app.lua)
配置 UART1,波特率為 115200。
接收來自 PC 的數據,并通過 MQTT 發送。
將 MQTT 接收到的數據通過串口輸出到 PC。
實現數據緩沖和超時處理。

6.5 網絡環境檢測看門狗 (network_watchdog.lua)
網絡看門狗模塊負責監控網絡連接狀態和數據收發情況,確保系統在網絡異常時能夠自動恢復。
6.5.1 設計原則
看門狗超時時間應大于任意一個 MQTT 連接的發送間隔。
通過接收FEED_NETWORK_WATCHDOG消息來喂狗。
超時未收到喂狗消息時,系統自動重啟。
6.5.2 實現細節
創建network_watchdog_task_func任務函數。
任務函數循環等待FEED_NETWORK_WATCHDOG消息,超時時間為 5 分鐘。
超時則調用sys.restart("network timeout")重啟系統。

6.6 SSL 連接實現
項目展示了三種不同的 SSL 連接實現方式,滿足不同安全等級的需求。
6.6.1 無證書校驗 (mqtts/)
在創建 MQTT 客戶端時,設置ssl參數為true。
不進行服務器證書校驗,適用于對安全性要求不高的場景。
6.6.2 單向證書校驗 (mqtts_ca/)
加載服務器 CA 證書文件openluat_root_ca.crt。
在創建 MQTT 客戶端時,配置ssl參數,指定 CA 證書路徑。
依賴sntp_app.lua同步系統時間,以驗證證書有效期。
6.6.3 雙向證書校驗 (mqtts_mutual_ca/)
同時加載服務器 CA 證書、客戶端證書和客戶端私鑰。
在創建 MQTT 客戶端時,配置ssl參數,指定所有證書和密鑰的路徑。
使用特定端口(8886)進行連接。
七、系統與用戶消息類型
7.1 系統消息
IP_READY:網絡 IP 地址已準備好。
IP_LOSE:網絡 IP 地址丟失。
NTP_UPDATE:SNTP 時間同步完成。
7.2 用戶消息
RECV_DATA_FROM_SERVER:從 MQTT 服務器接收到數據。
SEND_DATA_REQ:請求發送數據。
FEED_NETWORK_WATCHDOG:網絡看門狗喂狗消息。
八、演示功能
8.1 準備工作
8.1.1 MQTT 客戶端建立
MQTT 客戶端測試工具:MQTT 客戶端軟件 MQTTX
(1)創建一個 MQTT 客戶端
這里我使用測試服務器(lbsmqtt.airm2m.com:1884)進行建立,大家一定不要將測試服務器用于正式批量的項目中。

(2)設置發布/訂閱主題
在設置發布/訂閱主題時,主題格式一定要根據要求來寫,否則會出現數據無法通信的情況。

8.1.2 MQTT SSL 客戶端建立(無證書校驗、單向認證)
MQTT 客戶端測試工具:MQTT 客戶端軟件 MQTTX
(1)創建一個 MQTT 客戶端
這里我使用測試服務器(airtest.openluat.com:8888)進行建立,大家一定不要將測試服務器用于正式批量的項目中。 無證書校驗、單向認證使用的是同一個域名端口,在 MQTTX 工具上創建客戶端只是用于與 Air780EPM 建立的 MQTT 客戶端進行數據通信,因此這時候可以在 MQTTX 工具上只建立一個 MQTT SSL 客戶端。

(2)設置發布/訂閱主題
在設置發布/訂閱主題時,主題格式一定要根據要求來寫,否則會出現數據無法通信的情況。

8.1.3 MQTT SSL 客戶端建立(雙向認證)
MQTT 客戶端測試工具:MQTT 客戶端軟件 MQTTX
(1)創建一個 MQTT 客戶端
這里我使用測試服務器(airtest.openluat.com:8886)進行建立,大家一定不要將測試服務器用于正式批量的項目中。

(2)設置發布/訂閱主題
在設置發布/訂閱主題時,主題格式一定要根據要求來寫,否則會出現數據無法通信的情況。

8.2 不同網卡切換
Air780EPM 模組支持單 4g 網卡,單 spi 以太網卡,多網卡。
切換網卡為 4G 網卡:
在netdrv_device.lua模塊里只打開netdrv_4g模塊。netdrv_4g.lua模塊中的代碼不需要修改。

LuaTools 工具日志打印:
如下圖所示,如出現類似I/user.netdrv_4g.ip_ready_func IP_READY 10.63.142.199 255.255.255.255 0.0.0.0 nil的日志,則表示 4g 網卡連接成功。

切換網卡為以太網卡:
注意:Air780EPM 的以太網卡是通過 SPI 外掛 CH390H 芯片實現的。
在netdrv_device.lua模塊里只打開netdrv_eth_spi模塊。如果是使用官方的開發板,netdrv_eth_spi模塊中的代碼不需要修改。

luatools 日志打印:
如出現類似I/user.netdrv_eth_spi.ip_ready_func IP_READY 192.168.0.168 255.255.255.0 192.168.0.1 nil的日志,則表示以太網卡聯網成功。

多網卡自動切換:
可根據自己的需求調整網卡的優先級,以下示例設置為以太網卡是最高優先級。
首先在netdrv_device.lua文件中只打開netdrv_multiple模塊。

默認以太網卡進行連接

拔掉網線后,網絡切換為 4g 網卡

8.3 MQTT 通信實操
MQTT 客戶端數據發送與接收:
下圖為 Air780EPM 模組建立的 MQTT 客戶端通過指定主題向其他同域名端口的 MQTT 客戶端發送數據成功后的日志打印。

如下圖在 MQTTX 測試工具上建立相同域名端口的 MQTT 客戶端(Client ID 需要不一致),通過訂閱指定主題,可以接收到其他同域名端口的 MQTT 客戶端通過該指定主題發送的數據。

如下圖所示,通過 MQTTX 測試工具上建立的 MQTT 客戶端向指定主題發送一個數據。

模組端在建立同域名端口的 MQTT 客戶端后,在代碼中還訂閱了指定主題,因此 MQTTX 測試工具上建立的同域名端口的 MQTT 客戶端通過指定主題發送數據時,模組端建立的同域名端口的 MQTT 客戶端可以接收到這個數據,并在代碼中做了處理,從而讓其顯示在 LuaTools 工具上。

在 PC 端使用串口工具發送數據給 Air780EPM,Air780EPM 內部會將接收到的數據通過建立的同域名端口的 MQTT 客戶端按照指定主題轉發出去,MQTTX 測試工具建立的同域名端口的 MQTT 客戶端通過訂閱這個指定主題可以接收到 Air780EPM 轉發出去的數據。

在 MQTTX 測試工具建立的同域名端口的 MQTT 客戶端,通過指定主題發送數據后,Air780EPM 模組建立的同域名端口的 MQTT 客戶端通過訂閱該指定主題后可以接收到數據,并將數據通過 UART 轉發給 PC 端串口工具。

MQTT SSL 客戶端(無證書校驗)數據發送與接收:
下圖為 Air780EPM 模組建立的 MQTT SSL 客戶端(無證書校驗)通過指定主題向其他同域名端口的 MQTT SSL 客戶端發送數據成功后的日志打印。

如下圖在 MQTTX 測試工具上建立相域名端口的 MQTT SSL 客戶端(Client ID 需要不一致),通過訂閱指定主題,可以接收到其他同域名端口的 MQTT SSL 客戶通過該指定主題發送的數據。

如下圖所示,通過 MQTTX 測試工具建立的同域名端口的 MQTT SSL 客戶端向指定主題發送一個數據。

模組端在建立同域名端口 MQTT SSL 客戶端(無證書校驗)后,在代碼中訂閱了這個指定主題,因此當 MQTTX 測試工具建立的同域名端口的 MQTT SSL 客戶端通過指定主題發送數據時,模組端建立的同域名端口的 MQTT SSL 客戶端(無證書校驗)可以接收到這個數據,并在代碼中做了處理,從而讓其顯示在 LuaTools 工具上。

在 PC 端使用串口工具發送數據給 Air780EPM,Air780EPM 內部會將接收到的數據通過建立的同域名端口 MQTT SSL 客戶端(無證書校驗)按照指定主題轉發出去,MQTTX 測試工具建立的同域名端口的 MQTT SSL 客戶端通過訂閱這個指定主題可以接收到 Air780EPM 轉發出去的數據。

在 MQTTX 測試工具建立的同域名端口的 MQTT SSL 客戶端(無證書校驗)通過指定主題發送數據后,Air780EPM 模組建立的同域名端口的 MQTT SSL 客戶端(無證書校驗)通過訂閱該指定主題后可以接收到數據,并將數據通過 UART 轉發給 PC 端串口工具。

MQTT SSL 客戶端(單向認證)數據發送與接收
下圖為 Air780EPM 模組建立的 MQTT SSL 客戶端(單向認證)通過指定主題向其他同域名端口的 MQTT 客戶端發送數據成功后的日志打印。

如下圖在 MQTTX 測試工具上建立同域名端口的 MQTT SSL 客戶端(Client ID 需要不一致),通過訂閱指定主題,可以接收到其他同域名端口的 MQTT SSL 客戶通過該主題發送的數據。

如下圖所示,通過 MQTTX 測試工具建立的同域名端口的 MQTT SSL 客戶端(單向認證)向指定主題發送一個數據。

模組端在建立同域名端口 MQTT SSL 客戶端(單向認證)后,在代碼中還訂閱了指定主題,因此當 MQTTX 測試工具建立的同域名端口的 MQTT SSL 客戶端通過指定主題發送數據時,模組端建立的同域名端口的 MQTT SSL 客戶端(單向認證)可以接收到這個數據,并在代碼中做了處理,從而讓其顯示在 LuaTools 工具上。

在 PC 端使用串口工具發送數據給 Air780EPM,Air780EPM 內部會將接收到的數據通過建立的同域名端口的 MQTT SSL 客戶端(單向認證)按照指定主題轉發出去,MQTTX 測試工具建立的同域名端口的 MQTT SSL 客戶端通過訂閱這個指定主題可以接收到 Air780EPM 轉發出去的數據。

在 MQTTX 測試工具建立的同域名端口的 MQTT SSL 客戶端(單向認證)通過指定主題發送數據后,Air780EPM 模組建立的同域名端口的 MQTT SSL 客戶端(單向認證)通過訂閱該指定主題后可以接收到數據,并將數據通過 UART 轉發給 PC 端串口工具。

MQTT SSL 客戶端(雙向認證)數據發送與接收
下圖為 Air780EPM 模組建立的 MQTT SSL 客戶端(雙向認證)通過指定主題向其他同域名端口的 MQTT SSL 客戶端發送數據成功后的日志打印。

如下圖在 MQTTX 測試工具上建立同域名端口的 MQTT 客戶端(Client ID 需要不一致),通過訂閱指定主題,可以接收到其他同域名端口的 MQTT 客戶端通過該主題發送的數據。

如下圖所示,通過 MQTTX 測試工具建立的同域名端口的 MQTT SSL 客戶端向指定主題發送一個數據。

模組端在建立同域名端口 MQTT SSL 客戶端(雙向認證)后,在代碼中還訂閱了指定主題,因此當 MQTTX 測試工具建立的同域名端口的 MQTT SSL 客戶端通過指定主題發送數據時,模組端建立的同域名端口的 MQTT SSL 客戶端(雙向認證)可以接收到這個數據,并在代碼中做了處理,從而讓其顯示在 LuaTools 工具上。

在 PC 端使用串口工具發送數據給 Air780EPM,Air780EPM 內部會將接收到的數據通過建立的 MQTT SSL 客戶端(雙向認證)按照指定主題轉發出去,MQTTX 測試工具建立的同域名端口的 MQTT SSL 客戶端通過訂閱這個指定主題可以接收到 Air780EPM 轉發出去的數據。

在 MQTTX 測試工具建立的同域名端口的 MQTT SSL 客戶端(雙向認證)通過指定主題發送數據后,Air780EPM 模組建立的同域名端口的 MQTT SSL 客戶端(雙向認證)通過訂閱該指定主題后可以接收到數據,并將數據通過 UART 轉發給 PC 端串口工具。

九、總結
至此,我們演示了使用不同網卡進行 MQTT 通信的全過程,相信聰明的你已經完全領悟 MQTT 通信的邏輯了,快來實際操作一下吧!
審核編輯 黃宇
-
物聯網
+關注
關注
2945文章
47818瀏覽量
414810 -
MQTT
+關注
關注
5文章
733瀏覽量
25065 -
LuatOS
+關注
關注
0文章
156瀏覽量
2692
發布評論請先 登錄
一文搞懂Air780EPM的NTP通信:LuatOS腳本開發教程
實戰Air780EPM:構建4G共享網關,服務WiFi與有線設備!
Air780EPM開發板NTP對時教程:LuatOS腳本開發入門指南
Air780EPM開發板FTP功能實戰:LuatOS嵌入式開發全解析
LuatOS Air780EPM 開發板 HTTP 教程:原理講解與項目實操!
優化你的設計:Air780EPM場景化ADC硬件電路指南!
Air780EPM — ADC硬件電路設計:場景化優化與實踐!
解鎖Air780EPM:N種GPIO操控LED的實戰技巧!
如何解決Air780EPM開發中的調試難題?深度解析高效調試方法
深度解析Air780EPM模組:LuatOS下CAN總線通信的完整方案!
血淚教訓總結:Air780EPM的LuatOS二次開發——OneWire協議調試注意事項
新手必看!4G模組Air780EPM——GPIO的設計說明
Air780EPM 模塊串口電路設計硬件指導
LuatOS嵌入式開發實戰:Air780EPM與MQTT通信
評論