? 眾所周知,市面上有很多云平臺,阿里云、騰訊云、中移OneNET、華為云、百度云、TLink云等等......并且每家云平臺都有自己的協議,工程師要移植不同的SDK代碼或基于各家的手冊文檔對接不同的協議,看著都頭大!!!
為解決繁瑣的云平臺開發困擾,
合宙IoT_CLOUD應運而生,一庫打通所有云平臺!
本文將以Air780E+LuatOS作為示例,教你使用IoT_CLOUD連接騰訊云平臺。
注意:此庫為網絡通用庫不限制型號,即【所有LuatOS支持的蜂窩模組都可使用】。
本文同樣適用于:
Air780EX/Air780EG/Air780EP/Air780EPS…
一、**合宙IoT_CLOUD簡介 **
編輯
1.1 IoT_CLOUD特色簡介
IoT_CLOUD——是合宙專門為了合并IoT平臺而制作的LuatOS通用庫, 意在使用統一且極簡的代碼接入各個云平臺,輕松實現云功能。
用戶無需為那么多云平臺的接入而頭疼,只需要極簡的通用API即可輕松上云!并且因為通用,所以云平臺之間的遷移也十分方便。
1.2 IoT_CLOUD功能實現
IoT_CLOUD庫本質就是上層設計一套通用的API,用庫來實現每個平臺功能的對接。
目前已經實現了各個平臺的所有注冊方式, 其中自動注冊會將相關驗證信息保存KV,隨后使用此驗證信息進行連接,通知針對每個平臺添加了特有系統實現,比如:設備上線通知、設備版本號上傳、OTA功能等。
用戶無需管理這些信息,只需要注意相關下發消息做應用邏輯即可。
https://gitee.com/openLuat/LuatOS/blob/master/demo/iotcloud/main.lua
二、**騰訊云簡介 **
騰訊云物聯網開發平臺 (IoT Explorer)——是面向智慧生活與產業互聯應用的物聯網PaaS平臺,為基于物聯網的各行業設備制造商、方案商及應用開發商提供一站式設備智能化服務。
平臺提供海量設備連接與管理能力及基于騰訊連連的小程序應用開發能力,并打通騰訊云基礎產品及AI能力,聚合騰訊生態內容能力。從而提升傳統行業設備智能化的效率,降低用戶的開發運維成本。
騰訊云官網:
https://cloud.tencent.com/
**三、前期準備工作 **
3.1 云平臺準備
注冊/登錄騰訊云賬號,新建公共實例并且新建一個項目,后面我們會在此項目中進行演示。
注意:騰訊****新出了個V2版本開發平臺,本庫也支持但是不推薦使用。
至筆者編寫此文章為止,V2較V1版本去掉了證書校驗,去掉了自動注冊中自動創建設備功能,并且已經和騰訊云確認此改動。是的,自動注冊的自動創建設備改沒了,自動注冊要手動一個一個創建設備,呵呵。。。
3.2 硬件準備
**四、實戰教學 **
接下來,我們就不按部就班的介紹每個API,這樣很枯燥。我們直接實戰,跟著文檔從0一步一步進行下去,每一步介紹涉及到的API,流程結束也就學會IoT_CLOUD庫的使用。
4.1 設備注冊
1)設備注冊API
注冊的API只有一個,但是支持了所有的注冊方式,使用也很簡單。
創建云平臺對象
iotcloud.new(cloud,iot_config,connect_config)
參數:
?
編輯
返回值:
?
編輯
2)設備注冊分類
騰訊云支持密鑰校驗、證書校驗、動態注冊三種注冊方式(實際是四種,其中動態注冊里分兩種,但是對用戶無感所以這里不進行拆分)。
▼ 密鑰校驗(手動注冊) ▼
密鑰校驗即使用密鑰作為校驗憑據,首先新建產品:
?
編輯
?
編輯
按照要求填寫,認證方式選擇密鑰認證,之后我們點進去新建個設備,設備名稱我們可以直接填寫模組的imei。
?
編輯
這樣我們就創建好了設備,我們點進去看下設備信息。
?
編輯
可以看到我們需要的數據已經被貼心的加了一鍵復制,我們要記錄下 【設備名稱、產品ID、設備密鑰】 這三個數據,使用這三個數據我們就可以上云了。
接下來,我們看下代碼具體怎么用:
?
編輯
第一個參數表示我們使用的是騰訊云,第二個參數我們將上面得到的三個參數填寫到table中即可,so easy~
▼ 證書校驗(手動注冊) ▼
證書校驗即使用證書作為校驗憑據,注意選擇證書認證。
注意:V2版本騰訊云不支持新建此校驗方式。
?
編輯
之后和上面密鑰校驗一樣的創建設備流程,創建之后我們再來看看設備信息。
?
編輯
大家應該猜到了,還是三個參數:
產品名稱、產品ID,最后一個變成了設備證書。
接下來,我們再來看下代碼具體怎么用:
?
編輯
第一個參數表示我們使用的是騰訊云,第二個參數我們將上面得到的產品名稱 產品ID,第三個參數寫上我們的證書,同樣很簡單~
▼ 動態注冊(推薦) ▼
上面兩種方式都需要我們手動在云平臺上創建設備,但是我們的產品會有很多設備,手動創建太麻煩。
動態注冊就解決了這些問題:
——可以實現統一代碼使用時動態進行設備注冊,無需手動創建。
注意:V2版本騰訊云不支持自動創建設備
這樣我們就簡單了很多,上面兩種方式創建的產品詳情中都有動態注冊開關,我們只需要打開動態注冊開關和自動創建設備開關即可支持兩種方式的動態注冊。
?
編輯
隨后會生成動態注冊上方的產品密鑰,我們復制產品ID和產品密鑰即可。
接下來,我們再來看下代碼具體怎么用:
?
編輯
第一個參數表示我們使用的是騰訊云,第二個參數我們將上面得到的產品ID和產品密鑰,非常的簡單!
4.2 連接/斷開云平臺
注冊完成了,我們開始上云了~ 非常簡單,iotcloud庫的api基本和mqtt庫一樣,所以連接只需要一個API。
1)云平臺連接
cloudc:connect()
參數:無
返回值:無
例子:
iotcloudc:connect()
連接說了,我們也說一下斷開連接,也只需要一個API。
2)云平臺斷開
cloudc:disconnect()
參數:無
返回值:無
例子:
iotcloudc:disconnect()
4.3 訂閱/取消訂閱主題
同上,訂閱和取消訂閱也很簡單。
1)云平臺訂閱
cloudc:subscribe(topic, qos)
參數:
傳入值類型 | 解釋 |
---|---|
string/table | 主題 |
number | topic為string時生效0/1/2 默認0 |
返回值:無
2)云平臺取消訂閱
cloudc:unsubscribe(topic)
參數:
傳入值類型 | 解釋 |
---|---|
string/table | 主題 |
返回值:無
4.4 發布數據
數據的發布也同MQTT一樣。
云平臺發布
cloudc:publish(topic,data,qos,retain)
參數:
傳入值類型 | 解釋 |
---|---|
string/table | 主題 |
string | 消息,必填,但長度可以是0 |
number | 消息級別,0/1,默認0 |
number | 是否存檔,0/1,默認0 |
返回值:無
4.5 接收數據
接收統一使用了"iotcloud"消息進行通知,所以我們只需要訂閱此系統消息即可。
?
編輯
4.6 云平臺關閉
云平臺關閉會釋放掉內存,之后不能再進行重接,只能重新新建再連接。
云平臺關閉
cloudc:close()
參數:無
返回值:無
例子:
iotcloudc:close()
4.7 云平臺OTA
僅僅如此了么?當然不只!
IoT_CLOUD還支持了騰訊云平臺的OTA功能,可以直接進行OTA,且所有流程iotcloud庫都進行了支持,做到了用戶無感。
用戶在訂閱"iotcloud"消息中會有iotcloud.OTA事件,此事件即為OTA完成的通知,我們選擇時間進行設備重啟即可。
**五、效果演示 **
5.1 代碼演示
好了,接下來我們看下完整代碼和效果,這里以動態注冊為例。
最新demo源碼下載:
https://gitee.com/openLuat/LuatOS/blob/master/demo/iotcloud/main.lua
?
編輯
5.2 設備日志
?
編輯
可以看到我們的設備打印了連接成功,證明自動注冊+連接流程已經完成。
5.3 云平臺效果
?
編輯
可以看到,設備已經自動注冊并且在線。
至此,云平臺已經連接成功。剩下的就是要根據自己的產品需求,使用自己的模型上報/下發數據就可以了。
?編輯
?編輯
?
-
嵌入式
+關注
關注
5082文章
19104瀏覽量
304809 -
物聯網
+關注
關注
2909文章
44557瀏覽量
372777 -
代碼
+關注
關注
30文章
4779瀏覽量
68522
發布評論請先 登錄
相關推薦
評論