0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

OpenHarmony南向開發(fā)案例:【智能油煙機(jī)】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-18 15:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

樣例簡介

本Demo是基于Hi3516開發(fā)板,使用開源OpenHarmony開發(fā)的應(yīng)用。本應(yīng)用主要功能有:

  • 可以搜索本地指定目錄的圖片和視頻文件,并可進(jìn)行點(diǎn)擊播放。
  • 可以通過wifi接收來自手機(jī)的美食圖片以及菜譜視頻,讓我們對(duì)美食可以邊學(xué)邊做(需要手機(jī)端應(yīng)用配合)。
  • 可以查實(shí)時(shí)看門外監(jiān)控(當(dāng)有人按門鈴時(shí)方便查看)以及客廳或臥室的情況(在廚房時(shí)方便實(shí)時(shí)注意孩子的動(dòng)向)。

運(yùn)行效果圖

運(yùn)行效果

樣例原理

原理示意圖

如上圖所示,手機(jī)可以將圖片或者視頻發(fā)到設(shè)備測(cè),設(shè)備可以播放接受到的圖片和視頻。

工程版本

  • 系統(tǒng)版本/API版本:OpenHarmony 1.0.1 release
  • hb版本: 0.2.0
  • 工具鏈版本:llvm-linux-9.0.0

快速上手

準(zhǔn)備硬件環(huán)境

  • 預(yù)裝windows系統(tǒng)的PC機(jī)
  • Hi3516DV300 IoT Camera開發(fā)板套件
  • 鴻蒙開發(fā)指導(dǎo)文檔:[qr23.cn/AKFP8k]

準(zhǔn)備開發(fā)環(huán)境

搜狗高速瀏覽器截圖20240326151450.png

安裝必備軟件

開發(fā)基礎(chǔ)環(huán)境由windows 工作臺(tái)和Linux編譯服務(wù)器組成。windows 工作臺(tái)可以通過samba 服務(wù)或ssh 方式訪問Linux編譯服務(wù)器。其中windows 工作臺(tái)用來燒錄和代碼編輯,Linux編譯服務(wù)器用來編譯OpenHarmony代碼,為了簡化步驟,Linux編譯服務(wù)器推薦安裝Ubuntu20.04。

安裝和配置Python
  • 打開Linux終端。
  • 輸入如下命令,查看python版本號(hào),需要使用python3.7以上版本。
    python3 --version
    
  • 安裝并升級(jí)Python包管理工具(pip3)。
    sudo apt-get install python3-setuptools python3-pip -y
    sudo pip3 install --upgrade pip
    
安裝hb
  • 運(yùn)行如下命令安裝hb

    python3 -m pip install --user ohos-build
    
  • 將hb加入系統(tǒng)環(huán)境變量

    vim ~/.bashrc
    

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

    export PATH=~/.local/bin:$PATH
    

    執(zhí)行如下命令更新環(huán)境變量。

    source ~/.bashrc
    
  • 測(cè)試hb安裝結(jié)果 執(zhí)行"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,如果當(dāng)前hb版本不是0.2.0,需要替換hb版本,步驟如下(該步驟必須在openharmony的工程根目錄下執(zhí)行):

    pip3 uninstall ohos_build
    pip3 install build/lite
    
安裝交叉編譯環(huán)境

在Linux編譯服務(wù)器上搭建好基礎(chǔ)開發(fā)環(huán)境后,需要安裝OpenHarmony 編譯Hi3516平臺(tái)特有的開發(fā)環(huán)境。

將Linux shell改為bash

查看shell是否為bash,在終端運(yùn)行如下命令

ls -l /bin/sh

如果顯示為“/bin/sh -> bash”則為正常,否則請(qǐng)按以下方式修改:

sudo rm -rf /bin/sh
sudo ln -s /bin/bash /bin/sh
安裝編譯依賴基礎(chǔ)軟件
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 虛擬機(jī)環(huán)境

由于應(yīng)用打包中需要依賴java虛擬機(jī),所以我們需要安裝Java 虛擬機(jī)環(huán)境.

  • 安裝Java運(yùn)行時(shí)環(huán)境(JRE)。
    sudo apt-get install default-jre
    
  • 安裝Java sdk開發(fā)工具包。
    sudo apt-get install default-jdk
    
