首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

OpenHarmony鸿蒙开发( Beta5.0)智能油烟机开发实践

  • 25-03-03 07:02
  • 3590
  • 5811
blog.csdn.net

样例简介

本Demo是基于Hi3516开发板,使用开源OpenHarmony开发的应用。本应用主要功能有:

  • 可以搜索本地指定目录的图片和视频文件,并可进行点击播放。

  • 可以通过wifi接收来自手机的美食图片以及菜谱视频,让我们对美食可以边学边做(需要手机端应用配合)。

  • 可以查实时看门外监控(当有人按门铃时方便查看)以及客厅或卧室的情况(在厨房时方便实时注意孩子的动向)。

运行效果图

运行效果

样例原理

原理示意图

如上图所示,手机可以将图片或者视频发到设备测,设备可以播放接受到的图片和视频。

工程版本
  • 系统版本/API版本:OpenHarmony 1.0.1 release
  • hb版本: 0.2.0
  • 工具链版本:llvm-linux-9.0.0

快速上手

准备硬件环境
  • 预装windows系统的PC机
  • Hi3516DV300 IoT Camera开发板套件
准备开发环境
安装必备软件

开发基础环境由windows 工作台和Linux编译服务器组成。windows 工作台可以通过samba 服务或ssh 方式访问Linux编译服务器。其中windows 工作台用来烧录和代码编辑,Linux编译服务器用来编译OpenHarmony代码,为了简化步骤,Linux编译服务器推荐安装Ubuntu20.04。

安装和配置Python
  • 打开Linux终端。

  • 输入如下命令,查看python版本号,需要使用python3.7以上版本。

    python3 --version
    
  • 安装并升级Python包管理工具(pip3)。

    1. sudo apt-get install python3-setuptools python3-pip -y
    2. sudo pip3 install --upgrade pip
安装hb
  • 运行如下命令安装hb

    python3 -m pip install --user ohos-build
    
  • 将hb加入系统环境变量

    vim ~/.bashrc
    

    将以下命令拷贝到.bashrc文件的最后一行,保存并退出。

    export PATH=~/.local/bin:PATH
    

    执行如下命令更新环境变量。

    source ~/.bashrc
    
  • 测试hb安装结果 执行"hb -h",有打印以下信息即表示安装成功.

    1. usage: hb
    2. OHOS build system
    3. positional arguments:
    4. {build,set,env,clean}
    5. build Build source code
    6. set OHOS build settings
    7. env Show OHOS build env
    8. clean Clean output
    9. optional arguments:
    10. -h, --help show this help message and exit
  • hb版本替换

    本样例hb版本为0.2.0,如果当前hb版本不是0.2.0,需要替换hb版本,步骤如下(该步骤必须在openharmony的工程根目录下执行):

    1. pip3 uninstall ohos_build
    2. pip3 install build/lite
安装交叉编译环境

在Linux编译服务器上搭建好基础开发环境后,需要安装OpenHarmony 编译Hi3516平台特有的开发环境。

将Linux shell改为bash

查看shell是否为bash,在终端运行如下命令

ls -l /bin/sh

如果显示为“/bin/sh -> bash”则为正常,否则请按以下方式修改:

  1. sudo rm -rf /bin/sh
  2. sudo ln -s /bin/bash /bin/sh
安装编译依赖基础软件
sudo apt-get install build-essential && sudo apt-get install gcc && sudo apt-get install g++ && sudo apt-get install make && sudo apt-get install zlib* && sudo apt-get install libffi-dev
安装文件打包工具
  • 安装dosfstools

    sudo apt-get install dosfstools
    
  • 安装mtools

    sudo apt-get install mtools
    
  • 安装mtd-utils

    sudo apt-get install mtd-utils
    
安装Java 虚拟机环境

由于应用打包中需要依赖java虚拟机,所以我们需要安装Java 虚拟机环境.

  • 安装Java运行时环境(JRE)。

    sudo apt-get install default-jre
    
  • 安装Java sdk开发工具包。

    sudo apt-get install default-jdk
    
安装hc-gen
  • 下载hc-gen工具:下载地址。

  • 解压hc-gen安装包到Linux服务器~/hc-gen路径下。

    tar -xvf hc-gen-0.65-linux.tar -C ~/
    
  • 设置环境变量。

    vim ~/.bashrc
    

    将以下命令拷贝到.bashrc文件的最后一行,保存并退出。

    export PATH=~/hc-gen:PATH
    

    执行如下命令更新环境变量。

    source ~/.bashrc
    
  • 测试hb安装结果 执行"hb -h",有打印以下信息即表示安装成功.

    1. usage: hb
    2. OHOS build system
    3. positional arguments:
    4. {build,set,env,clean}
    5. build Build source code
    6. set OHOS build settings
    7. env Show OHOS build env
    8. clean Clean output
    9. optional arguments:
    10. -h, --help show this help message and exit
  • hb版本替换

    本样例hb版本为0.2.0,如果当前hb版本不是0.2.0,需要替换hb版本,步骤如下(该步骤必须在openharmony的工程根目录下执行):

    1. pip3 uninstall ohos_build
    2. pip3 install build/lite
