国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

低功耗4G模組Air780E快速入門:通過MQTT連接實現遠程控制

合宙LuatOS ? 來源:合宙LuatOS ? 作者:合宙LuatOS ? 2024-10-11 14:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

?

今天我們學習Air780E快速入門之通過MQTT連接實現遠程控制,伙伴們,學起來!

一、修改代碼

1.1 準備工具

Air780E開發板

Air780E開發板設計資料

LuatOS-Air780E使用MQTT遠程控制程序源碼demo

API使用說明

mqtt測試工具

本demo中使用的測試工具是MQTTX,下載鏈接如下:MQTTX:全功能 MQTT 客戶端工具

下載后的安裝程序:

圖片?

雙擊后點擊下一步安裝就可以了

圖片?

1.2 程序詳解

1.2.1 概念 首先我們先來了解一些mqtt的基本原理。訂閱者訂閱了一個主題后,能夠接收到對這個主題發布的消息。基本原理如下圖:

圖片?

本源碼程序demo實現流程圖如下:

圖片?

關于sys.subscribe()和mqtt_client:subscribe()的區別:sys.subscribe()是luatOS內部的訂閱,接收sys.public()發布的消息,而mqtt_client:subscribe()訂閱的是mqtt服務器發布消息,接收來自mqtt_client:public()發布的消息。

1.2.2 程序分步詳解

第一步:等待聯網

sys.waitUntil("IP_READY")

第二步:獲取本設備的id,本demo中用來給MQTT服務器創建主題時當做Client ID號。因為MQTT服務器創建時的Client ID必須是唯一的,設備id也是唯一的,所以正好可以拿來使用。

-- 獲取設備的imei號

local device_id = mcu.unique_id():toHex()

-- 下面的是mqtt的參數均可自行修改

client_id = device_id

--發布消息的主題內容

pub_topic = "/luatos/pub/" .. device_id

--要訂閱的主題內容

sub_topic = "/luatos/sub/" .. device_id

第三步:創建一個mqtt實例,用來進行mqtt連接、訂閱、發布消息等操作。

--提前定義的參數,用來創建mqtt實例,根據自己的服務器修改以下參數

local mqtt_host = "lbsmqtt.airm2m.com"

local mqtt_port = 1884

local mqtt_isssl = false

local mqttc = nil

--[[

@param1 適配器序號,不填會選擇平臺自帶的



   @param2 服務器地址,域名或ip都可



   @param3 端口@param4 是否為ssl加密連接



   @param5 是否為ipv6

]]

mqttc = mqtt.create(nil, mqtt_host, mqtt_port, mqtt_isssl, ca_file)

第四步:配置連接mqtt服務器的參數,有mqtt設置的Client ID,賬號,密碼等。

local client_id = "mqttx_b55c41b7"

local user_name = "user"

local password = "password"

--[[配置mqtt連接服務器的參數

@param1 設備id



   @param2 賬號[可選]



   @param3 密碼[可選]



   @param4 清除session,默認true[可選]

]]

mqttc:auth(client_id,user_name,password) -- client_id必填,其余選填

第五步:設置mqtt掉線自動重連機制

--[[

@param1 是否自動重連



   @param2 自動重連機制,單位ms

]]

mqttc:autoreconn(true, 3000) -- 自動重連機制

第六步:在mqtt的事件回調函數中編寫邏輯

--[[mqtt事件回調函數,其中事件包括

conack:連接成功事件。



  recv:接收服務器下發數據的事件



  sent:發送完成事件



  disconnect:斷開連接事件



   ]]

--[[回調函數參數:

@param1 mqtt的句柄



   @param2 事件



   @param3 傳入的數據

]]

mqttc:on(function(mqtt_client, event, data, payload)

-- 用戶自定義代碼



   log.info("mqtt", "event", event, mqtt_client, data, payload)



   if event == "conack" then



       -- 觸發mqtt連接服務器成功事件,



       -- 在luat內部發布一條消息。



       sys.publish("mqtt_conack")



       --訂閱一個mqtt主題



       mqtt_client:subscribe(sub_topic)--單主題訂閱



       -- mqtt_client:subscribe({[topic1]=1,[topic2]=1,[topic3]=1})--多主題訂閱



   elseif event == "recv" then



       --觸發接收數據事件



       log.info("mqtt", "downlink", "topic", data, "payload", payload)



   elseif event == "sent" then



       --觸發發送數據事件



   end

end)

第七步:連接mqtt服務器

mqttc:connect()

第八步:等待連接成功的luat內部的消息,此消息的發布在連接成功事件中

sys.waitUntil("mqtt_conack")

第九步:循環等待上報數據

while true do

