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