zoukankan      html  css  js  c++  java
  • 干货 | 设备快速上云,轻松搞定设备与云端通信

    本文主要讲解如何使用京东云物联网引擎产品,快速创建产品及设备,并通过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折促销中,欢迎使用。
    

  • 相关阅读:
    dubbo入门(一)
    java中文件操作《一》
    Unity 游戏框架搭建 2019 (七) 自定义快捷键
    凉鞋:我所理解的框架 【Unity 游戏框架搭建】
    Unity 游戏框架搭建 2019 (六) MenuItem 复用
    Unity 游戏框架搭建 2019 (五) 打开所在文件夹
    Unity 游戏框架搭建 2019 (四) 导出 UnityPackage
    Unity 游戏框架搭建 2019 (三) 生成文件名到剪切板
    Unity 游戏框架搭建 2019 (二) 文本复制到剪切板
    Unity 游戏框架搭建 2019 (一) 简介与第一个示例文件名的生成
  • 原文地址:https://www.cnblogs.com/jdclouddeveloper/p/11670844.html
Copyright © 2011-2022 走看看