-- 演示等待其他task發送過來的上報信息



   local ret, topic, data, qos = sys.waitUntil("mqtt_pub", 300000)



   if ret then



       -- 當接收到的tpoic是字符串close時,就跳出等待其他task發過來的上報消息的循環



       if topic == "close" then break end



       mqttc:publish(topic, data, qos)



   end

end

第十步:關閉mqtt連接

mqttc:close()

第十一步:定時上報數據演示

sys.taskInit(function()

sys.wait(3000)

--定義要定時上報的數據

local data = "123test,"

--發送的數據質量

local qos = 0 -- QOS0不帶puback, QOS1是帶puback的

while true do

sys.wait(3000)



   --如果mqttc實例存在,并且mqtt客戶端就緒



   if mqttc and mqttc:ready() then



       --發布一個mqtt消息,這個消息的訂閱,在mqtt服務器上,后面會介紹如何在mqtt服務器上訂閱



       local pkgid = mqttc:publish(pub_topic, data .. os.date(), qos)



   end

end

end)

二、燒錄代碼到硬件

2.1 正確連接電腦4G模組電路板

使用帶有數據通信功能的數據線,不要使用僅有充電功能的數據線;

2.2 識別4G模組的boot引腳

在下載之前,要用模組的boot引腳觸發下載, 也就是說,要把4G模組的boot引腳拉到 1.8v,或者直接把boot引腳和VDD_EXT引腳相連。我們要在按下BOOT按鍵時讓模塊開機,就可以進入下載模式了。

具體到 Air780E開發板,

2.2.1 當我們模塊沒開機時,按著BOOT鍵然后長按PWR開機。

2.2.2 當我們模塊開機時,按著BOOT鍵然后點按重啟鍵即可。

圖片?

2.3 識別電腦的正確端口

判斷是否進入BOOT模式:模塊上電,此時在電腦的設備管理器中,查看串口設備, 會出現一個端口表示進入了boot下載模式,如下圖所示:

圖片?

當設備管理器出現了3個連續數字的com端口,并且每個數字都大于4,這時候, 硬件連接上就緒狀態,恭喜你,可以進行燒錄了!

2.4 新建項目

首先,確保你的 LuaTools 的版本,上大于 2.2.13 版本的。

在 LuaTools 的左上角上有版本顯示的,如圖所示:

圖片?

LuaTools 版本沒問題的話, 就點擊 LuaTOols 右上角的“項目管理測試”按鈕,如下圖所示:

圖片?

這時會彈出項目管理和燒錄管理的對話框,如下圖:

新建一個項目

注意:這里截圖使用的hello world項目的燒錄教程,燒錄的時候要將腳本換成本次demo的。

圖片?

2.5 開始燒錄

選擇780E板子對應的底層core和剛改的main.lua腳本文件。下載到板子中。

圖片?

圖片?

點擊下載后,我們需要進入boot模式才能正常下載,在(3)(4)小節已經介紹了如何進入boot模式。

圖片?

三、驗證功能

3.1 配置MQTTX服務器

3.1.1 打開MQTTX工具后,添加一個連接

圖片?

圖片?

3.1.2 添加一個訂閱,在MQTTX工具中填寫和程序中對應的連接參數:

圖片?

訂閱成功后界面如下:

圖片?

3.2 訂閱和發布消息

3.2.1 此時給開發板開機運行,即可看到我們之前寫的自動發送測試的數據。

圖片?

3.2.2 MQTTX發布消息,主題是開發板訂閱的主題,開發板可以接收到MQTTX發布的消息。

圖片?

圖片?

四、常見問題

Q: 模組支持MQTT最新的版本是多少?

A: 支持MQTT_V3.1、MQTT_V3.1.1版本

Q: 模組最多支持幾路鏈接?

A: mqtt/tcp/udp的鏈接公用8路通道

Q: client id是否允許重復

A: client id不允許重復,要保證唯一性,如果在已經有一個該id的鏈接情況下,另外一個設備也用了相同的clientid接入,會把另一個在連鏈接擠掉。

Q: Qos0、1、2如何選擇

A: 應用允許的情況下,建議使用Qos0,Qos1和Qos2會加重網絡負擔。

Q: 為什么mqtt ssl訪問失敗

A: 檢查服務器是否支持模塊支持的加密套件,用模塊程序中的三元組和證書,在mqttx或者mqttfx客戶端工具上嘗試是否可以成功鏈接。

Q: 排查是否設備單體問題:如果同一地點,某些設備正常,某些設備異常,按照如下幾種情況分析

A:

分析正常設備和異常設備的使用環境是否相同:如果不同,例如異常設備固定在鋼制墻壁上,正常設備放置在桌子上,鋼制墻壁可能對天線射頻有干擾,將異常設備和正常設備放置在同樣的使用環境中,再對比測試。如果相同,參考第2步。分析正常和異常的設備,駐留的小區是否相同:如果相同,重點排查異常設備的天線射頻部分。如同不同,多測試幾次,確認下,是不是在異常小區內很容易出問題,如果異常小區很容易出問題,可能就是小區擁堵造成的。

五、修改代碼

在本demo中,我們實現了數據的上傳和下發,你可以將溫濕度數據上傳到MQTT服務器,也可以用下發的數據進行控制燈的開關。

以上就是合宙Air780E快速入門之通過MQTT連接實現遠程控制的所有內容,伙伴們,學會了嗎?

?審核編輯 黃宇

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

    關注

    15

    文章

    5617

    瀏覽量

    123969
  • 服務器
    +關注

    關注

    14

    文章

    10251

    瀏覽量

    91478
  • 遠程控制
    +關注

    關注

    4

    文章

    726

    瀏覽量

    37026
  • 低功耗
    +關注

    關注

    12

    文章

    3438

    瀏覽量

    106685
  • MQTT
    +關注

    關注

    5

    文章

    733

    瀏覽量

    25062
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    一個G-Sensor,搞定GNSS定位靜態漂移+智能低功耗控制

    Air780EGP、Air780EGG系列通信定位模組,秉承LuatOS二次開發、高集成與低功耗核心優勢的同時,針對定位終端的真實痛點,做出了一項關鍵設計——內置
    的頭像 發表于 02-08 15:37 ?646次閱讀
    一個<b class='flag-5'>G</b>-Sensor,搞定GNSS定位靜態漂移+智能<b class='flag-5'>低功耗</b><b class='flag-5'>控制</b>

    模組功耗入門指南:新手必須掌握的能耗知識

    設計隱患。 一,模組低功耗特性概述 低功耗4G Cat.1 模組最重要的特性之一 4G C
    的頭像 發表于 01-18 13:48 ?652次閱讀
    <b class='flag-5'>模組</b><b class='flag-5'>功耗</b><b class='flag-5'>入門</b>指南:新手必須掌握的能耗知識

    實戰Air780EPM:構建4G共享網關,服務WiFi與有線設備!

    通過Air780EPM開發板,我們可以輕松實現4G網絡作為數據出口,為周邊的WiFi設備和以太網設備提供互聯網共享,適用于移動辦公、遠程部署
    的頭像 發表于 09-30 16:03 ?1222次閱讀
    實戰<b class='flag-5'>Air780</b>EPM:構建<b class='flag-5'>4G</b>共享網關,服務WiFi與有線設備!

    E860-DTU系列4G無線對傳開關:工業物聯網遠程同步控制的解決方案

    ?一、產品概述E860-DTU系列4G無線對傳開關是億佰特針對工業物聯網遠程控制需求推出的核心設備,支持1/2/4/8路開關量輸入(DI)與繼電器輸出(DO)無線傳輸。其搭載高性能工業
    的頭像 發表于 08-07 15:05 ?867次閱讀
    <b class='flag-5'>E</b>860-DTU系列<b class='flag-5'>4G</b>無線對傳開關:工業物聯網<b class='flag-5'>遠程</b>同步<b class='flag-5'>控制</b>的解決方案

    Air8101多網融合戰略升級:Air780EPM模塊助力4G聯網落地

    應用邁向新高度。 本文將分享Air8101核心板通過外掛Air780EPM整機開發板,實現4G聯網的功能示例。 ? 一、硬件準備工作 ? 1
    的頭像 發表于 06-23 16:53 ?533次閱讀
    <b class='flag-5'>Air</b>8101多網融合戰略升級:<b class='flag-5'>Air780</b>EPM模塊助力<b class='flag-5'>4G</b>聯網落地

    COD監測革新!Air780EPM一站式替代STM32+4G模組的物聯網方案 ~

    通過4G通信、COD數據處理與低功耗控制集成于Air780EPM芯片,本方案徹底顛覆STM32+外置
    的頭像 發表于 05-21 16:51 ?582次閱讀
    COD監測革新!<b class='flag-5'>Air780</b>EPM一站式替代STM32+<b class='flag-5'>4G</b><b class='flag-5'>模組</b>的物聯網方案 ~

    大公開!用Air780EPM重構水質COD監測,替代STM32+4G模組的技術路徑

    方法。 以往行業常規開發方案是STM32+4G模組組合,本次實驗項目采用Air780EPM開發新方案——4G模組直接做主控,省卻MCU費用,
    的頭像 發表于 05-16 15:34 ?639次閱讀
    大公開!用<b class='flag-5'>Air780</b>EPM重構水質COD監測,替代STM32+<b class='flag-5'>4G</b><b class='flag-5'>模組</b>的技術路徑

    開發寶典:4低功耗ADC接口,Air780EPM二次開發必看!

    本文將深入探討如何通過硬件參數配置、軟件算法優化及系統級功耗管理,實現ADC接口性能與能耗的最佳平衡。從寄存器設置到驅動程序編寫,從采樣策略到噪聲抑制,我們將全面揭秘Air780EPM
    的頭像 發表于 04-01 14:57 ?635次閱讀
    開發寶典:<b class='flag-5'>4</b>路<b class='flag-5'>低功耗</b>ADC接口,<b class='flag-5'>Air780</b>EPM二次開發必看!

    快速開發實戰——4低功耗ADC接口,Air780EPM二次開發必看!

    : www.air780epm.cn Air780EPM共有4路ADC硬件通道,其通常的作用是用來測試電壓數值,多用于工業控制?、智能家居、汽車電子等。 一、ADC接口特性? ? ?A
    的頭像 發表于 04-01 14:56 ?675次閱讀
    <b class='flag-5'>快速</b>開發實戰——<b class='flag-5'>4</b>路<b class='flag-5'>低功耗</b>ADC接口,<b class='flag-5'>Air780</b>EPM二次開發必看!

    新手必看!4G模組Air780EPM——GPIO的設計說明

    Air780EPM的GPIO設計需兼顧硬件可靠性與軟件靈活性,開發者應基于具體應用場景權衡復用功能優先級,并遵循電源管理規范以延長設備生命周期。通過模塊化配置與精細化調試,可最大化釋放模組性能潛力
    的頭像 發表于 03-20 17:48 ?771次閱讀
    新手必看!<b class='flag-5'>4G</b><b class='flag-5'>模組</b><b class='flag-5'>Air780</b>EPM——GPIO的設計說明

    干貨預警!4G模組Air780EPM其他硬件接口

    Air780EPM 4G模組不僅憑借高速穩定的數據傳輸能力在智能終端、工業自動化、車載設備等領域大放異彩,更以其“全棧式”硬件接口設計,為開發者提供了近乎無限的擴展可能。 一、ADC 接口設計指導
    的頭像 發表于 03-17 17:37 ?977次閱讀
    干貨預警!<b class='flag-5'>4G</b><b class='flag-5'>模組</b>:<b class='flag-5'>Air780</b>EPM其他硬件接口

    手把手教你!4G模組Air780EPM——GPIO的設計說明

    4G模組Air780EPM作為廣和通推出的高性能Cat.1bis無線通信模塊,憑借其低功耗、高集成度及豐富的外設接口,在工業物聯網、智能終端、車載設備等領域展現出卓越的適配性。 一、概
    的頭像 發表于 03-17 16:07 ?1115次閱讀
    手把手教你!<b class='flag-5'>4G</b><b class='flag-5'>模組</b><b class='flag-5'>Air780</b>EPM——GPIO的設計說明

    快速上手!4G模組Air780EPM的供電設計以及選型推薦

    本文主要介紹了如何為 Air780EPM 模塊設計供電電路,涵蓋 LDO、DCDC、鋰電池等多種方案。 重點包括:根據設備需求選合適電源類型,選元件時注意 LDO 散熱、DCDC 電感抗沖擊能力
    的頭像 發表于 03-10 17:53 ?875次閱讀
    <b class='flag-5'>快速</b>上手!<b class='flag-5'>4G</b><b class='flag-5'>模組</b><b class='flag-5'>Air780</b>EPM的供電設計以及選型推薦

    4G模組Air780EPM的開機啟動及外圍電路設計!

    本文介紹了4G模組——Air780EPM 模塊開機的完整硬件設計指南,涵蓋供電要求、管腳配置、電路示例及常見問題排查方法,希望能夠幫助大家避免設計錯誤,確保模塊穩定啟動!常見開機電路。 ? 這些內容
    的頭像 發表于 03-07 16:06 ?1059次閱讀
    <b class='flag-5'>4G</b><b class='flag-5'>模組</b><b class='flag-5'>Air780</b>EPM的開機啟動及外圍電路設計!

    初學者必看!4G模組Air780EPM的開機啟動及外圍電路設計

    本文介紹了4G模組——Air780EPM 模塊開機的完整硬件設計指南,涵蓋供電要求、管腳配置、電路示例及常見問題排查方法,希望能夠幫助大家避免設計錯誤,確保模塊穩定啟動!常見開機電路。 ? 這些內容
    的頭像 發表于 03-07 16:02 ?834次閱讀
    初學者必看!<b class='flag-5'>4G</b><b class='flag-5'>模組</b><b class='flag-5'>Air780</b>EPM的開機啟動及外圍電路設計