ITPub博客

首页 > IT基础架构 > 网络通信/物联网 > 干货 | 设备快速上云,轻松搞定设备与云端通信

干货 | 设备快速上云,轻松搞定设备与云端通信

原创 网络通信/物联网 作者:京东云技术新知 时间:2019-09-29 15:24:05 0 删除 编辑

本文主要讲解如何使用京东云物联网引擎产品,快速创建产品及设备,并通过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的关系如下图所示:


应用只需关心使用SDK API组合业务逻辑,无需关心通信细节,HAL层需要用户根据自身的OS和设备信息进行适配,SDK提供了Linux的HAL层适配。

快速上手,设备接入操作步骤

登入物联网引擎控制台(https://iot-console.jdcloud.com/core/),用户进行开通服务后,即可进入快速接入设备页面。
(您也可在左侧菜单栏点击【快速接入设备】菜单,进入快速接入设备页面)

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);

以上,快速通过SDK进行设备接入及通信连接就算完成了。更多信息可以访问京东云官网文档( https://docs.jdcloud.com/cn/iot-core/product-overview)。


欢迎点击“ 京东云 ”了解更多精彩内容



                                                            目前物联网引擎产品2折促销中,欢迎使用。



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69912185/viewspace-2658715/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
京东科技开发者(Developer of JD Technology)是京东科技集团旗下为AI、云计算、IoT等相关领域开发者提供技术分享交流的平台。平台将发布京东产品技术信息、行业技术内容、技术活动及大赛等资讯。拥抱技术,与开发者携手预见未来!

注册时间:2019-03-06

  • 博文量
    509
  • 访问量
    339411