安装交叉编译环境

在Linux编译服务器上搭建好基础开发环境后,需要安装OpenHarmony 编译Hi3516平台特有的开发环境。

将Linux shell改为bash

查看shell是否为bash,在终端运行如下命令

ls -l /bin/sh

如果显示为“/bin/sh -> bash”则为正常,否则请按以下方式修改:

  1. sudo rm -rf /bin/sh
  2. sudo ln -s /bin/bash /bin/sh
安装编译依赖基础软件
sudo apt-get install build-essential && sudo apt-get install gcc && sudo apt-get install g++ && sudo apt-get install make && sudo apt-get install zlib* && sudo apt-get install libffi-dev
安装文件打包工具
  • 安装dosfstools

    sudo apt-get install dosfstools
    
  • 安装mtools

    sudo apt-get install mtools
    
  • 安装mtd-utils

    sudo apt-get install mtd-utils
    
安装Java 虚拟机环境

由于应用打包中需要依赖java虚拟机,所以我们需要安装Java 虚拟机环境.

  • 安装Java运行时环境(JRE)。

    sudo apt-get install default-jre
    
  • 安装Java sdk开发工具包。

    sudo apt-get install default-jdk
    
安装hc-gen
  • 下载hc-gen工具:下载地址。

  • 解压hc-gen安装包到Linux服务器~/hc-gen路径下。

    tar -xvf hc-gen-0.65-linux.tar -C ~/
    
  • 设置环境变量。

    vim ~/.bashrc
    

    将以下命令拷贝到.bashrc文件的最后一行,保存并退出。

    export PATH=~/hc-gen:PATH
    
  • 使环境变量生效。

    source ~/.bashrc
    
安装LLVM
  • 下载指定的LLVM工具:下载地址。

  • 解压LLVM安装包至~/llvm路径下。

    tar -zxvf llvm.tar -C ~/
    
  • 设置环境变量。

    vim ~/.bashrc
    

    将以下命令拷贝到.bashrc文件的最后一行,保存并退出。

    export PATH=~/llvm/bin:$PATH
    
  • 使环境变量生效。

    source ~/.bashrc
    
准备工程

本用例采用repo的方式从码云官仓下载系统系统源码以及开发板适配代码,使用git从gitee的sig仓库拉取设备应用代码。

配置git
  • 提前注册准备码云gitee账号。
  • git工具下载安装
  1. sudo apt install git
  2. sudo apt install git-lfs
  • 生成/添加SSH密钥:生成密钥 使用gitee账号绑定的邮箱生成密钥对
ssh-keygen -t ed25519 -C "[email protected]"
  • 查看生成的密钥
cat ~/.ssh/id_ed25519.pub
  • 复制生成后的 ssh key,返回gitee个人主页,通过主页 「个人设置」->「安全设置」->「SSH 公钥」 ,将生成的“SSH密钥”添加到仓库中。
  • 配置git用户信息
  1. git config --global user.name "yourname"
  2. git config --global user.email "your-email-address"
  3. git config --global credential.helper store
准备repo
  1. curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo ## 如果没有权限可以,可先将repo下载到当前目录在拷贝
  2. chmod a+x /usr/local/bin/repo
  3. pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
准备系统源码

特别注意:请下载OpenHarmony 1.0.1 版本,后续会更新支持OpenHarmony其他版本

  1. mkdir ~/OpenHarmony1.01
  2. cd ~/OpenHarmony1.01
  3. repo init -u [email protected]:openharmony/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify
  4. repo sync -c
  5. repo forall -c 'git lfs pull'
准备开发板适配代码

本样例的代码在本版本系统下还未上主干,需要clone本仓库。

git clone https://gitee.com/openharmony-sig/knowledge_demo_smart_home.git --depth=1
准备设备侧应用代码

设备侧应用代码需要拷贝本仓库的dev/team_x/smart_hoods目录到系统的vendor/team_x目录下面,如果系统的vendor下没有team_x目录,需要新建一个。

  1. mkdir ~/OpenHarmony1.01/vendor/team_x ## 如果OpenHarmony1.01/vendor下没有team_x的目录才需要执行
  2. cp -rfa ~/knowledge_demo_smart_home/dev/team_x/smart_hoods ~/OpenHarmony1.01/vendor/team_x/
工程效果

code tree

编译

进入到OpenHarmony系统源码根目录下,输入hb set命令即可看到我们的应用,选择并确认即可。

hb set  // 如果是第一次编译,Input code path 命令行中键入"./" 指定OpenHarmony工程编译根目录后 回车。

select app

然后输入hb build -f命令做全量编译

hb build -f

build

