设备侧IoT Device SDK介绍
为了帮助设备快速连接到物联网平台,华为提供了设备侧IoT Device SDK。支持TCP/IP协议栈的设备集成设备侧IoT Device SDK后,可以直接与物联网平台通信。不支持TCP/IP协议栈的设备,例如蓝牙设备、ZigBee设备等需要利用网关将设备数据转发给物联网平台,此时网关需要事先集成设备侧IoT Device SDK。

- 设备接入前,需创建产品(可通过控制台创建或者调用应用侧API接口创建产品)。
- 产品创建完毕后,需注册设备(可通过控制台注册单个设备或者使用应用侧API接口注册设备)。
- 设备注册完毕后,按照图中流程实现消息/属性上报、接收命令/属性/消息、OTA升级、自定义TOPIC、泛协议接入(相关Demo)等功能。
平台提供了两种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来适配其他环境。 | C |

详细SDK使用指南,请参考:
- 设备侧 IoT Device C# SDK使用指南
- 设备侧 IoT Device Android SDK使用指南
- 设备侧 IoT Device Go SDK使用指南
- 设备侧 IoT Device C for SDK Tiny使用指南
- 设备侧 IoT Device C for OpenHarmony SDK使用指南
- 设备侧 IoT Device Python SDK使用指南
SDK主要功能矩阵,请参考:
主要功能 | C | Java | C# | Android | GO | python | C Tiny | ArkTS |
|---|---|---|---|---|---|---|---|---|
属性上报 | √ | √ | √ | √ | √ | √ | √ | √ |
消息上报、下发 | √ | √ | √ | √ | √ | √ | √ | √ |
事件上报、下发 | √ | √ | √ | √ | √ | √ | √ | × |
命令下发、响应 | √ | √ | √ | √ | √ | √ | √ | √ |
断线重连 | √ | √ | √ | √ | √ | √ | √ | √ |
设备影子 | √ | √ | √ | √ | √ | √ | √ | √ |
OTA升级 | √ | √ | √ | √ | √ | √ | √ | × |
bootstrap | √ | √ | √ | √ | √ | √ | √ | × |
时间同步 | √ | √ | √ | √ | √ | √ | √ | × |
网关与子设备管理 | √ | √ | √ | √ | √ | √ | √ | × |
端侧规则引擎 | √ | × | √ | × | × | × | √ | × |
远程SSH | √ | × | √ | × | × | × | × | × |
异常检测 | √ | × | √ | × | × | × | × | × |
端云安全通信(软总线) | √ | × | √ | × | × | × | × | × |
M2M功能 | √ | × | √ | × | × | × | × | × |
泛协议接入 | √ | √ | √ | √ | × | √ | × | × |

