乾貨 | 裝置快速上雲,輕鬆搞定裝置與雲端通訊
本文主要講解如何使用京東雲物聯網引擎產品,快速建立產品及裝置,並透過SDK將裝置安全地連線至雲端,實現裝置的資料上報與訂閱,讓剛接觸該產品的使用者能夠對京東雲物聯網平臺有個初步的認識。
目前京東雲 IoT Device SDK 提供了C語言開發包,訪問連結進行下載:
jdcloud-iot-device-sdk-c.zip (https://docs.jdcloud.com/cn/iot-core/device-sdk-download-link)
京東雲IoT Device SDK,是提供給裝置廠商,用於整合在裝置之上,並透過SDK安全的將裝置連線至京東雲物聯網引擎進行管理。裝置必須要支援TCP/IP協議才能使用Device SDK,其他非IP裝置或非標準MQTT協議的裝置,需要透過閘道器,邊緣節點以及物聯網協議適配才能接入物聯網引擎。目前SDK面向MQTT C語言開發者,支援Linux系統環境。
SDK架構
應用業務邏輯、SDK、HAL的關係如下圖所示:
1、新建產品和裝置
建立產品與裝置是使用物聯網引擎的第一步,填入產品名稱和裝置名稱,預設系統會自動為產品新增switch和message這兩條屬性。產品建立成功後,您也可以透過產品詳情中,修改編輯產品物模型定義。
2、記錄裝置的配置資訊及接入域名,並下載SDK開發包以及配置檔案。
請注意:務必要下載並儲存好您的裝置配置檔案,用於後面做裝置的連線鑑權使用。
3、根據頁面提示,在開發機上執行SDK開發包中的Demo程式,之後檢視裝置連線情況。
4、完成快速接入裝置。
裝置鑑權
京東雲裝置鑑權分 一機一密 和 一型一密 ,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);
目前物聯網引擎產品2折促銷中,歡迎使用。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69912185/viewspace-2658715/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 樂訊通雲通訊:物聯網路卡在什麼裝置上使用
- 多裝置相容指令碼,輕鬆拿捏指令碼
- 失眠怎麼快速入睡? 八款智慧裝置輕鬆解決
- 三大硬核方式揭秘:Java如何與底層硬體和工業裝置輕鬆通訊!Java
- 字元裝置、塊裝置與裸裝置字元
- 乾元通多鏈路通訊裝置保障高鐵網路穩定
- 樂訊通雲通訊:智慧裝置選擇物聯卡的理由
- Android與物聯網裝置通訊-利用UDP廣播來做裝置查詢AndroidUDP
- 乾元通多卡聚合路由裝置海上通訊應用解決方案路由
- 字元裝置、塊裝置、裸裝置、RAW裝置 .字元
- 華為通訊裝置密碼設定密碼
- 樂訊通雲通訊:物聯網路卡在共享裝置有哪些應用
- 樂訊通雲通訊:物聯網路卡在可穿戴裝置的應用
- Android與物聯網裝置通訊-概念入門Android
- 字元裝置與塊裝置的區別字元
- 裸裝置與塊裝置的區別
- Android與物聯網裝置通訊 - 位元組報文組裝與解析Android
- RS-485匯流排通訊裝置
- 裝置採集及上報通訊範本
- 利用TWAIN-實現與影象輸入裝置的通訊AI
- 樂訊通雲通訊:物聯網路卡為智慧裝置建立連線的橋樑
- 樂訊通雲通訊:物聯網路卡在智慧終端裝置中的應用
- 12步輕鬆搞定python裝飾器Python
- 終端裝置上的機器學習: Android裝置上的TensorFlow [session]機器學習AndroidSession
- Android與物聯網裝置通訊-UDP&TCP協議AndroidUDPTCP協議
- Android與物聯網裝置通訊-網路模型分層Android模型
- 裸裝置、字元裝置、塊裝置不全面比較字元
- Apache Storm系列 之二( 輕鬆搞定 Storm 安裝與啟動)ApacheORM
- 裝置原理與操作
- 裝置分配與回收
- 電腦沒有音訊裝置怎麼辦?音訊裝置找不到音訊
- Win11推出藍芽裝置快速設定裝置列表測試藍芽
- 【乾貨】Ftrans資料擺渡裝置 建立安全高效數傳通道!
- 乾元通多卡聚合通訊裝置保障疫情防控系統網路穩定通暢
- Jenkins部署安裝,輕鬆三步搞定Jenkins
- 電腦如何安裝音訊裝置_電腦沒有音訊裝置怎麼處理音訊
- 使用 Frida 逆向分析 Android 應用與 BLE 裝置的通訊Android
- 乾元通多鏈路聚合通訊裝置保障公路網路穩定全面覆蓋