91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內(nèi)不再提示

LuatOS:AirCloud 云協(xié)議——物聯(lián)網(wǎng)設備數(shù)據(jù)上報實操詳解

合宙LuatOS ? 來源:合宙LuatOS ? 作者:合宙LuatOS ? 2026-03-19 18:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

物聯(lián)網(wǎng)設備開發(fā)中,便捷上云與穩(wěn)定數(shù)傳是核心需求,LuatOSAirCloud 物聯(lián)網(wǎng)云服務通信協(xié)議可實現(xiàn)數(shù)據(jù)上報核心功能,支持七類數(shù)據(jù)的定期 / 觸發(fā)式上報。本文將講解該協(xié)議相關(guān)內(nèi)容,同時提供模組開源示例、核心代碼及配套開發(fā)硬件與教程,助力開發(fā)者快速實現(xiàn)設備接入與數(shù)據(jù)上報。

一、AirCloud數(shù)據(jù)上報功能

1.1、數(shù)據(jù)上報功能概述

數(shù)據(jù)上報是AirCloud的核心功能之一,允許設備將各種狀態(tài)數(shù)據(jù)、傳感器數(shù)據(jù)等信息定期或觸發(fā)式地傳輸?shù)皆贫似脚_,用于實現(xiàn):

  • 設備狀態(tài)實時監(jiān)控
  • 傳感器數(shù)據(jù)采集與分析
  • 設備運行歷史記錄
  • 基于數(shù)據(jù)的業(yè)務決策

1.2、支持的數(shù)據(jù)類型

AirCloud支持上報多種類型的數(shù)據(jù),通過excloud擴展庫的excloud.FIELD_MEANINGS常量定義,主要包括以下幾大類:

  • 傳感器數(shù)據(jù)如:溫度、濕度、酸堿度、顆粒物濃度、環(huán)境溫度、電量計量等。
  • 定位與運動數(shù)據(jù)如:GNSS經(jīng)緯度、行駛速度、GNSS衛(wèi)星信噪比、搜索到的衛(wèi)星總數(shù)、航向角、方向角、定位方式標識等。
  • 設備狀態(tài)數(shù)據(jù)如:電池電壓、4G信號強度、SIM卡ICCID、設備休眠模式、定時喚醒間隔等。
  • 設備參數(shù)數(shù)據(jù)如:設備物理高度/寬度、轉(zhuǎn)速、駐留小區(qū)、小區(qū)信息、元器件型號等。
  • 軟件與系統(tǒng)數(shù)據(jù)如:固件版本、系統(tǒng)錯誤信息、短信轉(zhuǎn)發(fā)、來電轉(zhuǎn)發(fā)等。
  • 通用數(shù)據(jù)如:時間戳、無意義數(shù)據(jù)等。
  • 控制與響應數(shù)據(jù)如:控制命令/回應、鑒權(quán)請求/回復等。

二、開源實例

針對各模組型號提供開源示例demo,并持續(xù)更新配套教程,開發(fā)者可以掌握AirCloud數(shù)據(jù)上報功能的使用方法。

以Air780EHV系列為例,可選用配套核心板或開發(fā)板實操驗證。
Air780EHV 是 Air780Exx 系列的 4G Cat.1 全網(wǎng)通模組,有 3.3V/1.8V 兩種 IO 電平版本,內(nèi)置 ES8311 音頻芯片,支持 VoLTE 高清通話、TTS 語音合成等語音功能,外設接口豐富且支持 485、CAN以太網(wǎng)等工業(yè)常用配置,支持低功耗,功耗最低3uA,僅支持 LuatOS 二次開發(fā),適用于智能語音交互、工業(yè)物聯(lián)網(wǎng)等低功耗物聯(lián)網(wǎng)場景。
c1-1.png

核心代碼如下圖示,完整demo詳見源碼倉庫最新文件。

開發(fā)者可根據(jù)實際項目需求靈活配置連接參數(shù),實現(xiàn)設備接入與數(shù)據(jù)上報。