编译成功会生成对应整个系统固件(u-boot-hi3516dv300.bin,OHOS_Image.bin, rootfs_vfat.img, userfs_vfat.img)以及我们应用对应的so文件。

其中u-boot-hi3516dv300.bin在device/hisilicon/hispark_taurus/sdk_liteos/uboot/out/boot/:

uboot

OHOS_Image.bin, rootfs_vfat.img,以及userfs_vfat.img在out目录下:

firmware

应用对应的so文件在out目录下的libs/usr/下面:

so file

以下表格为所有生成的固件及对应的位置:

生产固件及应用文件的名称对应文件路径文件说明
u-boot-hi3516dv300.bindevice/hisilicon/hispark_taurus/sdk_liteos/uboot/out/boot/系统启动引导程序
OHOS_Image.binout/hispark_taurus/smart_hoods/系统内核固件
rootfs_vfat.imgout/hispark_taurus/smart_hoods/文件系统
userfs_vfat.imgout/hispark_taurus/smart_hoods/用户数据分区
libhoods.soout/hispark_taurus/smart_hoods/libs/usr/智能油烟机应用的库文件
烧录/安装
烧录工具选择

固件编译完后,是需要烧录到单板的。这里我们用的是HiTool工具烧录的。(HiTool工具下载地址:HiHope官网)

烧录步骤

打开HiTool工具,如下图:

burn

烧写步骤按照图中标注即可。点击烧入后,烧录工具会提示重新上电,此时重启单板即可。

start burn

烧录结果

烧录成功后,会弹出如下提示,单板也会自行启动。

burn ok

烧录失败的话需要根据失败提示查找一下原因。一般情况需要检查一下串口是否连接正常,网线是否正确插入,IP是否选择正常等。

查看IP的方法:当单板上电后并正确插入网线后,点击工具上刷新按钮,此时单板IP会自动添加到服务器IP列表中。

check ip

设备启动

如果是第一次烧录程序的话,单板在启动的时候需要设置bootargs,否则不能正常启动。单板第一次启动会停在hisilicon界面:

set bootargs

我们需要输入以下指令:

  1. setenv bootcmd "mmc read 0x0 0x80000000 0x800 0x4800; go 0x80000000";
  2. setenv bootargs "console=ttyAMA0,115200n8 root=emmc fstype=vfat rootaddr=10M rootsize=20M rw";
  3. saveenv
  4. reset
打包应用

本demo是以安装包的形式安装到系统中启动运行的。因此,在安装应用前,需要将应用打包成安装包。

将编译好的libhoods.so文件与工程目录下的res以及config.json文件通过压缩打包成zip格式(三个文件直接压缩,不能压缩文件夹),并将后缀名改为hap(hood.hap)。

hap file

挂载NFS

应用打包后,我们是通过NFS方式将单板挂载到本地,通过相关的指令来安装的,NFS挂载方法参照社区文章:Hi3516通过NFS挂载方式与Windows共享文件。

mount nfs

安装

通过nfs是单板连接到本地电脑后,我们可以通过bm安装指令进行安装。bm 安装工具在系统编译完后会自动生成,路径在:

out/hispark_taurus/smart_hoods/dev_tools/bin/

bm file

由于bm默认安装的应用为已经签名的应用,所以我们在安装前需要先将签名去掉。

  1. bm set -s disable // 去签名
  2. bm install -p filename // 安装应用filename, filename需要指定路径

install

安装完后桌面会显示对应应用的ICON,直接点击ICON即可以启动油烟机的应用。

image-20211021102146214

操作体验

大屏6

  • 由于本demo涉及到摄像头的读写,故申请了相关的权限。在使用本demo前需要在setting中打开对应的权限。具体操作:

    点击 setting-->应用-->Hoods,然后将所有应用打开。

  • 本demo最主要的功能是可以接收手机端发送的图片和视频,所以设备必须和手机在同一局域网内。网络配置可以通过setting应用来进行。

    点击setting-->WiFi,然后选择对应的ssid,弹出密码输入框,输完密码后点击回车即可连接网络。

  • demo可以扫描规定目录下的图片与视频,用户只需将需要播放的图片放在sdcard的image目录下(暂只支持jpg图片格式),视频文件放在sdcard的video目录下(暂只支持mp4视频格式),然后将sdcard插入到开发板,重新上电开机并运行本demo,本demo可以自动将这些文件扫描并显示出来,用户可以通过文件列表点播文件。

  • demo中的视频和图片可以通过手机发送过来的,这个时候需要手机端应用配合,通过简易的RTP协议进行文件传输,具体传输协议可参照代码中相关定义。

  • demo中的监控1和2分别对应门铃以及客厅的摄像头,该功能待完善,目前监控1对应的是设备本身的demo,监控2暂未实现。

鸿蒙NEXT全套学习资料
微信名片
注:本文转载自blog.csdn.net的让开,我要吃人了的文章"https://blog.csdn.net/weixin_55362248/article/details/142100584"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top