色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Air201:MQTT實用示例的終極指南

青山老竹農 ? 來源:jf_82863998 ? 作者:jf_82863998 ? 2024-11-07 19:30 ? 次閱讀

今天我們學習的是關于Air201的MQTT實用示例的終極指南。

教程教你通過使用腳本代碼,對Air201模組進行MQTT鏈接操作。

操作例程包括:

MQTT單鏈接

MQTT多鏈接

MQTT SSL不帶證書鏈接

MQTT SSL帶證書鏈接

大家可根據自身需求,選擇對應的例程學習。

1. 搭建環境

新同學建議先看前期的基礎知識相關教程,更有助于理解和操作。

wKgaoWcsoiuAUi3OAANUcDKHwSk769.png

本章所需要用到的腳本存于LuatOS-Air201demomqtt文件夾中;若沒有找到該腳本,可能代碼并非最新,請根據前面教學重新拉取。

1.1 硬件準備

wKgZoWcsojyAYph2AAWHvo6EzmY249.png

Air201 PCBA

帶有數據通信功能的數據線

Win10以上PC

1.2 軟件準備

LuaTools調試工具:
https://docs.openluat.com/Luatools/

最新固件:
https://gitee.com/openLuat/LuatOS-Air201/tree/master/core

最新腳本:
https://gitee.com/openLuat/LuatOS-Air201/tree/master/demo/mqtt

MQTTX工具:
https://mqttx.app/

本章教程以MQTTX工具為例進行學習,大家也可以使用其他MQTT工具。

我們先把MQTTX工具配置一下:

▼ MQTTX工具配置 ▼

下載好軟件后,根據下方圖中操作指示填寫信息

wKgaoWcsolmAW0NMAAG_5uYBnK0702.png

填寫好信息,點擊右上角【連接】。

下一步,開始添加訂閱主題和發布消息主題:

wKgZoWcsomaAacEdAAGBaPhU7rk288.png


這里,要特別注意一下主題格式。

訂閱主題格式

要求默認為:/luatos/pub/ 加模組的IMEI號
例如:
/luatos/pub/864536071785271

發布主題格式
要求默認為:/luatos/sub/ 加模組的IMEI號
例如:
/luatos/sub/864536071785271

MQTTX配置已經完成,現在開始正式學習。學成之后便可通過MQTT進行自由通信了,實際效果如下圖所示:

wKgaoWcsoneAJ4BwAAPZW0p0HH8608.png

2.MQTT單鏈接示例

2.1 main.lua說明

在main.lua中我們需要調用single_mqtt,代碼參考如下:

wKgZoWcsooyAb2MsAARfGH7_PYk590.png

2.2 single_mqtt.lua說明

下面將對single_mqtt.lua中的代碼進行簡單說明,并指導大家修改指定參數,以便順利進行MQTT單鏈接操作。

1)在代碼開頭部分,根據自己的服務器修改指定的參數。

需要注意的是user_name和password在有些服務器上是可以不傳入的,或者是對傳入的值沒有要求限制。

要根據實際服務器要求來填寫。

wKgZoWcsop6AI0P8AAKrJH-m89A792.png

2)此task實現的是MQTT的連接、訂閱消息、發布消息的流程。

要先等待網絡就緒之后,才可進行MQTT后續操作。

待網絡就緒之后,根據代碼編寫情況此時client_id、pub_topic和sub_topic會發生變化,會覆蓋掉代碼開頭部分時的配置,這點需要注意。device_id為模組的IMEI號。

wKgaoWcsorCACXaiAAUAzG6oxfY865.pngwKgZoWcsosKAULN5AAbfq-ftPeQ268.pngwKgZoWcsotKASDPWAAPQ4TzJhlI803.png

3)此task的功能為模組每3秒向服務器發送一次數據:

wKgZoWcsot-ALDpXAAK-5Gh5sUA117.png

4)此代碼可實現mqtt-uart透傳,利用串口工具給服務器發消息或者接收來自服務器的消息。

