本文主要講解如何使用京東雲物聯網引擎產品,快速建立產品及設備,並經過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的關係以下圖所示:函數
應用只需關心使用SDK API組合業務邏輯,無需關心通訊細節,HAL層須要用戶根據自身的OS和設備信息進行適配,SDK提供了Linux的HAL層適配。spa
快速上手,設備接入操做步驟3d
登入物聯網引擎控制檯(https://iot-console.jdcloud.c...),用戶進行開通服務後,便可進入快速接入設備頁面。
(您也可在左側菜單欄點擊【快速接入設備】菜單,進入快速接入設備頁面)code
一、新建產品和設備orm
建立產品與設備是使用物聯網引擎的第一步,填入產品名稱和設備名稱,默認系統會自動爲產品添加switch和message這兩條屬性。產品建立成功後,您也能夠經過產品詳情中,修改編輯產品物模型定義。
二、記錄設備的配置信息及接入域名,並下載SDK開發包以及配置文件。
請注意:務必要下載並保存好您的設備配置文件,用於後面作設備的鏈接鑑權使用。
三、根據頁面提示,在開發機上運行SDK開發包中的Demo程序,以後查看設備鏈接狀況。
四、完成快速接入設備。
設備鑑權
京東雲設備鑑權分 一機一密 和 一型一密 ,SDK中這兩種模式是經過iot_config.h 中的 DYNAMIC_REGISTER 宏來控制。
建立產品後默認是一機一密鑑權,開啓產品的設備動態註冊功能後,即會切換爲一型一密鑑權。
一機一密
開發者須要將服務端生成的 product key、identifier 和 device secret 燒錄至設備存儲系統,並實現如下 HAL APIs,從而容許 SDK 從存儲系統裏獲取這些信息。
SDK包含了這些 HAL APIs 的簡單實現文件(hal_os_linux.c),其中 _product_key、_identifier、_device_secret示範了對這些信息的存儲。
一型一密
雲端根據 product key、product secret動態生成 identifier、device secret。
啓用 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()來創建鏈接。
建立 MQTT 鏈接實例
接口: void iot_mqtt_construct(iot_mqtt_param_t pInitParams)接口說明:建立 MQTT 實例,初始化數據,創建 MQTT 鏈接返回值:成功返回 MQTT 實例,不然返回 NULL
參數說明
示例代碼
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...)。
目前物聯網引擎產品2折促銷中,歡迎使用。