乾貨 | 設備快速上雲,輕鬆搞定設備與雲端通訊

clipboard.png

本文主要講解如何使用京東雲物聯網引擎產品,快速建立產品及設備,並經過SDK將設備安全地鏈接至雲端,實現設備的數據上報與訂閱,讓剛接觸該產品的用戶可以對京東雲物聯網平臺有個初步的認識。linux

目前京東雲 IoT Device SDK 提供了C語言開發包,訪問連接進行下載:安全

jdcloud-iot-device-sdk-c.zip (https://docs.jdcloud.com/cn/i...架構

京東雲IoT Device SDK,是提供給設備廠商,用於集成在設備之上,並經過SDK安全的將設備鏈接至京東雲物聯網引擎進行管理。設備必需要支持TCP/IP協議才能使用Device SDK,其餘非IP設備或非標準MQTT協議的設備,須要經過網關,邊緣節點以及物聯網協議適配才能接入物聯網引擎。目前SDK面向MQTT C語言開發者,支持Linux系統環境。app

SDK架構ide

應用業務邏輯、SDK、HAL的關係以下圖所示:函數

clipboard.png

應用只需關心使用SDK API組合業務邏輯,無需關心通訊細節,HAL層須要用戶根據自身的OS和設備信息進行適配,SDK提供了Linux的HAL層適配。spa

快速上手,設備接入操做步驟3d

登入物聯網引擎控制檯(https://iot-console.jdcloud.c...),用戶進行開通服務後,便可進入快速接入設備頁面。
(您也可在左側菜單欄點擊【快速接入設備】菜單,進入快速接入設備頁面)code

clipboard.png

一、新建產品和設備orm

建立產品與設備是使用物聯網引擎的第一步,填入產品名稱和設備名稱,默認系統會自動爲產品添加switch和message這兩條屬性。產品建立成功後,您也能夠經過產品詳情中,修改編輯產品物模型定義。

clipboard.png

二、記錄設備的配置信息及接入域名,並下載SDK開發包以及配置文件。

請注意:務必要下載並保存好您的設備配置文件,用於後面作設備的鏈接鑑權使用。

clipboard.png

三、根據頁面提示,在開發機上運行SDK開發包中的Demo程序,以後查看設備鏈接狀況。

clipboard.png

四、完成快速接入設備。

clipboard.png

設備鑑權

京東雲設備鑑權分 一機一密 和 一型一密 ,SDK中這兩種模式是經過iot_config.h 中的 DYNAMIC_REGISTER 宏來控制。

建立產品後默認是一機一密鑑權,開啓產品的設備動態註冊功能後,即會切換爲一型一密鑑權。

clipboard.png

一機一密

開發者須要將服務端生成的 product key、identifier 和 device secret 燒錄至設備存儲系統,並實現如下 HAL APIs,從而容許 SDK 從存儲系統裏獲取這些信息。

clipboard.png

SDK包含了這些 HAL APIs 的簡單實現文件(hal_os_linux.c),其中 _product_key、_identifier、_device_secret示範了對這些信息的存儲。

clipboard.png

一型一密

雲端根據 product key、product secret動態生成 identifier、device secret。

clipboard.png

啓用 DYNAMIC_REGISTER 宏後

iot_mqtt_construct(iot_mqtt_param_t *pInitParams) 會自動去作一型一密認證,用戶須要額外實現幾個 HAL 層函數。

具體實現能夠參考 platform/linux/hal_os_linux.c的實現。

創建設備與雲端的鏈接

Host配置

在SDK文件 src/utils/iot_config.h 中,經過INDEPENDENT_MODE來控制 SDK 是否訪問物聯網引擎,物聯網引擎產品在用戶VPC內建立用戶私有實例,全部資源爲該用戶獨立使用,享有獨立的接入入口。對物聯網引擎開發者須要將platform/linux/hal_os_linux.c中_device_host的地址替換爲物聯網引擎的公網域名地址。

初始化數據

開發者從控制檯獲取到設備三元組後,將信息寫入存儲系統或 HAL 文件後,便可從設備 app 調用iot_mqtt_construct()來創建鏈接。
clipboard.png

clipboard.png

建立 MQTT 鏈接實例

接口: void iot_mqtt_construct(iot_mqtt_param_t pInitParams)接口說明:建立 MQTT 實例,初始化數據,創建 MQTT 鏈接返回值:成功返回 MQTT 實例,不然返回 NULL

參數說明

clipboard.png

示例代碼

iot_mqtt_param_t mqtt_params;
pclient = iot_mqtt_construct(&mqtt_params);

銷燬MQTT鏈接和實例

接口:Int iot_mqtt_destroy (iot_mqtt_param_t *pInitParams)
接口說明:銷燬 Mqtt 實例,釋放數據和鏈接
返回值:成功返回SUCCESS_RETURN,不然返回其

示例代碼

iot_mqtt_destroy (pInitParams);

以上,快速經過SDK進行設備接入及通訊鏈接就算完成了。更多信息能夠訪問京東雲官網文檔(https://docs.jdcloud.com/cn/i...)。

clipboard.png

目前物聯網引擎產品2折促銷中,歡迎使用。

clipboard.png

相關文章
相關標籤/搜索