注意:要使用串口1,且波特率為9600。

wKgaoWcsou2AZaAWAAQ8xqPo0M8971.png

5)此task是通過使用rtos.meminfo()查詢內存信息,并進行打印。

RTOS庫詳細信息請參考:

RTOS底層操作庫

https://wiki.luatos.com/api/rtos.html?highlight=rtos#rtos-meminfo-type

wKgZoWcsovmAFgl8AAFH_XwiB7Y602.png

2.3 示例效果

MQTT單鏈接示例如下圖所示,實現效果為模塊每3秒向服務器發送一次數據。

wKgaomcsowqAdGJ1AAPOC_FISn8888.png

前面代碼中所提到的mqtt-uart透傳實現效果圖如下所示:

wKgZomcsoxSAU_miAAL9qJS1K_s649.png

3. MQTT多鏈接示例

3.1 main.lua說明

在main.lua中我們需要調用multilink_mqtt,代碼參考如下:

wKgaomcsoyiAE-gIAARhKGwDFqA644.png

3.2 multilink_mqtt.lua說明

1)在代碼開頭部分,請根據自己的服務器修改指定的參數。

特別說明:
client1_pub_topic
client1_sub_topic
client2_pub_topic
client2_sub_topic

以上幾項在后面函數中會再次賦參數,因此會覆蓋掉這里的參數,所以大家可以選擇不填。

wKgaoWcsoz-ABCdOAAP7YzRNFmM231.png

2)此create_mqtt函數主要功能是創建并配置MQTT客戶端對象。

具體步驟包括:

使用mqtt.create創建一個MQTT客戶端對象,并將其存儲在mqtt_param表的mqttc字段中;

使用log.info打印MQTT客戶端的配置信息;

使用mqttc:auth進行MQTT三元組配置;

使用mqttc:autoreconn配置自動重連機制,true表示啟動自動重連機制,3000為自動重連周期,單位為ms。

wKgZomcso0yANyLkAASPkY_Cs5o443.png

3)此mqtt_client1函數主要功能是創建并配置一個MQTT客戶端1(client1),并鏈接到指定的MQTT服務器。

具體步驟包括:

client1_pub_topic和client1_sub_topic分別定義了客戶端1的上報主題和訂閱主題,device_id為設備的IMEI號;

使用log.info函數打印客戶端1的上報和下發主題;

使用create_mqtt函數創建MQTT客戶端1,并傳入mqtt1_param表中參數;

設置MQTT客戶端1的事件回調函數,event為事件類型標識,可能出現的值有"conack"(連接確認)、"recv"(接收消息)、"sent"(發送完成)、"disconnect"(服務器斷開連接)等,再根據不同事件類型執行不同的功能;

調用connect方法連接到MQTT服務器。

wKgaoWcso16AXrVpAAZF5iBhSGQ831.pngwKgZoWcso2yAZjRzAAMZh2zBBA8601.png

4)此mqtt_client2函數主要功能是創建并配置一個MQTT客戶端2(client2),并鏈接到指定的MQTT服務器。

代碼內容與mqtt_client1類似,此處不再復述。

wKgaoWcso3uANnn5AAbmoVkdcNs034.pngwKgZomcso4mAEb7YAAFN6TxtOEU993.png

5)此sys.taskInit為主task函數

函數主要功能是初始化剛才那兩個MQTT客戶端,確保它們能夠成功連接到服務器,并進行周期性的發布消息以實現與服務器的通信。代碼中還進行了設備聯網檢查及庫的兼容性驗證,確保在合適環境下運行。

具體步驟包括:

使用sys.waitUntil讓系統等待網絡連接就緒;

使用mobile.imei()獲取模塊IMEI號后賦值給device_id作為設備ID;

代碼檢查是否存在有可用的MQTT庫。若不存在,進入一個無限循環,每秒打印一個日志信息,告知用戶未找到MQTT庫;

分別啟動兩個MQTT客戶端,并等待與服務器成功連接的確認;

