樣例簡介
本Demo是基于Hi3516開發板,使用開源OpenHarmony開發的應用。本應用主要功能有:
- 可以搜索本地指定目錄的圖片和視頻文件,并可進行點擊播放。
- 可以通過wifi接收來自手機的美食圖片以及菜譜視頻,讓我們對美食可以邊學邊做(需要手機端應用配合)。
- 可以查實時看門外監控(當有人按門鈴時方便查看)以及客廳或臥室的情況(在廚房時方便實時注意孩子的動向)。
運行效果圖
樣例原理
如上圖所示,手機可以將圖片或者視頻發到設備測,設備可以播放接受到的圖片和視頻。
工程版本
快速上手
準備硬件環境
準備開發環境
安裝必備軟件
開發基礎環境由windows 工作臺和Linux編譯服務器組成。windows 工作臺可以通過samba 服務或ssh 方式訪問Linux編譯服務器。其中windows 工作臺用來燒錄和代碼編輯,Linux編譯服務器用來編譯OpenHarmony代碼,為了簡化步驟,Linux編譯服務器推薦安裝Ubuntu20.04。
安裝和配置Python
- 打開Linux終端。
- 輸入如下命令,查看python版本號,需要使用python3.7以上版本。
python3 --version
- 安裝并升級Python包管理工具(pip3)。
sudo apt-get install python3-setuptools python3-pip -y 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",有打印以下信息即表示安裝成功.
usage: hb OHOS build system positional arguments: {build,set,env,clean} build Build source code set OHOS build settings env Show OHOS build env clean Clean output optional arguments: -h, --help show this help message and exit
hb版本替換
本樣例hb版本為0.2.0,如果當前hb版本不是0.2.0,需要替換hb版本,步驟如下(該步驟必須在openharmony的工程根目錄下執行):pip3 uninstall ohos_build pip3 install build/lite
安裝交叉編譯環境
在Linux編譯服務器上搭建好基礎開發環境后,需要安裝OpenHarmony 編譯Hi3516平臺特有的開發環境。
將Linux shell改為bash
查看shell是否為bash,在終端運行如下命令
ls -l /bin/sh
如果顯示為“/bin/sh -> bash”則為正常,否則請按以下方式修改:
sudo rm -rf /bin/sh
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工具下載安裝
sudo apt install git
sudo apt install git-lfs
- 生成/添加SSH密鑰:生成密鑰 使用gitee賬號綁定的郵箱生成密鑰對
ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"
- 查看生成的密鑰
cat ~/.ssh/id_ed25519.pub
- 復制生成后的 ssh key,返回gitee個人主頁,通過主頁 「個人設置」->「安全設置」->「SSH 公鑰」 ,將生成的“SSH密鑰”添加到倉庫中。
- 配置git用戶信息
git config --global user.name "yourname"
git config --global user.email "your-email-address"
git config --global credential.helper store
準備repo
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo ## 如果沒有權限可以,可先將repo下載到當前目錄在拷貝
chmod a+x /usr/local/bin/repo
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
準備系統源碼
特別注意:請下載OpenHarmony 1.0.1 版本,后續會更新支持OpenHarmony其他版本
mkdir ~/OpenHarmony1.01
cd ~/OpenHarmony1.01
repo init -u git@gitee.com:openharmony/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify
repo sync -c
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目錄,需要新建一個。
mkdir ~/OpenHarmony1.01/vendor/team_x ## 如果OpenHarmony1.01/vendor下沒有team_x的目錄才需要執行
cp -rfa ~/knowledge_demo_smart_home/dev/team_x/smart_hoods ~/OpenHarmony1.01/vendor/team_x/
工程效果
編譯
進入到OpenHarmony系統源碼根目錄下,輸入hb set命令即可看到我們的應用,選擇并確認即可。
hb set // 如果是第一次編譯,Input code path 命令行中鍵入"./" 指定OpenHarmony工程編譯根目錄后 回車。
然后輸入hb build -f命令做全量編譯
hb build -f
編譯成功會生成對應整個系統固件(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/:
OHOS_Image.bin, rootfs_vfat.img,以及userfs_vfat.img在out目錄下:
應用對應的so文件在out目錄下的libs/usr/下面:
以下表格為所有生成的固件及對應的位置:
生產固件及應用文件的名稱 | 對應文件路徑 | 文件說明 |
---|---|---|
u-boot-hi3516dv300.bin | device/hisilicon/hispark_taurus/sdk_liteos/uboot/out/boot/ | 系統啟動引導程序 |
OHOS_Image.bin | out/hispark_taurus/smart_hoods/ | 系統內核固件 |
rootfs_vfat.img | out/hispark_taurus/smart_hoods/ | 文件系統 |
userfs_vfat.img | out/hispark_taurus/smart_hoods/ | 用戶數據分區 |
libhoods.so | out/hispark_taurus/smart_hoods/libs/usr/ | 智能油煙機應用的庫文件 |
燒錄/安裝
燒錄工具選擇
固件編譯完后,是需要燒錄到單板的。這里我們用的是HiTool工具燒錄的。
燒錄步驟
打開HiTool工具,如下圖:
燒寫步驟按照圖中標注即可。點擊燒入后,燒錄工具會提示重新上電,此時重啟單板即可。
燒錄結果
燒錄成功后,會彈出如下提示,單板也會自行啟動。
燒錄失敗的話需要根據失敗提示查找一下原因。一般情況需要檢查一下串口是否連接正常,網線是否正確插入,IP是否選擇正常等。
查看IP的方法:當單板上電后并正確插入網線后,點擊工具上刷新按鈕,此時單板IP會自動添加到服務器IP列表中。
設備啟動
如果是第一次燒錄程序的話,單板在啟動的時候需要設置bootargs,否則不能正常啟動。單板第一次啟動會停在hisilicon界面:
我們需要輸入以下指令:
setenv bootcmd "mmc read 0x0 0x80000000 0x800 0x4800; go 0x80000000";
setenv bootargs "console=ttyAMA0,115200n8 root=emmc fstype=vfat rootaddr=10M rootsize=20M rw";
saveenv
reset
打包應用
本demo是以安裝包的形式安裝到系統中啟動運行的。因此,在安裝應用前,需要將應用打包成安裝包。
將編譯好的libhoods.so文件與工程目錄下的res以及config.json文件通過壓縮打包成zip格式(三個文件直接壓縮,不能壓縮文件夾),并將后綴名改為hap(hood.hap)。
掛載NFS
應用打包后,我們是通過NFS方式將單板掛載到本地,通過相關的指令來安裝的。
安裝
通過nfs是單板連接到本地電腦后,我們可以通過bm安裝指令進行安裝。bm 安裝工具在系統編譯完后會自動生成,路徑在:
out/hispark_taurus/smart_hoods/dev_tools/bin/
由于bm默認安裝的應用為已經簽名的應用,所以我們在安裝前需要先將簽名去掉。
bm set -s disable // 去簽名
bm install -p filename // 安裝應用filename, filename需要指定路徑
安裝完后桌面會顯示對應應用的ICON,直接點擊ICON即可以啟動油煙機的應用。
操作體驗
- 由于本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暫未實現。
審核編輯 黃宇
-
開發板
+關注
關注
25文章
4560瀏覽量
94886 -
鴻蒙
+關注
關注
55文章
1919瀏覽量
42197 -
OpenHarmony
+關注
關注
24文章
3442瀏覽量
15291
發布評論請先 登錄
相關推薦
油煙機選購三部曲
常見油煙機使用故障及維修方法
請教大師油煙機接線方法
油煙機維修相關資料推薦
如何去實現一基于單片機智能家庭抽油煙機自動控制系統設計
家用抽油煙機易犯的錯誤
方太智能星魔方油煙機評測 一款全面且具有創新性的吸油煙機產品
油煙機哪個牌子好?打造無煙廚房就選這款油煙機
創維油煙機怎么樣?換臺好煙機,解決廚房難題
傳感技術在智能抽油煙機的具體應用
評論