最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Luat Air780E/Air700E使用MQTT協(xié)議接入巴法云物聯(lián)網(wǎng)平臺(tái)

2023-04-01 00:23 作者:TOP_SC  | 我要投稿

來自星星筆記(cxing.top):鏈接??https://cxing.top/archives/33.html

###### 程序源碼

1、先來代碼:

```lua

PROJECT = "mqttdemo"

VERSION = "1.0.0"


_G.sys = require("sys")

_G.sysplus = require("sysplus")


local mqtt_host = "bemfa.com"

local mqtt_port = 9501

local mqtt_isssl = false

local client_id = "*******"

local pub_topic = "****/set"

local sub_topic = "****"


sys.taskInit(function()

? ? if rtos.bsp() == "AIR780E" then

? ? ? ? device_id = mobile.imei()

? ? ? ? sys.waitUntil("IP_READY", 30000)

? ? ? ? pub_topic = "mqtt"

? ? ? ? sub_topic = "mqtt"

? ? end


? ? log.info("mqtt", "pub", pub_topic)

? ? log.info("mqtt", "sub", sub_topic)


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


? ? mqttc:auth(client_id, nil, nil)

? ? mqttc:autoreconn(true, 3000)


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

? ? ? ? if event == "conack" then

? ? ? ? ? ? sys.publish("mqtt_conack")

? ? ? ? ? ? mqtt_client:subscribe(sub_topic)

? ? ? ? elseif event == "recv" then

? ? ? ? ? ? log.info("mqtt", "received", "topic", data, "payload", payload)

? ? ? ? elseif event == "sent" then

? ? ? ? ? ? log.info("mqtt", "sent", "pkgid", data)

? ? ? ? end

? ? end)


? ? mqttc:connect()

? ? sys.waitUntil("mqtt_conack")


? ? while true do

? ? ? ? sys.wait(5000)

? ? ? ? local data = "OFF"

? ? ? ? if math.random(0, 1) == 1 then

? ? ? ? ? ? data = "ON"

? ? ? ? end

? ? ? ? local pkgid = mqttc:publish(pub_topic, data, 1)

? ? ? ? log.info("mqtt", "published", pkgid, pub_topic, data)

? ? end


? ? mqttc:disconnect()

? ? mqttc:close()

? ? mqttc = nil

end)


sys.run()

```

2、需要修改的地方:

```lua

local mqtt_host = "bemfa.com"

local mqtt_port = 9501

local mqtt_isssl = false

local client_id = "*******"

local pub_topic = "****/set"

local sub_topic = "****"

```

(1)把 `client_id` 換成巴法云MQTT接入的私鑰。

?![巴法云mqtt私鑰](https://png.cxing.top/i/2023/03/31/12yt1uo.png)?

(2)把 `pub_topic` 換成自己的mqtt主題,之所以加 `/set`是為了防止自己接收到自己推送的信息。具體可以參考 [巴法云MQTT接入?yún)f(xié)議](https://cloud.bemfa.com/docs/#/?id=_43-mqtt%e8%ae%be%e5%a4%87%e4%ba%91) 。

(3)把 `sub_topic` 換成自己想要訂閱的主題。

###### 源碼解釋

1、這段程序使用 Lua 編寫,主要功能是連接 MQTT 服務(wù)器并定期向指定的主題(topic)發(fā)布消息。以下是程序的具體運(yùn)行流程:


2、首先定義了一些常量和變量,包括項(xiàng)目名 PROJECT、版本號(hào) VERSION、MQTT 服務(wù)器的地址、端口號(hào)、是否啟用 SSL 等信息。其中 client_id 是一個(gè)唯一的客戶端標(biāo)識(shí)符,用于連接 MQTT 服務(wù)器時(shí)進(jìn)行認(rèn)證。pub_topic 和 sub_topic 分別是發(fā)布和訂閱的主題。


3、創(chuàng)建一個(gè)任務(wù),在該任務(wù)中連接 MQTT 服務(wù)器,并定期向指定的主題發(fā)布消息。如果設(shè)備是 AIR780E,則使用設(shè)備的 IMEI 作為客戶端標(biāo)識(shí)符,且發(fā)布和訂閱的主題改為 "mqtt"。


4、在任務(wù)中,首先等待 IP_READY 事件發(fā)生(只有 AIR780E 才需要等待),等待時(shí)間為 30 秒。然后打印發(fā)布和訂閱的主題。


5、創(chuàng)建一個(gè) MQTT 客戶端 mqttc,并設(shè)置認(rèn)證信息、自動(dòng)重連等屬性。然后注冊(cè)一個(gè)回調(diào)函數(shù),處理 MQTT 事件,包括連接成功(conack)、接收消息(recv)和發(fā)送消息(sent)。


6、連接 MQTT 服務(wù)器,等待連接成功的事件 mqtt_conack 發(fā)生,然后訂閱指定的主題。


7、進(jìn)入一個(gè)無(wú)限循環(huán),每隔 5 秒向指定的主題發(fā)布一條消息,消息內(nèi)容為 "ON" 或 "OFF"。使用 mqttc:publish 方法發(fā)布消息,并打印發(fā)布的主題和消息內(nèi)容。


8、循環(huán)結(jié)束后,斷開 MQTT 連接,并關(guān)閉客戶端。


 總體來說,這段程序的功能是連接 MQTT 服務(wù)器并定期向指定的主題發(fā)布消息。如果設(shè)備是 AIR780E,則使用設(shè)備的 IMEI 作為客戶端標(biāo)識(shí)符,且發(fā)布和訂閱的主題改為 "mqtt"。程序的運(yùn)行流程包括連接 MQTT 服務(wù)器、注冊(cè)回調(diào)函數(shù)、訂閱主題、發(fā)布消息等。

###### 程序燒錄

 使用Luatools燒錄程序,具體燒錄教程看官網(wǎng)教程: [LuaTools 上手教程-看這篇就夠了](https://doc.openluat.com/article/1719/0?from=luatools)?

?![luatools燒錄截圖](https://png.cxing.top/i/2023/04/01/7zieq.png)?

{message type="success" content="注:此教程適用于Air780E和Air700E,其他板子和其他MQTT服務(wù)器可參考修改。"/}

###### 部分引用:

> 巴法云物聯(lián)網(wǎng)平臺(tái):https://cloud.bemfa.com/

> Air700E資料:https://air700e.cn/

Luat Air780E/Air700E使用MQTT協(xié)議接入巴法云物聯(lián)網(wǎng)平臺(tái)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
怀集县| 岳池县| 东丽区| 易门县| 武城县| 濮阳县| 正定县| 类乌齐县| 娱乐| 宽城| 班戈县| 镇巴县| 大埔区| 延长县| 墨竹工卡县| 枝江市| 多伦县| 太原市| 曲松县| 黄石市| 岳阳县| 乐业县| 新邵县| 南川市| 余江县| 固安县| 大方县| 沙坪坝区| 商河县| 卢龙县| 江口县| 涟水县| 申扎县| 陇南市| 安远县| 新建县| 白水县| 辽阳市| 富平县| 通海县| 永川市|