設定要發布的數據及qos(服務質量)等級,qos為1表示消息至少會被傳遞一次;

使用一個無限循環,每隔3秒檢查MQTT客戶端是否準備好,并發送帶有時間戳的數據到指定的主題。

wKgaomcso5eAfCruAATrRSBC4E0538.pngwKgZomcso6mANWaJAAPdCQmtrEs584.png

6)此sys.taskInit的主要功能是,每隔3秒打印一次Lua程序和操作系統的內存使用情況。

wKgZomcso7OAL1udAAF6-U7Pslw892.png

3.3 示例效果

Client 1:

wKgZoWcso8KAfWrjAAQLQEpJ1ZM791.png

Client 2:

wKgZoWcso8yAffu6AAQaJJZ0Wpk048.png

4. MQTT SSL不帶證書鏈接示例

4.1 main.lua說明

在main.lua中我們需要調用ssl_mqtt,代碼參考如下:

wKgaoWcso9-AI4gYAARc8AW4N7E729.png

4.2 ssl_mqtt.lua說明

1)在代碼開頭部分,根據自己的服務器修改對應參數。

特別注意:

MQTT SSL不帶證書鏈接與帶證書鏈接為同一個文件,我們本節教程是MQTT SSL不帶證書鏈接,因此要將mqtt_isssl的值改為true ,大家可自行參考下方代碼進行修改。

wKgZoWcso--AYji5AAVrOwmVYr8125.png

2)其余代碼部分就與MQTT單鏈接示例中的single_mqtt.lua 代碼相同,同樣為避免重復信息過多,影響閱讀感受,大家可轉到上文2.2 single_mqtt.lua說明進行了解。

4.3 示例效果

wKgaoWcso_-AHXuQAAQgKibSzQs587.png

5. MQTT SSL帶證書鏈接示例

5.1 main.lua說明

在main.lua中我們依舊需要調用ssl_mqtt,代碼參考如下:

wKgaoWcspBaAM2PgAARdQKc3T4k169.png

5.2 ssl_mqtt.lua說明

1)在代碼開頭部分,依舊需要大家根據自己的服務器進行修改對應參數。

不過需要注意的是,本次是使用MQTT SSL帶證書鏈接,所以需要將mqtt_isssl的值改為table;

另外需要注意的是,既然是帶證書鏈接,那么肯定是需要準備好證書文件了,大家在使用自己的服務器時,一定要準備好對應的證書文件才行,證書文件建議直接放在 LuatOS-Air201demomqtt 文件夾下,證書文件路徑根據代碼中示例自行修改。

在燒錄時,要將證書文件作為腳本文件一同燒錄到模組中。詳細燒錄教程,大家可自行參考:
https://docs.openluat.com/Luatools/

wKgaoWcspCeAZ1V3AAW74W3PkQg204.png

2)其余代碼部分就與MQTT單鏈接示例中的single_mqtt.lua代碼相同,為避免重復信息過多,影響閱讀感受,大家可轉到上文

2.2 single_mqtt.lua說明進行了解。

5.3 示例效果

wKgZoWcspJKAXrqWAAPlU3NX-ys656.png

分享完畢,歡迎關注

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • MQTT
    +關注

    關注

    5

    文章

    650

    瀏覽量

    22487
  • LuatOS
    +關注

    關注

    0

    文章

    76

    瀏覽量

    1936
