1.下载 SDK

下载附件中源代码后,将文件夹重命名为 iot_device_sdk_tiny,将其拷贝到已经下载好的 OpenHarmony 源码根目录的 third_party 文件夹下,我这里使用的 OpenHarmony 版本为 3.1.1- release 版本。

2.添加子系统编译构建

在子系统配置文件 subsystem_config.json 中新建子系统。其位于 OpenHarmony 源码根目录的 build 文件夹下,添加如下构建脚本

"iot_device_sdk_tiny": {
    "path": "third_party/iot_device_sdk_tiny",
    "name": "iot_device_sdk_tiny"
  }

具体如图 1 所示

基于 OpenHarmony L2 设备,如何用 IoTDeviceSDKTiny 对接华为云_鸿蒙开发


图 1

在产品配置文件中添加编译上述子系统,具体命令如图 2 所示,可见其子系统名称与上述文件一一对应。其为 OpenHarmony 源码目录下的 productdefine/common/products/rk3568.json 文件。

基于 OpenHarmony L2 设备,如何用 IoTDeviceSDKTiny 对接华为云_鸿蒙开发_02

图 2

3.验证添加子系统

我们可以通过修改 iot_device_sdk_tiny 中 demos 编译文件选项进行配置具体如下图,将 demo 赋值为 hello_world,编译 hello_world_demo,看最终是否打印 hello world。

基于 OpenHarmony L2 设备,如何用 IoTDeviceSDKTiny 对接华为云_鸿蒙开发_03


图 3

采用如下命令进行编译

./build.sh --product-name rk3568 --build-target iot_device_sdk_tiny

编译成功具体如图 4 所示

基于 OpenHarmony L2 设备,如何用 IoTDeviceSDKTiny 对接华为云_鸿蒙开发_04


图 4

编译生成文件位于 //out/rk3568/iot_device_sdk_tiny/iot_device_sdk_tiny/ 文件下的 hello_world_demo。

生成了 hello_world_demo,我们采用 hdc_std 工具将该文件发送到开发板的 data 文件夹下,具体如下命令

hdc_std file send D:\DAYU200_images\hello_world_demo ./data

发送成功后进入 shell,进入 data 文件夹下,执行 hello_world_demo。

cd data
./hello_world_demo

如果显示权限问题,请通过如下命令添加权限

chmod 777 hello_world_demo

之后再次执行发现打印如下字幕,与代码中
hello_world_demo_.c 中一致。

基于 OpenHarmony L2 设备,如何用 IoTDeviceSDKTiny 对接华为云_鸿蒙开发_05

图 5

4.验证对接华为云

之后将图 3 中 demo 赋值为 mqtt_tiny_v5_agriculture,之后重复上述过程编译,运行。

基于 OpenHarmony L2 设备,如何用 IoTDeviceSDKTiny 对接华为云_鸿蒙开发_06


图 6

如果想使用 MQTTS 对接华为云,那么可以将 iot_config.h 文件中的最下面的宏 CONFIG_MQTTS 打开即可。如图 7 所示。

基于 OpenHarmony L2 设备,如何用 IoTDeviceSDKTiny 对接华为云_鸿蒙开发_07

图 7

运行结果如下所示即为对接华为云成功,当然也可以通过华为云 IoTDA consle 界面查看到设备在线,且在上报数据。

基于 OpenHarmony L2 设备,如何用 IoTDeviceSDKTiny 对接华为云_鸿蒙开发_08

图 8

基于 OpenHarmony L2 设备,如何用 IoTDeviceSDKTiny 对接华为云_鸿蒙开发_09


图9