本demo演示了excloud擴展庫的完整使用流程,包括:

  1. 設備連接與認證
  2. 數(shù)據(jù)上報與接收
  3. 運維日志管理
  4. 文件上傳功能
  5. 心跳保活機制
]]
-- 導入excloud庫
local excloud = require("excloud")
-- 注冊回調(diào)函數(shù)
function on_excloud_event(event, data)
log.info("用戶回調(diào)函數(shù)", event, json.encode(data))

if event == "connect_result" then
if data.success then
log.info("連接成功")
sys.publish("aircloud_connected")
else
log.info("連接失敗: " .. (data.error or "未知錯誤"))
end
elseif event == "auth_result" then
if data.success then
log.info("認證成功")
else
log.info("認證失敗: " .. data.message)
end
elseif event == "message" then
log.info("收到消息, 流水號: " .. data.header.sequence_num)

-- 處理服務器下發(fā)的消息
for _, tlv in ipairs(data.tlvs) do
log.info("TLV字段", "含義:", tlv.field, "類型:", tlv.type, "值:", tlv.value)

if tlv.field == excloud.FIELD_MEANINGS.CONTROL_COMMAND then
log.info("收到控制命令: " .. tostring(tlv.value))

-- 處理控制命令并發(fā)送響應
local response_ok, err_msg = excloud.send({
{
field_meaning = excloud.FIELD_MEANINGS.CONTROL_RESPONSE,
data_type = excloud.DATA_TYPES.UNICODE,
value = "命令執(zhí)行成功"
}
}, false)

if not response_ok then
log.info("發(fā)送控制響應失敗: " .. err_msg)
end
end
end
elseif event == "disconnect" then
log.warn("與服務器斷開連接")
elseif event == "reconnect_failed" then
log.info("重連失敗,已嘗試 " .. data.count .. " 次")
elseif event == "send_result" then
if data.success then
log.info("發(fā)送成功,流水號: " .. data.sequence_num)
else
log.info("發(fā)送失敗: " .. data.error_msg)
end

elseif event == "mtn_log_upload_start" then
log.info("運維日志上傳開始", "文件數(shù)量:", data.file_count)

elseif event == "mtn_log_upload_progress" then
log.info("運維日志上傳進度",
"當前文件:", data.current_file,
"總數(shù):", data.total_files,
"文件名:", data.file_name,
"狀態(tài):", data.status)

elseif event == "mtn_log_upload_complete" then
log.info("運維日志上傳完成",
"成功:", data.success_count,
"失敗:", data.failed_count,
"總計:", data.total_files)
end

end

-- 注冊回調(diào)
excloud.on(on_excloud_event)
-- 主任務函數(shù)
function excloud_task_func()
-- 如果當前時間點設置的默認網(wǎng)卡還沒有連接成功,一直在這里循環(huán)等待
while not socket.adapter(socket.dft()) do
log.warn("excloud_task_func", "wait IP_READY", socket.dft())
-- 在此處阻塞等待默認網(wǎng)卡連接成功的消息"IP_READY"
-- 或者等待1秒超時退出阻塞等待狀態(tài);
-- 注意:此處的1000毫秒超時不要修改的更長;
-- 因為當使用exnetif.set_priority_order配置多個網(wǎng)卡連接外網(wǎng)的優(yōu)先級時,會隱式的修改默認使用的網(wǎng)卡
-- 當exnetif.set_priority_order的調(diào)用時序和此處的socket.adapter(socket.dft())判斷時序有可能不匹配
-- 此處的1秒,能夠保證,即使時序不匹配,也能1秒鐘退出阻塞狀態(tài),再去判斷socket.adapter(socket.dft())
sys.waitUntil("IP_READY", 1000)
end
-- -- 配置excloud參數(shù)
local ok, err_msg = excloud.setup({
use_getip = true, -- 使用getip服務
device_type = 1,   -- 4G設備
-- auth_key = "Qqn2TH50319ELOuO0rhPgF5fOxNVNhNW",
transport = "udp",       -- 使用TCP傳輸
auto_reconnect = true,   -- 自動重連
reconnect_interval = 10, -- 重連間隔(秒)
max_reconnect = 5,       -- 最大重連次數(shù)
mtn_log_enabled = true,  -- 啟用運維日志
mtn_log_blocks = 1,      -- 日志文件塊數(shù)
mtn_log_write_way = excloud.MTN_LOG_ADD_WRITE  -- 追加寫入方式
})

