基于BearPi-HM_Nano开发板和OpenHarmony3.0对接IoTDA
本文主要介绍基于OpenHarmony 3.0来接入IoTDA,以BearPi-HM_Nano开发板为例,使用huaweicloud_iot_link SDK对接华为云物联网平台的简单流程。
硬件环境
BearPi-HM_Nano开发板、E53_IA1扩展模块、Type-C数据线、PC。
软件环境
搭建环境可以选择基于IDE方式或者基于命令行方式,其中BearPi-HM_Nano主控芯片为Hi3861,因此搭建环境时需要安装Hi3861对应环境。
在”安装Hi3861开发板特有环境”的安装gcc_riscv32步骤时,强烈建议直接下载gcc_riscv32镜像,否则可能出现某些插件下载或安装失败。
开源代码量较大,下载时间可能较长,需预留好充足时间。
创建产品
- 登录管理控制台,单击左侧导航栏“产品”,单击页面左侧的“创建产品”。
- 根据页面提示填写参数,然后单击“确认”,完成产品的创建。
基本信息
所属资源空间
平台自动将新创建的产品归属在默认资源空间下。如需归属在其他资源空间下,下拉选择所属的资源空间。如无对应的资源空间,请先创建资源空间。
产品名称
为产品命名。产品名称在相同资源空间有唯一性。长度不超过64,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。
协议类型
选择MQTT。
数据格式
选择JSON。
所属行业
请根据实际情况选择。
设备类型
请根据实际情况选择。
高级配置
产品ID
定制ProductID,用于唯一标识一个产品。如果携带此参数,平台将产品ID设置为该参数值;如果不携带此参数,产品ID在物联网平台创建产品后由平台分配获得。
图1 创建产品-MQTT
开发产品模型
- 找到新增的产品,单击“查看”进入产品界面。
- 在产品详情“基本信息”页面,直接上传模型文件BearPi_Agriculture.zip。
图2 上传产品模型-MQTT
- 在产品列表中,单击对应的产品,进入产品详情页。您可以查看产品ID、产品名称、设备类型、数据格式、厂商名称、所属资源空间、协议类型等产品基本信息。
- 产品创建成功后,您可以单击“删除”删除不再使用的产品。删除产品后,该产品下的产品模型、编解码插件等资源将被清空,请谨慎操作。
注册设备
- 访问设备接入服务,单击管理控制台进入设备接入控制台。
- 在左侧导航栏选择“注册设备”,按照如下表格填写参数后,单击“确定”。
,单击图3 单设备注册-MQTT
参数名称
说明
所属资源空间
选择设备所属的资源空间。
所属产品
选择设备所属的产品。如没有,请先创建产品。
设备标识码
即node_id,填写为设备的IMEI、MAC地址或Serial No;若没有真实设备,填写自定义字符串,长度为4至64个字符,只允许字母、数字、下划线(_)、连接符(-)的组合。
设备名称
即device_name,可自定义。
设备认证类型
选择“密钥”。
密钥
设备密钥,可自定义,不填写物联网平台会自动生成。
图4 设备-注册设备成功
Huaweicloud_iotlink SDK使用
- 下载源码:oh3.0_hwcloud_iotlink-master.zip。
- 将上述源码直接拷贝到OpenHarmony源码根目录下的src->third_party目录中,此处需要注意的是OpenHarmony和Huaweicloud_iotlink SDK共同具备的三方库直接使用OpenHarmony的库文件,如CJSON和mbedtls。
- 在OpenHarmony 3.0源码device\bearpi\bearpi_hm_nano\app\BUILD.gn中添加如下代码,根据#是否注释来决定具体编译demo的选择。
"//third_party/hwcloud_iotlink/demos/mqtt_tiny_v5_agriculture_demo:mqtt_tiny_v5_agriculture_demo",
图5 demo的选择
上图中2为使用MQTT对接华为云的demo,确认该demo的BUILD.gn文件,具体如图7所示,其中A区域包含开发板硬件和wifi相关的库文件,B区域包括MQTT对接华为云必须的一些库文件,如cJson,mqtt相关、osal相关以及配置库文件,C区域表示编译该文件时需要编译hwcloud_iotlink库,编译时会按照指定路径找到该文件所必要的库以及C文件进行编译。
图8中A区域表示MQTT对接华为云所必须的一些库文件以及dtls的库文件,入口函数IoTMainTaskEntry()中务必先调用link_main_task_entry()函数,来确保osal的安装以及其他配置的初始化。
- 设置参数。
图8 参数修改
(1)如果需要对接上云需要根据自己的设备修改配网信息,wifi热点账号以及密码以及自己在云端注册的设备ID和设备密钥,注意此设备仅支持2.4G频段的wifi。
(2)对接地址修改为管理控制台界面“总览”的“接入信息”设备接入MQTT协议地址。
(3)编译和烧录,分为IDE方式和命令行方式,这里不一一介绍。
(4)烧录后,按下开发板RESET复位键,设备将启动。
(5)上述代码基于OpenHarmony3.0版本,若为其他版本按需修正相应BUILD.gn文件中引入的OpenHarmony源码路径。
设备接入平台
代码烧录到设备后重启设备(首次使用需重启两次,第一次烧录时可能需要配置内部信息),第二次设备重启之后可以正常对接华为云。
登录平台可以看见数据上报的具体信息,也可以进行命令下发等操作控制设备,具体如下图10-12。