安裝hc-gen
  • 下載hc-gen工具

  • 解壓hc-gen安裝包到Linux服務(wù)器~/hc-gen路徑下。

    tar -xvf hc-gen-0.65-linux.tar -C ~/
    
  • 設(shè)置環(huán)境變量。

    vim ~/.bashrc
    

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

    export PATH=~/hc-gen:$PATH
    
  • 使環(huán)境變量生效。

    source ~/.bashrc
    
安裝LLVM
  • 下載指定的LLVM工具。

  • 解壓LLVM安裝包至~/llvm路徑下。

    tar -zxvf llvm.tar -C ~/
    
  • 設(shè)置環(huán)境變量。

    vim ~/.bashrc
    

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

    export PATH=~/llvm/bin:$PATH
    
  • 使環(huán)境變量生效。

    source ~/.bashrc
    
準(zhǔn)備工程

本用例采用repo的方式從碼云官倉下載系統(tǒng)系統(tǒng)源碼以及開發(fā)板適配代碼,使用git從gitee的sig倉庫拉取設(shè)備應(yīng)用代碼。

配置git
  • 提前注冊(cè)準(zhǔn)備碼云gitee賬號(hào)。
  • git工具下載安裝
sudo apt install git
sudo apt install git-lfs
  • 生成/添加SSH密鑰:生成密鑰 使用gitee賬號(hào)綁定的郵箱生成密鑰對(duì)
ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"
  • 查看生成的密鑰
cat ~/.ssh/id_ed25519.pub
  • 復(fù)制生成后的 ssh key,返回gitee個(gè)人主頁,通過主頁 「個(gè)人設(shè)置」->「安全設(shè)置」->「SSH 公鑰」 ,將生成的“SSH密鑰”添加到倉庫中。
  • 配置git用戶信息
git config --global user.name "yourname"
git config --global user.email "your-email-address"
git config --global credential.helper store
準(zhǔn)備repo
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo  ## 如果沒有權(quán)限可以,可先將repo下載到當(dāng)前目錄在拷貝
chmod a+x /usr/local/bin/repo
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
準(zhǔn)備系統(tǒng)源碼

特別注意:請(qǐng)下載OpenHarmony 1.0.1 版本,后續(xù)會(huì)更新支持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'
準(zhǔn)備開發(fā)板適配代碼

本樣例的代碼在本版本系統(tǒng)下還未上主干,需要clone本倉庫。

git clone https://gitee.com/openharmony-sig/knowledge_demo_smart_home.git --depth=1
準(zhǔn)備設(shè)備側(cè)應(yīng)用代碼

設(shè)備側(cè)應(yīng)用代碼需要拷貝本倉庫的dev/team_x/smart_hoods目錄到系統(tǒng)的vendor/team_x目錄下面,如果系統(tǒng)的vendor下沒有team_x目錄,需要新建一個(gè)。

mkdir ~/OpenHarmony1.01/vendor/team_x    ## 如果OpenHarmony1.01/vendor下沒有team_x的目錄才需要執(zhí)行
cp -rfa  ~/knowledge_demo_smart_home/dev/team_x/smart_hoods  ~/OpenHarmony1.01/vendor/team_x/
工程效果

code tree

編譯

進(jìn)入到OpenHarmony系統(tǒng)源碼根目錄下,輸入hb set命令即可看到我們的應(yīng)用,選擇并確認(rèn)即可。

hb set  // 如果是第一次編譯,Input code path 命令行中鍵入"./" 指定OpenHarmony工程編譯根目錄后 回車。

select app

然后輸入hb build -f命令做全量編譯

hb build -f

build

編譯成功會(huì)生成對(duì)應(yīng)整個(gè)系統(tǒng)固件(u-boot-hi3516dv300.bin,OHOS_Image.bin, rootfs_vfat.img, userfs_vfat.img)以及我們應(yīng)用對(duì)應(yīng)的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

應(yīng)用對(duì)應(yīng)的so文件在out目錄下的libs/usr/下面:

so file

以下表格為所有生成的固件及對(duì)應(yīng)的位置:

生產(chǎn)固件及應(yīng)用文件的名稱對(duì)應(yīng)文件路徑文件說明
u-boot-hi3516dv300.bindevice/hisilicon/hispark_taurus/sdk_liteos/uboot/out/boot/系統(tǒng)啟動(dòng)引導(dǎo)程序
OHOS_Image.binout/hispark_taurus/smart_hoods/系統(tǒng)內(nèi)核固件
rootfs_vfat.imgout/hispark_taurus/smart_hoods/文件系統(tǒng)
userfs_vfat.imgout/hispark_taurus/smart_hoods/用戶數(shù)據(jù)分區(qū)
libhoods.soout/hispark_taurus/smart_hoods/libs/usr/智能油煙機(jī)應(yīng)用的庫文件

燒錄/安裝

燒錄工具選擇

固件編譯完后,是需要燒錄到單板的。這里我們用的是HiTool工具燒錄的。

燒錄步驟

打開HiTool工具,如下圖:

burn

燒寫步驟按照?qǐng)D中標(biāo)注即可。點(diǎn)擊燒入后,燒錄工具會(huì)提示重新上電,此時(shí)重啟單板即可。

start burn

燒錄結(jié)果

燒錄成功后,會(huì)彈出如下提示,單板也會(huì)自行啟動(dòng)。

burn ok

燒錄失敗的話需要根據(jù)失敗提示查找一下原因。一般情況需要檢查一下串口是否連接正常,網(wǎng)線是否正確插入,IP是否選擇正常等。

查看IP的方法:當(dāng)單板上電后并正確插入網(wǎng)線后,點(diǎn)擊工具上刷新按鈕,此時(shí)單板IP會(huì)自動(dòng)添加到服務(wù)器IP列表中。

check ip

設(shè)備啟動(dòng)

如果是第一次燒錄程序的話,單板在啟動(dòng)的時(shí)候需要設(shè)置bootargs,否則不能正常啟動(dòng)。單板第一次啟動(dòng)會(huì)停在hisilicon界面:

set bootargs

我們需要輸入以下指令:

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
打包應(yīng)用

本demo是以安裝包的形式安裝到系統(tǒng)中啟動(dòng)運(yùn)行的。因此,在安裝應(yīng)用前,需要將應(yīng)用打包成安裝包。

將編譯好的libhoods.so文件與工程目錄下的res以及config.json文件通過壓縮打包成zip格式(三個(gè)文件直接壓縮,不能壓縮文件夾),并將后綴名改為hap(hood.hap)。

hap file

掛載NFS

應(yīng)用打包后,我們是通過NFS方式將單板掛載到本地,通過相關(guān)的指令來安裝的。

mount nfs

安裝

通過nfs是單板連接到本地電腦后,我們可以通過bm安裝指令進(jìn)行安裝。bm 安裝工具在系統(tǒng)編譯完后會(huì)自動(dòng)生成,路徑在:

out/hispark_taurus/smart_hoods/dev_tools/bin/

bm file

由于bm默認(rèn)安裝的應(yīng)用為已經(jīng)簽名的應(yīng)用,所以我們?cè)诎惭b前需要先將簽名去掉。

bm set -s disable                // 去簽名
bm install -p filename            // 安裝應(yīng)用filename, filename需要指定路徑

install

安裝完后桌面會(huì)顯示對(duì)應(yīng)應(yīng)用的ICON,直接點(diǎn)擊ICON即可以啟動(dòng)油煙機(jī)的應(yīng)用。

image-20211021102146214

操作體驗(yàn)