--不使用getip服務,注意把use_getip設置為false
-- local ok, err_msg = excloud.setup({
--     use_getip = false,                             -- 不使用getip服務
--     device_type = 1,                               -- 設備類型: 4G
--     host = "112.125.89.8",                         -- 服務器地址
--     port = 32585,                                  -- 服務器端口
--     auth_key = "Qqn2TH50319ELOuO0rhPgF5fOxNVNhNW", -- 鑒權(quán)密鑰
--     transport = "tcp",                             -- 使用TCP傳輸
--     auto_reconnect = true,                         -- 自動重連
--     reconnect_interval = 10,                       -- 重連間隔(秒)
--     max_reconnect = 5,                             -- 最大重連次數(shù)
--     mtn_log_enabled = true                         -- 啟用運維日志
-- })

-- 配置excloud參數(shù),虛擬設備鏈接
-- local ok, err_msg = excloud.setup({
--     use_getip = true, --使用getip服務
--     device_type = 9,
--     auth_key = "Qqn2TH50319ELOuO0rhPgF5fOxNVNhNW",
--     virtual_phone_number = "15893470522",  -- 11位手機
--     virtual_serial_num = 1,                -- 序列號(0-999)
--     transport = "tcp", -- 由于mqtt鏈接需要使用imei,虛擬設備沒有,所以只能使用TCP傳輸
--     mtn_log_enabled = true
-- })

if not ok then
log.info("初始化失敗: " .. err_msg)
return
end
log.info("excloud初始化成功")

-- 開啟excloud服務
local ok, err_msg = excloud.open()
if not ok then
log.info("開啟excloud服務失敗: " .. err_msg)
return
end
log.info("excloud服務已開啟")
-- 啟動自動心跳,默認5分鐘一次的心跳
excloud.start_heartbeat()
log.info("自動心跳已啟動")

-- 啟動3分鐘一次的心跳,可配置自定義內(nèi)容
-- excloud.start_heartbeat(180, {
--     { field_meaning = excloud.FIELD_MEANINGS.TIMESTAMP,
--     data_type = excloud.DATA_TYPES.INTEGER,
--     value = os.time() }
-- })

-- 停止自動心跳
--excloud.stop_heartbeat()
-- 記錄啟動日志
--excloud.mtn_log("system", "設備啟動完成", "version", "1.0.0")
-- 獲取并打印二維碼信息
local qrinfo = excloud.get_qrinfo()
if qrinfo and qrinfo.url then
log.info("二維碼URL:", qrinfo.url)
else
log.info("未獲取到二維碼信息")
end

-- 主循環(huán):定期上報數(shù)據(jù)

while true do
-- 每30秒上報一次數(shù)據(jù)
sys.wait(30000)
-- 檢查連接狀態(tài)
local status = excloud.status()
if not status.is_connected then
log.warn("設備未連接,跳過數(shù)據(jù)上報")

else
-- 上報基礎狀態(tài)數(shù)據(jù)
local ok, err_msg = excloud.send({
{
field_meaning = excloud.FIELD_MEANINGS.SIGNAL_STRENGTH_4G,
data_type = excloud.DATA_TYPES.INTEGER,
value = 22  -- 信號強度
},
{
field_meaning = excloud.FIELD_MEANINGS.SIM_ICCID,
data_type = excloud.DATA_TYPES.ASCII,
value = "89860118801012345678"  -- SIM卡ICCID
},
{
field_meaning = excloud.FIELD_MEANINGS.TIMESTAMP,
data_type = excloud.DATA_TYPES.INTEGER,
value = os.time()
}
}, false)

