- 關(guān)聯(lián)文檔和使用工具:
- LuatOS庫(kù)
- 阿里云平臺(tái)
準(zhǔn)備工作
PC電腦,串口工具
準(zhǔn)備設(shè)備證書及產(chǎn)品證書 注意:下方證書信息僅為本教程使用,用戶需要使用自己的證書信息
--設(shè)備證書 { "ProductKey": "k1hipglLdjU", "DeviceName": "868488076506128", "DeviceSecret": "fef32adf6dad46c2c7cbf335d3a7b021" } --產(chǎn)品證書 { "ProductSecret": "8LQwOYSZMwp3DFBd", "ProductKey": "k1hipglLdjU" } --公共實(shí)例ID { "InstanceId":"iot-06z00ipoepm2g97" }
阿里云介紹
物聯(lián)網(wǎng)平臺(tái)提供安全可靠的設(shè)備連接通信能力,支持設(shè)備數(shù)據(jù)采集上云,規(guī)則引擎流轉(zhuǎn)數(shù)據(jù)和云端數(shù)據(jù)下發(fā)設(shè)備端。此外,也提供方便快捷的設(shè)備管理能力,支持物模型定義,數(shù)據(jù)結(jié)構(gòu)化存儲(chǔ),和遠(yuǎn)程調(diào)試、監(jiān)控、運(yùn)維。阿里云物聯(lián)網(wǎng)平臺(tái)為設(shè)備提供安全可靠的連接通信能力,向下連接海量設(shè)備,支撐設(shè)備數(shù)據(jù)采集上云;向上提供云端API,服務(wù)端通過(guò)調(diào)用云端API將指令下發(fā)至設(shè)備端,實(shí)現(xiàn)遠(yuǎn)程控制。物聯(lián)網(wǎng)平臺(tái)消息通信流程圖如下。
API說(shuō)明
API接口 | 功能描述 |
---|---|
aLiYun.setup() | 配置阿里云物聯(lián)網(wǎng)套件的產(chǎn)品信息和設(shè)備信息 |
aLiYun.setRegion() | 設(shè)置地域region id |
aLiYun.setConnectMode() | 設(shè)置連接方式 |
aLiYun.subscribe() | 訂閱主題 |
aLiYun.publish() | 發(fā)布一條消息 |
詳細(xì)的API介紹請(qǐng)參見(jiàn)aLiYun章節(jié)
實(shí)現(xiàn)流程
注冊(cè)接入服務(wù)器結(jié)果回調(diào)函數(shù)
在收到true時(shí)表示連接成功,本demo中去發(fā)布一條QOS為1的消息給阿里云。
設(shè)置地域
配置為在阿里云創(chuàng)建項(xiàng)目時(shí)所用地區(qū)。每個(gè)地域完全獨(dú)立。每個(gè)可用區(qū)完全隔離,但同一個(gè)地域內(nèi)的可用區(qū)之間使用低時(shí)延鏈路相連。地域和可用區(qū)之間的關(guān)系如下圖所示。
阿里云操作
產(chǎn)品操作
打開阿里云平臺(tái)找到物聯(lián)網(wǎng)平臺(tái),開通業(yè)務(wù)后進(jìn)入控制臺(tái)。
點(diǎn)開設(shè)備管理的產(chǎn)品頁(yè)面,點(diǎn)擊新建產(chǎn)品。根據(jù)需求和圖示說(shuō)明創(chuàng)建產(chǎn)品。
具體詳細(xì)介紹見(jiàn)阿里云頁(yè)面
設(shè)備操作
創(chuàng)建產(chǎn)品完成后就可以進(jìn)入設(shè)備頁(yè)面添加設(shè)備,在對(duì)應(yīng)產(chǎn)品頁(yè)面進(jìn)入設(shè)備管理,按照提示添加設(shè)備
(在做正式產(chǎn)品時(shí)建議使用imei為devicename,方便后期維護(hù))
阿里云設(shè)備創(chuàng)建
連接阿里云
LuatOS-Air方式連接概述
LuatOS-Air連接相比AT更為簡(jiǎn)單,只需要簡(jiǎn)單的配置即可連接,還可以靈活的對(duì)數(shù)據(jù)進(jìn)行處理。需要從官網(wǎng)或者github下載aliyun的腳本包,或者使用luatoolsv2會(huì)自動(dòng)下載腳本資源,在工具根目錄的\Luatools\resource\soc_script\v2024.06.25.16\demo\aliyun中腳本資源會(huì)隨官網(wǎng)同步更新,具體版本可能和本文不同,不過(guò)功能都是一致的。
文檔中用到的API接口見(jiàn)aLiYun API章節(jié)。
一機(jī)一密LuatOS-Air方式連接
一機(jī)一密需要提前按照文檔中阿里云操作章節(jié)事先建好產(chǎn)品并添加設(shè)備。
然后找到所使用的腳本版本進(jìn)入demo目錄找到aliyun文件夾打開main.lua,根據(jù)下方圖示打開這三行的require(如果有被注釋掉,將注釋去掉),并將其他不相關(guān)的注釋掉。
接著打開testYjym.lua,根據(jù)后面的操作修改三元組信息(DeviceName、ProductKey、DeviceSecret)和InstanceId信息。
首先將testYjym.lua中的三元組信息(DeviceName、ProductKey、DeviceSecret)修改為自己項(xiàng)目中的三元組信息。通過(guò)下方圖示可找到自己項(xiàng)目中的三元組信息。
然后在實(shí)例詳情頁(yè)面,找到實(shí)例id并將其填寫到代碼中對(duì)應(yīng)位置。
最后將代碼保存,通過(guò)Luatools軟件將固件+腳本燒錄進(jìn)設(shè)備后,便能連接上阿里云了。這是燒錄教程。
一型一密LuatOS-Air方式連接(公共實(shí)例)
除了需要添加產(chǎn)品和設(shè)備外還需要在阿里云平臺(tái)中打開對(duì)應(yīng)產(chǎn)品的動(dòng)態(tài)注冊(cè)開關(guān)
先找到所使用的腳本版本進(jìn)入demo目錄找到aliyun文件夾打開main.lua,根據(jù)下方圖示打開這兩行的require(如果有被注釋掉,將注釋去掉),并將其他不相關(guān)的注釋掉。
接著打開testYxym.lua,根據(jù)后面的操作修改DeviceName、ProductKey、ProductSecret和InstanceId信息。
其中DeviceName、ProductKey和InstanceId信息的位置在一機(jī)一密LuatOS-Air方式連接中已指出。下圖為ProductSecret信息的位置。
接著將DeviceName、ProductKey、ProductSecret和InstanceId信息填寫到testYxym.lua中對(duì)應(yīng)位置。
最后將代碼保存,通過(guò)Luatools軟件將固件+腳本燒錄進(jìn)設(shè)備后,便能連接上阿里云了。這是燒錄教程。 注意:第一次使用一型一密時(shí),設(shè)備要處于未激活狀態(tài)。
發(fā)布與訂閱消息
發(fā)布消息
發(fā)布消息使用的是**aliyun.publish(topic,qos,payload,cbFnc,cbPara)**這個(gè)API。
傳入值類型 | 釋義 |
---|---|
string | UTF8編碼的主題 |
number | qos質(zhì)量等級(jí),0/1,默認(rèn)0 |
string | payload 負(fù)載內(nèi)容,UTF8編碼 |
function | cbFnc 消息發(fā)布結(jié)果的回調(diào)函數(shù),回調(diào)函數(shù)的調(diào)用形式為:cbFnc(result,cbPara)。result為true表示發(fā)布成功,false或者nil表示訂閱失敗;cbPara為本接口中的第5個(gè)參數(shù) |
param | cbPara 消息發(fā)布結(jié)果回調(diào)函數(shù)的回調(diào)參數(shù) |
return | nil |
在demo里**publishTest()**這個(gè)函數(shù)演示了接口的操作。無(wú)需修改即可實(shí)現(xiàn)每20s向阿里云推送一條消息。
--發(fā)布一條QOS為1的消息 function publishTest() --注意:在此處自己去控制payload的內(nèi)容編碼,aLiYun庫(kù)中不會(huì)對(duì)payload的內(nèi)容做任何編碼轉(zhuǎn)換 -- aliyun.publish(topic,qos,payload,cbFnc,cbPara) log.info("aliyun", "上行數(shù)據(jù)") aliyun.publish("/"..aliyun.opts.ProductKey.."/"..aliyun.opts.DeviceName.."/user/update",1,"LUATOS_CESHI",publishTestCb,"publishTest_"..publishCnt) end
訂閱消息
訂閱使用的是aLiYun.subscribe(topic, qos)
傳入值類型 | 釋義 |
---|---|
string | 主題內(nèi)容為UTF8編碼 |
param | qos為number類型(0/1,默認(rèn)1) |
return | nil |
以下代碼為訂閱的操作,用戶可根據(jù)自己的項(xiàng)目需要訂閱主題。
--- 連接結(jié)果的處理函數(shù) -- @bool result,連接結(jié)果,true表示連接成功,false或者nil表示連接失敗 local function connectCbFnc(result) log.info("aliyun","連接結(jié)果", result) if result then sys.publish("aliyun_ready") log.info("aliyun", "連接成功") --訂閱主題 --根據(jù)自己的項(xiàng)目需要訂閱主題 -- aliyun.subscribe(topic,qos) -- aliyun.subscribe("/".. aliyun.opts.ProductKey.."/".. aliyun.opts.DeviceName.."/user/ceshi",1) --PUBLISH消息測(cè)試 publishTest() else log.warn("aliyun", "連接失敗") end end
OTA升級(jí)
- 建立項(xiàng)目并接入阿里云
- 制作差分升級(jí)文件包 生成差分包詳細(xì)步驟
- 阿里云平臺(tái)上傳差分包
- 升級(jí)包驗(yàn)證
- 平臺(tái)查看升級(jí)結(jié)果
-
阿里云
+關(guān)注
關(guān)注
3文章
919瀏覽量
42768 -
MQTT
+關(guān)注
關(guān)注
5文章
624瀏覽量
22266 -
合宙通信
+關(guān)注
關(guān)注
0文章
145瀏覽量
1649 -
LuatOS
+關(guān)注
關(guān)注
0文章
36瀏覽量
1887
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論