
# 设备侧IoT Device SDK介绍
为了帮助设备快速连接到物联网平台，华为提供了设备侧IoT Device SDK。支持TCP/IP协议栈的设备集成设备侧IoT Device SDK后，可以直接与物联网平台通信。不支持TCP/IP协议栈的设备，例如蓝牙设备、ZigBee设备等需要利用网关将设备数据转发给物联网平台，此时网关需要事先集成设备侧IoT Device SDK。
![](https://support.huaweicloud.com/sdkreference-iothub/figure/zh-cn_image_0000002344975873.png "点击放大")
1. 设备接入前，需创建产品（可通过控制台创建或者调用应用侧API接口[创建产品](https://support.huaweicloud.com/api-iothub/iot_06_v5_0050.html)）。
2. 产品创建完毕后，需注册设备（可通过控制台注册单个设备或者使用应用侧API接口[注册设备](https://support.huaweicloud.com/api-iothub/iot_06_v5_0046.html)）。
3. 设备注册完毕后，按照图中流程实现消息/属性上报、接收命令/属性/消息、OTA升级、自定义TOPIC、泛协议接入（相关[Demo](https://support.huaweicloud.com/bestpractice-iothub/iot_bp_0009.html)）等功能。
平台提供了两种SDK，它们之间的区别如下表：
| SDK种类               | SDK集成场景                           | SDK支持的物联网通信协议        |
|:---|:---|:---|
| IoT Device SDK      | 面向运算、存储能力较强的嵌入式设备，例如网关、采集器等。      | MQTT                 |
| IoT Device SDK Tiny | 面向对功耗、存储、计算资源有苛刻限制的终端设备，例如单片机、模组。 | LWM2M over CoAP、MQTT |
   
对接入设备的硬件要求：
| SDK名称               | RAM容量   | FLASH容量  | CPU频率     | 操作系统类型                                                                                                                         | 开发语言                 |
|:---|:---|:---|:---|:---|:---|
| IoT Device SDK      | \> 4MB  | \> 2MB   | \> 200MHZ | C版（Linux）、Java版（Linux/Windows）、C#版（Windows）、Android版（Android）、Go社区版（Linux/Windows/类unix）、OpenHarmony版（OpenHarmony）             | C、Java、C#、Android、Go |
| IoT Device SDK Tiny | \> 32KB | \> 128KB | \> 100MHZ | 适配了LiteOS/LINUX/MACOS/freertos，可以通过修改SDK来[适配其他环境](https://github.com/LiteOS/LiteOS_Lab/blob/iot-device-sdk-tiny/os/Readme.md)。 | C                    |
   
![](https://support.huaweicloud.com/sdkreference-iothub/figure/zh-cn_image_0000002311096824.png "点击放大")
详细SDK使用指南，请参考：
- [设备侧 IoT Device C使用指南](https://support.huaweicloud.com/sdkreference-iothub/iot_02_0090.html)
  
- [设备侧 IoT Device Java SDK使用指南](https://support.huaweicloud.com/sdkreference-iothub/iot_02_0089.html)
  
- [设备侧 IoT Device C# SDK使用指南](https://support.huaweicloud.com/sdkreference-iothub/iot_02_0091.html)
- [设备侧 IoT Device Android SDK使用指南](https://support.huaweicloud.com/sdkreference-iothub/iot_02_0092.html)
- [设备侧 IoT Device Go SDK使用指南](https://support.huaweicloud.com/sdkreference-iothub/iot_02_00920.html)
- [设备侧 IoT Device C for SDK Tiny使用指南](https://support.huaweicloud.com/sdkreference-iothub/iot_02_9980.html)
- [设备侧 IoT Device C for OpenHarmony SDK使用指南](https://support.huaweicloud.com/sdkreference-iothub/iot_02_0093.html)
- [设备侧 IoT Device Python SDK使用指南](https://support.huaweicloud.com/sdkreference-iothub/iot_02_0094.html)
SDK主要功能矩阵，请参考：
表1SDK主要功能矩阵 
| 主要功能        | C | Java | C# | Android | GO | python | C Tiny | ArkTS |
|:---|:--|:---|:---|:---|:---|:---|:---|:---|
| 属性上报        | √ | √    | √  | √       | √  | √      | √      | √     |
| 消息上报、下发     | √ | √    | √  | √       | √  | √      | √      | √     |
| 事件上报、下发     | √ | √    | √  | √       | √  | √      | √      | ×     |
| 命令下发、响应     | √ | √    | √  | √       | √  | √      | √      | √     |
| 断线重连        | √ | √    | √  | √       | √  | √      | √      | √     |
| 设备影子        | √ | √    | √  | √       | √  | √      | √      | √     |
| OTA升级       | √ | √    | √  | √       | √  | √      | √      | ×     |
| bootstrap   | √ | √    | √  | √       | √  | √      | √      | ×     |
| 时间同步        | √ | √    | √  | √       | √  | √      | √      | ×     |
| 网关与子设备管理    | √ | √    | √  | √       | √  | √      | √      | ×     |
| 端侧规则引擎      | √ | ×    | √  | ×       | ×  | ×      | √      | ×     |
| 远程SSH       | √ | ×    | √  | ×       | ×  | ×      | ×      | ×     |
| 异常检测        | √ | ×    | √  | ×       | ×  | ×      | ×      | ×     |
| 端云安全通信（软总线） | √ | ×    | √  | ×       | ×  | ×      | ×      | ×     |
| M2M功能       | √ | ×    | √  | ×       | ×  | ×      | ×      | ×     |
| 泛协议接入       | √ | √    | √  | √       | ×  | √      | ×      | ×     |
   
#### 相关FAQ
[设备侧SDK相关问题](https://support.huaweicloud.com/iothub_faq/iot_faq_01002.html)
[端侧设备集成相关问题](https://support.huaweicloud.com/iothub_faq/iot_faq_01003.html)