收藏 人收藏

    評論

    相關推薦

    GPS/LBS/Wi-Fi定位,全安排!—合宙Air201資產定位模組LuatOS快速入門04

    程/固件。 ? Air201定位示例教程?? ? 合宙Air201資產定位模組 ——是一個集成超低功耗4G通信、語音通話、超低功耗定位、計步、震動、Type-C、充電、放音、錄音等功能的超小PCBA。 內部集成高效、簡單、可靠的
    的頭像 發表于 09-12 12:04 ?1240次閱讀
    GPS/LBS/Wi-Fi定位,全安排!—合宙<b class='flag-5'>Air201</b>資產定位模組LuatOS快速入門04

    合宙Air201資產定位模組LuatOS課程:遠程控制

    很多小伙伴已經學習了前兩期教程hello world、點燈,對合宙Air201這款低功耗資產定位模組的LuatOS開發已有一定了解,大家的實操反饋是:真的很簡單! 那么,這一期我們要一起體驗更有
    的頭像 發表于 09-14 16:28 ?1110次閱讀
    合宙<b class='flag-5'>Air201</b>資產定位模組LuatOS課程:遠程控制

    Air780E/Air780EP/Air780EQ/Air201模塊遇到死機問題如何分析

    Air780E/Air780EP/Air780EQ/Air201模塊遇到死機問題如何分析簡介本文檔適用于合宙Air780E、
    的頭像 發表于 07-19 15:37 ?647次閱讀
    <b class='flag-5'>Air</b>780E/<b class='flag-5'>Air</b>780EP/<b class='flag-5'>Air</b>780EQ/<b class='flag-5'>Air201</b>模塊遇到死機問題如何分析

    Air780E/Air780EP/Air780EQ/Air201模塊遇到內存死機如何分析

    Air780E/Air780EP/Air780EQ/Air201模塊遇到內存死機如何分析簡介本文檔適用于合宙Air780E、
    的頭像 發表于 07-19 16:07 ?519次閱讀
    <b class='flag-5'>Air</b>780E/<b class='flag-5'>Air</b>780EP/<b class='flag-5'>Air</b>780EQ/<b class='flag-5'>Air201</b>模塊遇到內存死機如何分析

    合宙 Air780E/Air780EP/Air780EQ/Air201模塊遇到死機問題如何分析

    Air780E/Air780EP/Air780EQ/Air201模塊遇到死機問題如何分析簡介本文檔適用于合宙Air780E、
    的頭像 發表于 08-01 17:27 ?775次閱讀
    合宙 <b class='flag-5'>Air</b>780E/<b class='flag-5'>Air</b>780EP/<b class='flag-5'>Air</b>780EQ/<b class='flag-5'>Air201</b>模塊遇到死機問題如何分析

    合宙Air201定位模組,千萬不要忘記設置這個......

    合宙Air201定位模組,千萬不要忘記設置這個:AT+WIFILOC設置wifi定位優先
    的頭像 發表于 08-09 18:01 ?1488次閱讀
    合宙<b class='flag-5'>Air201</b>定位模組,千萬不要忘記設置這個......

    資產定位 | 合宙Air201模組LuatOS快速入門01-hello world

    合宙的Air201模組,功耗低,品質穩定,購買樣品也方便,且資料全開放。
    的頭像 發表于 09-13 15:21 ?371次閱讀
    資產定位 | 合宙<b class='flag-5'>Air201</b>模組LuatOS快速入門01-hello world

    合宙Air201資產定位模組LuatOS快速入門:GPS/LBS/Wi-Fi定位,全安排!?

    ? ?經過三期的學習:hello world、點燈、遠程控制,小伙伴們是不是收獲滿滿呢?更高階的應用來啦! 本期,我們將學習合宙Air201的核心功能之一 ——定位功能 ?Air201定位示例
    的頭像 發表于 09-14 07:56 ?447次閱讀
    合宙<b class='flag-5'>Air201</b>資產定位模組LuatOS快速入門:GPS/LBS/Wi-Fi定位,全安排!?

    合宙Air201資產定位模組LuatOS課程(六):PWRKEY控制解決關機難問題

    進一步學習合宙Air201應用示例**——PWRKEY控制關機功能** ** PWRKEY控制關機功能** [ ] 編輯 合宙Air201資產定位模組 ——是一個集成超低功耗4G通信、語音通話、超低
    的頭像 發表于 09-18 07:06 ?424次閱讀
    合宙<b class='flag-5'>Air201</b>資產定位模組LuatOS課程(六):PWRKEY控制解決關機難問題

    你要的錄音&amp;播放錄音功能,直接用!Air201資產定位模組LuatOS快速入門

    音頻解碼芯片(Audio Codec)及MIC麥克,可支持本地的錄音功能;使用配套喇叭即可將錄音保存的數據進行播放,操作極為方便。 本期,我們就來學習合宙Air201實用示例 ——錄音和播放錄音功能 文末閱讀原文,下載最新教程/固件。 **
    的頭像 發表于 09-27 07:06 ?261次閱讀
    你要的錄音&amp;播放錄音功能,直接用!<b class='flag-5'>Air201</b>資產定位模組LuatOS快速入門

    Air201模組教程:SPI通信與外部Flash的連接之道!

    今天我們要學習的是Air201定位模組LuatOS快速入門,本文將通過Air201+擴展板讀寫外部flash的演示,教你使用SPI示例,可根據實際需求靈活應用。
    的頭像 發表于 11-18 00:23 ?219次閱讀
    <b class='flag-5'>Air201</b>模組教程:SPI通信與外部Flash的連接之道!

    Air201定位模組LuatOS輕松搞定超低功耗模式!

    今天我們要學習的是定位模組Air201的超低功耗模式下,定時三分鐘上傳以及G-senser拓展示例;更多低功耗模式的玩法,等你來探索。接下來,我們講解相關示例的具體使用。
    的頭像 發表于 12-01 15:38 ?155次閱讀
    <b class='flag-5'>Air201</b>定位模組LuatOS輕松搞定超低功耗模式!

    Air201公開但沒全公開?你要的資料在這里!

    一些朋友問我Air201開發資料可以公開嗎?秉承開源開放的特色,Air201無論是軟件還是硬件,可公開的都已公開,并且資料還在持續更新中……
    的頭像 發表于 12-04 20:15 ?136次閱讀
    <b class='flag-5'>Air201</b>公開但沒全公開?你要的資料在這里!

    深入了解Air201定位模塊的電池問題!

    今天主要分享Air201電池相關問題,希望對大家的實際應用開發有所幫助。
    的頭像 發表于 12-14 09:32 ?161次閱讀
    深入了解<b class='flag-5'>Air201</b>定位模塊的電池問題!

    定位模組Air201——快速實現打電話!

    今天特別分享VoLTE通話功能示例,感興趣的朋友一起來學。 VoLTE通話功能示例 ? Air201模組的4G通信功能,通過VoLTE技術實現高清語音通話,支持音頻編解碼、硅麥輸入和喇叭輸出。在通話
    的頭像 發表于 12-16 15:23 ?113次閱讀
    定位模組<b class='flag-5'>Air201</b>——快速實現打電話!
    主站蜘蛛池模板: 年轻的女职工在线观看| 日本在线免费| 色戒床震视频片段| 亚洲黄色录像片| 91天堂国产在线 在线播放| 东京热无码中文字幕av专区| 精品96在线观看影院| 欧美成人中文字幕在线视频| 亚州精品视频| 99re2.久久热最新地址| 国产人A片在线乱码视频| 伦理片免费秋霞e| 偷偷鲁青春草原视频分类| 2019夜夜| 国产热久久精| 青青草视频在线ac| 夜夜骑夜夜欢| 动漫美女3d被爆漫画| 久久青青草原精品国产软件| 受被三个攻各种道具PLAY| 最近免费中文字幕大全免费 | 免费国产网站| 午夜毛片在线观看| 99日韩精品| 精品国产露脸久久AV麻豆| 色婷婷AV99XX| 综合久久久久久久综合网| 国产在线高清视频| 日本亚洲精品色婷婷在线影院| 在线观看国产区| 国产日韩欧美另类| 日韩精品免费一区二区| 4399的视频BD高清在线观看免费| 国产色青青视频在线观看| 日本女人bb| ava云直播| 老师给美女同学开嫩苞| 亚洲三级在线视频| 国产高清在线a视频大全| 日本精品久久久久中文字幕2| 最新无码二区日本专区|