if ok then
log.info("基礎數(shù)據(jù)上報成功")
else
log.error("基礎數(shù)據(jù)上報失敗:", err_msg)
end
end
end
end

以上便是 AirCloud 數(shù)據(jù)上報的相關(guān)使用方法與核心要點,今天的分享就到這里啦!~

審核編輯 黃宇

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

    關(guān)注

    2947

    文章

    47911

    瀏覽量

    416151
  • LuatOS
    +關(guān)注

    關(guān)注

    0

    文章

    159

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    LuatOS:485 總線硬件設計要點與 exmodbus 庫開發(fā)實戰(zhàn)

    在工業(yè)聯(lián)網(wǎng)通信開發(fā)中,485 總線與 Modbus 協(xié)議的組合應用十分常見。本文以合宙 Air780EHV 系列模組為實例,圍繞 LuatOS 開發(fā)環(huán)境,
    的頭像 發(fā)表于 03-19 17:57 ?23次閱讀
    <b class='flag-5'>LuatOS</b>:485 總線硬件設計要點與 exmodbus 庫開發(fā)實戰(zhàn)

    基于LuatOS的MQTT聯(lián)網(wǎng)通信全解

    在構(gòu)建物聯(lián)網(wǎng)終端設備時,通信協(xié)議的選擇直接決定系統(tǒng)的穩(wěn)定性與擴展性。LuatOS通過內(nèi)置MQTT客戶端支持,使開發(fā)者能以極少代碼實現(xiàn)設備
    的頭像 發(fā)表于 01-29 19:42 ?218次閱讀
    基于<b class='flag-5'>LuatOS</b>的MQTT<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>通信全解

    京東關(guān)鍵詞搜索接口獲取商品數(shù)據(jù)指南

    京東關(guān)鍵詞搜索接口獲取商品數(shù)據(jù) 指南 本指南聚焦 京東開放平臺合規(guī)接口 (item_search基礎版 / item_search_pro增強版),提供 從賬號準備→接口調(diào)用→數(shù)據(jù)
    的頭像 發(fā)表于 01-07 13:56 ?311次閱讀

    4G工業(yè)網(wǎng)關(guān)實現(xiàn)PLC數(shù)據(jù)采集與HTTP協(xié)議上報

    HTTP(超文本傳輸協(xié)議)是互聯(lián)網(wǎng)最基礎的應用層協(xié)議,在工業(yè)聯(lián)網(wǎng)(IIoT)中也被廣泛用于設備
    的頭像 發(fā)表于 12-23 10:22 ?334次閱讀
    4G工業(yè)網(wǎng)關(guān)實現(xiàn)PLC<b class='flag-5'>數(shù)據(jù)</b>采集與HTTP<b class='flag-5'>協(xié)議</b><b class='flag-5'>上報</b>

    快速掌握TCP/IP?LuatOS新手入門指南

    僅是互聯(lián)網(wǎng)的通信基石,更像是一套精妙絕倫的“世界語”,讓形態(tài)各異、遍布全球的設備能夠跨越硬件和軟件的差異,使用統(tǒng)一的規(guī)則進行對話。 ? 相比傳統(tǒng)開發(fā)方式,LuatOS通過高效易用的API:將復雜的
    的頭像 發(fā)表于 10-15 17:27 ?706次閱讀
    快速掌握TCP/IP?<b class='flag-5'>LuatOS</b>新手入門指南

    學習聯(lián)網(wǎng)怎么入門?

    聯(lián)網(wǎng)的基本概念和技術(shù)是學習聯(lián)網(wǎng)的重要第一步。聯(lián)網(wǎng)是指互聯(lián)網(wǎng)上的物品相互連接,通過網(wǎng)絡實現(xiàn)信息
    發(fā)表于 10-14 10:34

    學習聯(lián)網(wǎng)可以做什么工作?

    健康、智能制造等領域。以下是一些常見的職業(yè)方向: 聯(lián)網(wǎng)工程師:從事物聯(lián)網(wǎng)系統(tǒng)的設計、開發(fā)、測試、維護和升級等工作,包括傳感器、無線通信、計算、大
    發(fā)表于 10-11 16:40

    不同品牌PLC如何接入平臺?御控多協(xié)議聯(lián)網(wǎng)網(wǎng)關(guān)一站式集成方案

    御控工業(yè)聯(lián)網(wǎng)網(wǎng)關(guān)提供強大協(xié)議轉(zhuǎn)換能力,免編程實現(xiàn)PLC數(shù)據(jù)采集、MQTT協(xié)議轉(zhuǎn)換與平臺(阿里
    的頭像 發(fā)表于 09-22 12:04 ?539次閱讀
    不同品牌PLC如何接入<b class='flag-5'>云</b>平臺?御控多<b class='flag-5'>協(xié)議</b><b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>網(wǎng)關(guān)一站式集成方案

    數(shù)據(jù)中臺可以接入哪些聯(lián)網(wǎng)平臺

    數(shù)據(jù)中臺作為企業(yè)數(shù)字化轉(zhuǎn)型的核心樞紐,能夠通過標準化接口、協(xié)議適配及數(shù)據(jù)治理能力,接入多種類型的聯(lián)網(wǎng)
    的頭像 發(fā)表于 08-19 15:22 ?794次閱讀

    聯(lián)網(wǎng)平臺的作用有哪些?讓萬互聯(lián)

    聯(lián)網(wǎng)從概念走向規(guī)模化落地的過程中,離不開聯(lián)網(wǎng)平臺對設備、
    的頭像 發(fā)表于 08-07 18:00 ?1063次閱讀

    低代碼聯(lián)網(wǎng)平臺功能解析:從設備接入到智能應用

    設備數(shù)據(jù)與應用的核心樞紐,其功能覆蓋了從設備接入到數(shù)據(jù)處理、應用開發(fā)的全流程。以下是其主要功能的詳細說明: 一、設備接入與管理
    的頭像 發(fā)表于 07-31 15:23 ?1018次閱讀

    職業(yè)教育聯(lián)網(wǎng)訓平臺:御控網(wǎng)關(guān)賦能產(chǎn)教融合新范式

    場景中多協(xié)議共存的復雜環(huán)境; l 實踐與產(chǎn)業(yè)脫節(jié):學生缺乏對邊緣計算、協(xié)議轉(zhuǎn)換等關(guān)鍵技術(shù)的經(jīng)驗,難以適應企業(yè)需求; l 教學評估低效:傳統(tǒng)
    的頭像 發(fā)表于 06-26 15:18 ?638次閱讀

    聯(lián)網(wǎng)的應用范圍有哪些?

    情況;網(wǎng)絡通信技術(shù)保障數(shù)據(jù)在不同設備、系統(tǒng)間穩(wěn)定傳輸,像 4G、5G 甚至未來的 6G 網(wǎng)絡;大數(shù)據(jù)計算技術(shù)則對海量的感知數(shù)據(jù)進行存儲、
    發(fā)表于 06-16 16:01

    聯(lián)網(wǎng)工程師為什么要學Linux?

    聯(lián)網(wǎng)工程師需要掌握Linux的主要原因可以從技術(shù)生態(tài)、開發(fā)需求、行業(yè)應用及就業(yè)競爭力四個角度來分析: 一、技術(shù)生態(tài)與行業(yè)適配性 1)嵌入式開發(fā)的主流平臺 聯(lián)網(wǎng)
    發(fā)表于 05-26 10:32

    工業(yè)智能網(wǎng)關(guān)與MQTT聯(lián)網(wǎng)平臺的關(guān)系

    工業(yè)智能網(wǎng)關(guān)與 MQTT 聯(lián)網(wǎng)平臺在聯(lián)網(wǎng)架構(gòu)中是互補協(xié)作的關(guān)系,具體可歸納為以下幾點: 數(shù)據(jù)
    的頭像 發(fā)表于 03-21 09:44 ?1304次閱讀