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

怎么通过MQTT查看数据是否上云端_干货 | 设备快速上云,轻松搞定设备与云端通信...相关推荐

  1. 如何在原先的jqgrid中填充新的数据_自然人电子税务局(扣缴端)数据如何恢复?申税小微教您轻松搞定...

    自然人电子税务局 数据如何恢复? 申税小微教您轻松搞定! 财务小王:申税小微,我们公司换了新电脑,重新安装的自然人电子税务局(扣缴端)上没有人员采集信息和历史申报数据该怎么办? 申税小微: 1.可以在 ...

  2. 易查分怎么上传成绩?学会这个技巧,轻松搞定

    当使用易查分制作查询系统时,许多老师可能对于如何上传成绩感到困惑.有时候,导入成绩到易查分系统后,信息可能无法完全显示,而且也很难找到错误的原因.因此,今天我将与老师们分享一下易查分上传成绩的方法.这 ...

  3. 动态添加跨行表格_学会这2招,轻松搞定数据透视表动态更新,效率猛增一倍...

    私信回复关键词[福利],获取丰富办公资源,助你高效办公早下班! Hello,大家好,我是最近在研究数据透视表的小爽~ 最近,我收到了一个学员的求助: 简单归纳一下,这个问题就是: 如何能让数据透视表的 ...

  4. 逆向查找_「函数说12」数据逆向查找很复杂?match+index让你轻松搞定

    EXCEL进阶课堂 · 函数说 持续更新,这是第12篇教程. 欢迎各位小伙伴转发.点赞.讨论,更欢迎私信获取练习素材,刻意练习才能学有收获. 第12讲:如何轻松的实现数据逆向查找--match+ind ...

  5. 此应用无法在你的电脑上运行_电脑这类问题一招搞定—无法启动此程序,因为计算机丢失......

    api-ms-win-crt-conio-l1-1-0.dll 相关的错误可能源于多种不同原因.比如,错误的应用程序. api-ms-win-crt-conio-l1-1-0.dll 被删除或放错位置 ...

  6. SpringBoot 轻松搞定数据验证 (一)

    感谢作者: http://www.spring4all.com/article/1224 对于任何一个应用而言,客户端做的数据有效性验证都不是安全有效的,而数据验证又是一个企业级项目架构上最为基础的功 ...

  7. 线程导入大数据入库_大数据处理及分析该怎么做?用这款数据分析软件轻松搞定...

    ​对大数据的重视让很多企业都在纷纷寻找更好的大数据处理及分析方法?这款数据分析软件轻松搞定! 一.数据采集 虽然每天互联网都会产生大量的数据,对于企业来讲,要搜集对自己企业有用的数据才是真的大数据.首 ...

  8. SpringBoot 轻松搞定数据验证 (三)

    感谢作者: http://www.spring4all.com/article/1228 本章也是轻松搞定数据验证的最后一篇, 一起来揭开神秘的分组验证 分组验证 有的时候,我们对一个实体类需要有多中 ...

  9. pythonr语言三种基本结构_如何轻松搞定数据科学面试:Python&R语言篇

    作者: Carson Forter 编译: Mika本文为 CDA 数据分析师原创作品,转载需授权 对于数据科学家来说,工作的一大部分都需要在交互式编程环境中对数据进行处理.分析和可视化. 在过去几年 ...

最新文章

  1. 学计算机有哪些大学专业,计算机专业:最好的7所大学!也是全中国“最难考”的大学!...
  2. MySQL dayname()函数
  3. Java JUC工具类--CyclicBarrier
  4. 我们为什么要做 SoloPi
  5. feign直接走熔断_SpringCloud微服务面试必问:Hystrix 服务降级、熔断
  6. 31销售是让用户用到货真价实的产品
  7. 用一把吃鸡的时间,免费上云搭建网站应用
  8. 一篇文章搞定Python多进程
  9. Glide导致的RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap
  10. 装修纪~~从装修中体味人生
  11. 在阿里云申请个人免费SSL证书
  12. photoshop cs3 打字不显示问题
  13. element中表格展开行的默认展开和收起
  14. Burp suite 暴力破解shell密码详细教程
  15. 什么是大数据采集?大数据采集的过程是什么?
  16. ROS基础学习笔记(五)
  17. php防止重复刷新,php防止页面重复刷新
  18. idea打包项目关于Cannot resolve org.csource:fastdfs-client-java:1.29-SNAPSHOT报错问题
  19. Java开发微博粉丝服务(1)——环境的搭建,开发接入与URL有效性验证
  20. 分享一个快的飞起的maven的settings.xml文件

热门文章

  1. 扩展卡尔曼滤波EKF与多传感器融合
  2. 基因测序的回顾与展望
  3. SRA数据库的各种编号(DRP, ERP 或SRP)
  4. tar: Cowardly refusing to create an empty archive 问题
  5. TensorFlow基础8-实现单层神经网络
  6. 五、线程的概念和特点
  7. 重温目标检测--SSD
  8. 目标检测分割--Mask R-CNN
  9. Apache软件历史版本下载地址
  10. cli能记日志web不能php,异步日志输出方案