OpenHarmony开发流程之BearPi_HM_Nano

举报
星辰27 发表于 2021/06/11 20:59:39 2021/06/11
【摘要】 本文主要讲解如何使用BearPi_HM_Nano开发板基于OpenHarmony对接华为云。


1 环境准备

1.1镜像安装方式(强烈推荐)

BearPi-HM Nano 十分钟上手教程

1.2 完整安装方式

感兴趣的可以参考从零开始搭建OpenHarmony环境

2 代码启动流程

该开发板使用的核心芯片为hi3861,该芯片使用的是LiteOS-M内核,被芯片ROM化了。正常我们在看C程序的时候可能会找main函数,该入口函数为app_main.c,位于vendor\hisi\hi3861\hi3861\app\wifiiot_app\src目录下。启动流程如下


1.png


首先入口函数会调用HOS_SystemInit()函数,进行系统初始化,包括如bsp、device等,而在我们的编写的主任务文件中,会通过APP_FEATURE_INIT(main_entry)函数将主任务函数main_entry注册到run段,然后通过MODULE_INIT(run)来执行这些被注册到run段的任务。APP_FEATURE_INIT标识用于初始化和启动应用层功能的入口。HarmonyOS中使用的是SYS_RUN()函数,SYS_RUN是标识用于初始化和启动系统运行阶段的入口。对于整体的编译架构,可以理解成整体代码是通过层级的Build.gn文件串起来,后面进行链接。

3 代码开发

3.1 sample入口

学习了以上启动流程之后我们来看如何进行开发一个完整的demo,在BearPi-HM_Nano下有一个sample,下面的Build.gn文件的features中决定使用具体到哪一个Demo,因此我们在添加代码的时候,可以直接将所有的demo文件注释掉,根据自定义文件名称来填写相应的编译文件。


2.1.png


3.2代码添加步骤

首先在sample目录下新建文件夹,并在该文件夹下新建文件夹src用于添加源文件、include用于添加库文件(源文件和库文件也可以直接放到根目录下,只要和后面的Build.gn中路径一致即可)、Build.gn添加构建路径以及规则,我添加的目录如下所示。


3.png


上述为对接华为云的必要文件,其中采集数据方式可能略有不同,wifi_connect用于给开发板配置网络,以实现后面对接华为云,该文件可不必修改。

其中mqtt_cloud_main.c中,首先定义对于上传数据的结构等,之后进行一些协议的初始化以及配网的初始化,之后主要包括两个任务,分别为数据采集任务以及数据上报任务,可以根据需要添加命令处理任务,最后在主入口函数中申请空间,创建任务即可。

4 对接华为云

(1)修改代码中wifi热点的账号以及密码,改为自己手机热点即可


4.png


(2)登陆华为云,进入设备接入,点击立即使用。


5.png


(3)创建产品,平台选择“北京四”,点击产品然后创建产品,协议选择“MQTT”,数据格式为“JSON”。


6.png



(4)导入模型文件(附件中607f9d67ba4b2702c05eb41b.zip)


7.png


(5)注册设备,设备ID和密钥需要保存,也可以在设备详情中获取设备ID,秘钥也可以重置。

(6)修改代码中的设备ID和设备秘钥为步骤(5)中自己的设备信息。


8.png


(7)编译代码之后烧录到开发板,将手机热点设置为步骤(1)中信息,重启开发板,则实现对接华为云,云端可见信息如下。 

9.png


 

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。