大屏6

  • 由于本demo涉及到攝像頭的讀寫,故申請(qǐng)了相關(guān)的權(quán)限。在使用本demo前需要在setting中打開對(duì)應(yīng)的權(quán)限。具體操作:
    點(diǎn)擊 setting-->應(yīng)用-->Hoods,然后將所有應(yīng)用打開。
  • 本demo最主要的功能是可以接收手機(jī)端發(fā)送的圖片和視頻,所以設(shè)備必須和手機(jī)在同一局域網(wǎng)內(nèi)。網(wǎng)絡(luò)配置可以通過setting應(yīng)用來進(jìn)行。
    點(diǎn)擊setting-->WiFi,然后選擇對(duì)應(yīng)的ssid,彈出密碼輸入框,輸完密碼后點(diǎn)擊回車即可連接網(wǎng)絡(luò)。
  • demo可以掃描規(guī)定目錄下的圖片與視頻,用戶只需將需要播放的圖片放在sdcard的image目錄下(暫只支持jpg圖片格式),視頻文件放在sdcard的video目錄下(暫只支持mp4視頻格式),然后將sdcard插入到開發(fā)板,重新上電開機(jī)并運(yùn)行本demo,本demo可以自動(dòng)將這些文件掃描并顯示出來,用戶可以通過文件列表點(diǎn)播文件。
  • demo中的視頻和圖片可以通過手機(jī)發(fā)送過來的,這個(gè)時(shí)候需要手機(jī)端應(yīng)用配合,通過簡易的RTP協(xié)議進(jìn)行文件傳輸。
  • demo中的監(jiān)控1和2分別對(duì)應(yīng)門鈴以及客廳的攝像頭,該功能待完善,目前監(jiān)控1對(duì)應(yīng)的是設(shè)備本身的demo,監(jiān)控2暫未實(shí)現(xiàn)。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5638

    瀏覽量

    103851
  • 鴻蒙
    +關(guān)注

    關(guān)注

    59

    文章

    2588

    瀏覽量

    43932
  • OpenHarmony
    +關(guān)注

    關(guān)注

    29

    文章

    3847

    瀏覽量

    18424
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    油煙機(jī)電路圖下載

      ·  粵寶YPZ5-4DQ輕觸式自動(dòng)抽油煙機(jī)電路圖·  粵寶YP5-5AZ抽油煙機(jī)電路圖·  粵寶YP5-4D自動(dòng)抽油煙機(jī)
    發(fā)表于 11-17 12:28

    油煙機(jī)選購三部曲

    油煙機(jī)選購三部曲廚房油煙含有20多萬種有害物質(zhì),不僅會(huì)致癌,對(duì)腸道、大腦神經(jīng)等也有很大的危害。廚房油煙已成為人體健康的隱形殺手。而肩負(fù)清潔廚房油煙的重任,一款好的吸
    發(fā)表于 12-22 14:45

    常見油煙機(jī)使用故障及維修方法

    一長時(shí)間不清洗,油路堵塞不通,隨之廢油陳積,馬達(dá)負(fù)荷加重,嚴(yán)重時(shí)造成電機(jī)燒壞?! 《逑窗惭b后沒有密封和復(fù)位,產(chǎn)生漏油現(xiàn)象?! ∪?b class='flag-5'>油煙機(jī)清洗時(shí)排煙渦輪平衡度遭到破壞,引起抖動(dòng)和磨擦聲?! ∷囊驘煹?/div>
    發(fā)表于 01-04 11:08

    請(qǐng)教大師油煙機(jī)接線方法

    如圖:家里的油煙機(jī)觸摸按鍵全部壞了,現(xiàn)在想繞開觸摸按鍵模塊,在火線上加個(gè)開關(guān),接通這個(gè)開關(guān)油煙機(jī)就用快速模式工作,達(dá)到這個(gè)目的即可。至于照明燈、慢速什么的都不需要,下圖是我自己畫的目前油煙機(jī)原始接線方式,請(qǐng)教大師該如何接線?如何
    發(fā)表于 04-24 15:23

    油煙機(jī)維修相關(guān)資料推薦

    油煙機(jī)維修 今天家里油煙機(jī)出現(xiàn)了問題,通上電,照明沒問題,但是電機(jī)怎么也不賺,只有嗡嗡的聲音。父母在農(nóng)村買的地?cái)傌洠坏揭荒昃蛪牧?,沒有售后保障,就自己動(dòng)手吧。 我家的油煙機(jī)是這樣,算是比較老式
    發(fā)表于 09-17 07:04

    如何去實(shí)現(xiàn)一基于單片機(jī)智能家庭抽油煙機(jī)自動(dòng)控制系統(tǒng)設(shè)計(jì)

    本設(shè)計(jì)是基于單片機(jī)的智能油煙機(jī)的設(shè)計(jì),主要實(shí)現(xiàn)以下功能:可實(shí)現(xiàn)通過煙霧檢測(cè)傳感器檢測(cè)當(dāng)前廚房油煙濃度可實(shí)現(xiàn)通過油煙濃度控制抽油煙機(jī)電機(jī)轉(zhuǎn)速
    發(fā)表于 11-09 06:49

    如何維修油煙機(jī)?

    如何維修油煙機(jī)?
    發(fā)表于 11-12 07:16

    怎樣清洗抽油煙機(jī)

    油煙機(jī)要經(jīng)常進(jìn)行清潔,否則油污過多,會(huì)影響葉輪轉(zhuǎn)動(dòng)。那如何清洗抽油煙機(jī)呢?
    發(fā)表于 05-14 15:24 ?2469次閱讀

    油煙機(jī)的清洗方法

    本內(nèi)容介紹了抽油煙機(jī)的清洗方法,向大家提供了最全的抽油煙機(jī)清洗方法供大家參考
    發(fā)表于 05-15 15:05 ?2549次閱讀

    選購吸油煙機(jī)應(yīng)注意哪些問題

    如何選購吸油煙機(jī)?相信看到這個(gè)問題的各位一定是一愣,吸油煙機(jī)到底應(yīng)該怎么選?吸油煙機(jī)雖然是我們生活中使用非常頻繁的家電產(chǎn)品,但對(duì)于絕大多數(shù)消費(fèi)者來說,吸油煙機(jī)這種只有在裝修、搬家、或者
    發(fā)表于 07-30 16:44 ?858次閱讀

    油煙機(jī)控制器的維修方法

    油煙機(jī)控制器是吸油煙機(jī)里面最為容易損壞的細(xì)小零件,很多人不是很清楚自己的吸油煙機(jī)壞了基本上是吸油煙機(jī)控制器壞了,然后自己花了大價(jià)錢買了一臺(tái)新的吸
    發(fā)表于 06-01 09:39 ?4737次閱讀

    油煙機(jī)哪個(gè)牌子好?打造無煙廚房就選這款油煙機(jī)

    對(duì)于愛做飯的人來說,油煙機(jī)給不給力,吸油煙能力好不好,是決定廚房生活品質(zhì)的重要因素。這一點(diǎn)我可是深有體會(huì),我家之前用的油煙機(jī)就很差勁,總是吸不干凈油煙,炒菜的時(shí)候產(chǎn)生的
    的頭像 發(fā)表于 09-23 14:02 ?2289次閱讀
    <b class='flag-5'>油煙機(jī)</b>哪個(gè)牌子好?打造無煙廚房就選這款<b class='flag-5'>油煙機(jī)</b>

    智能油煙機(jī) —— 語音芯片實(shí)用的選型技巧

    智能油煙機(jī)語音IC芯片選型技巧一:智能油煙機(jī)一般是在溫度偏高的環(huán)境下使用,所以廠家在選擇語音IC的時(shí)候要考慮到語音IC的溫度適用范圍,保證產(chǎn)品在特殊環(huán)境下的使用性能保持穩(wěn)定;
    發(fā)表于 11-24 16:07 ?862次閱讀

    創(chuàng)維油煙機(jī)怎么樣?換臺(tái)好煙機(jī),解決廚房難題

    油煙機(jī)是家家戶戶都必備的電器,一個(gè)好用的油煙機(jī)真的是廚房的好幫手。今天我為大家推薦一款顏值耐看功能強(qiáng)大的油煙機(jī)——?jiǎng)?chuàng)維Y7k 7字型油煙機(jī)。說到創(chuàng)維首先就會(huì)想到創(chuàng)維電視,它不僅電視質(zhì)量
    發(fā)表于 12-08 14:58 ?3958次閱讀
    創(chuàng)維<b class='flag-5'>油煙機(jī)</b>怎么樣?換臺(tái)好<b class='flag-5'>煙機(jī)</b>,解決廚房難題

    傳感技術(shù)在智能油煙機(jī)的具體應(yīng)用

    隨著我國科學(xué)領(lǐng)域的不斷發(fā)展,智能家居的誕生和普及,使社會(huì)居民的生活質(zhì)量得到顯著提升。智能油煙機(jī)作為智能家居的主要代表,不僅抽油煙的性能加強(qiáng)
    的頭像 發(fā)表于 03-18 11:15 ?2463次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品