<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

OpenHarmony南向開發案例:【智能油煙機】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-18 15:54 ? 次閱讀

樣例簡介

本Demo是基于Hi3516開發板,使用開源OpenHarmony開發的應用。本應用主要功能有:

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

運行效果圖

運行效果

樣例原理

原理示意圖

如上圖所示,手機可以將圖片或者視頻發到設備測,設備可以播放接受到的圖片和視頻。

工程版本

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

快速上手

準備硬件環境

  • 預裝windows系統的PC機
  • Hi3516DV300 IoT Camera開發板套件
  • 鴻蒙開發指導文檔:[qr23.cn/AKFP8k]

準備開發環境

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

安裝必備軟件

開發基礎環境由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/
工程效果

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工具,如下圖:

burn

燒寫步驟按照圖中標注即可。點擊燒入后,燒錄工具會提示重新上電,此時重啟單板即可。

start burn

燒錄結果

燒錄成功后,會彈出如下提示,單板也會自行啟動。

burn ok

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

查看IP的方法:當單板上電后并正確插入網線后,點擊工具上刷新按鈕,此時單板IP會自動添加到服務器IP列表中。

check ip

設備啟動

如果是第一次燒錄程序的話,單板在啟動的時候需要設置bootargs,否則不能正常啟動。單板第一次啟動會停在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
打包應用

本demo是以安裝包的形式安裝到系統中啟動運行的。因此,在安裝應用前,需要將應用打包成安裝包。

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

hap file

掛載NFS

應用打包后,我們是通過NFS方式將單板掛載到本地,通過相關的指令來安裝的。

mount nfs

安裝

通過nfs是單板連接到本地電腦后,我們可以通過bm安裝指令進行安裝。bm 安裝工具在系統編譯完后會自動生成,路徑在:

out/hispark_taurus/smart_hoods/dev_tools/bin/

bm file

由于bm默認安裝的應用為已經簽名的應用,所以我們在安裝前需要先將簽名去掉。

bm set -s disable                // 去簽名
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暫未實現。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 開發板
    +關注

    關注

    25

    文章

    4560

    瀏覽量

    94886
  • 鴻蒙
    +關注

    關注

    55

    文章

    1919

    瀏覽量

    42197
  • OpenHarmony
    +關注

    關注

    24

    文章

    3442

    瀏覽量

    15291
收藏 人收藏

    評論

    相關推薦

    油煙機電路圖下載

      ·  粵寶YPZ5-4DQ輕觸式自動抽油煙機電路圖·  粵寶YP5-5AZ抽油煙機電路圖·  粵寶YP5-4D自動抽油煙機
    發表于 11-17 12:28

    油煙機選購三部曲

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

    常見油煙機使用故障及維修方法

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

    請教大師油煙機接線方法

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

    油煙機維修相關資料推薦

    油煙機維修 今天家里油煙機出現了問題,通上電,照明沒問題,但是電機怎么也不賺,只有嗡嗡的聲音。父母在農村買的地攤貨,不到一年就壞了,沒有售后保障,就自己動手吧。 我家的油煙機是這樣,算是比較老式
    發表于 09-17 07:04

    如何去實現一基于單片機智能家庭抽油煙機自動控制系統設計

    本設計是基于單片機的智能油煙機的設計,主要實現以下功能:可實現通過煙霧檢測傳感器檢測當前廚房油煙濃度可實現通過油煙濃度控制抽油煙機電機轉速
    發表于 11-09 06:49

    如何維修油煙機?

    如何維修油煙機?
    發表于 11-12 07:16

    家用抽油煙機易犯的錯誤

    家用抽油煙機易犯的錯誤 抽油煙機現已成為家庭必購的廚衛電器。當您在做飯的過程中,抽油煙機是始終開著,還是看到鍋里的油燒熱產生油煙
    發表于 02-21 15:59 ?990次閱讀

    怎樣清洗抽油煙機

    油煙機要經常進行清潔,否則油污過多,會影響葉輪轉動。那如何清洗抽油煙機呢?
    發表于 05-14 15:24 ?2150次閱讀

    油煙機的清洗方法

    本內容介紹了抽油煙機的清洗方法,向大家提供了最全的抽油煙機清洗方法供大家參考
    發表于 05-15 15:05 ?2229次閱讀

    方太智能星魔方油煙機評測 一款全面且具有創新性的吸油煙機產品

    了家家戶戶的一個烹飪習慣,吸油煙機能迎合國人的烹飪習慣,迅速帶走油煙,對人的健康也是很有好處。因此,為了有一個更好的烹飪環境,我們就應該為自己廚房搭配一臺優秀的吸油煙機。筆者接下來將要介紹的這款來自方太的
    的頭像 發表于 10-18 10:10 ?1w次閱讀

    方太智能升降油煙機評測 省心省事又省力

    作為家庭廚房必備電器,油煙機智能化一直受到大家的廣泛關注,那么現在油煙機智能化到底發展到了什么程度呢?
    的頭像 發表于 03-04 09:22 ?9397次閱讀

    油煙機哪個牌子好?打造無煙廚房就選這款油煙機

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

    創維油煙機怎么樣?換臺好煙機,解決廚房難題

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

    傳感技術在智能油煙機的具體應用

    隨著我國科學領域的不斷發展,智能家居的誕生和普及,使社會居民的生活質量得到顯著提升。智能油煙機作為智能家居的主要代表,不僅抽油煙的性能加強
    的頭像 發表于 03-18 11:15 ?1748次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>