博客專欄

EEPW首頁 > 博客 > OpenHarmony開發(fā)樣例- 基于Pegasus物聯(lián)網(wǎng)開發(fā)套件來開發(fā)的智能垃圾桶

OpenHarmony開發(fā)樣例- 基于Pegasus物聯(lián)網(wǎng)開發(fā)套件來開發(fā)的智能垃圾桶

發(fā)布人:dianlaotie 時(shí)間:2022-03-16 來源:工程師 發(fā)布文章

一、 介紹

智能垃圾桶可以通過數(shù)字管家應(yīng)用來監(jiān)測(cè)垃圾桶當(dāng)前可用容量,提醒主人及時(shí)處理垃圾;通過日程管家可以實(shí)現(xiàn)和其他智能設(shè)備聯(lián)動(dòng)。
核心組件位置功能
距離傳感器置于垃圾桶蓋內(nèi)側(cè)感應(yīng)垃圾量
紅外傳感器置于垃圾桶前端感應(yīng)是否有人靠近
光敏電阻開發(fā)板上固定感應(yīng)照明情況
LED燈開發(fā)板上固定模擬晚上照明燈,和紅外傳感器聯(lián)動(dòng)
舵機(jī)垃圾桶蓋下方合適位置通過轉(zhuǎn)動(dòng),控制垃圾桶蓋的開關(guān)


1. 交互流程


智能垃圾桶整體方案原理圖可以大致分成:智能垃圾桶設(shè)備、數(shù)字管家應(yīng)用、云平臺(tái)三部分。智能垃圾桶通過MQTT協(xié)議連接華為IOT物聯(lián)網(wǎng)平臺(tái),從而實(shí)現(xiàn)命令的接收和屬性上報(bào)。 關(guān)于智能設(shè)備接入華為云IoT平臺(tái)的詳細(xì)細(xì)節(jié)可以參考 連接IOT云平臺(tái)指南;智能設(shè)備同數(shù)字管家應(yīng)用之間的設(shè)備模型定義可以參考profile .


2.實(shí)物簡(jiǎn)介

我們使用 Pegasus物聯(lián)網(wǎng)開發(fā)套件來模擬智能垃圾桶設(shè)備;
reset按鍵控制設(shè)備重啟;reset按鍵組合控制按鍵可以清除已保存的配網(wǎng)信息,具體操作:先按下控制按鍵user,然后按下reset按鍵,1-2秒后再松開reset按鍵;
通過NFC模塊實(shí)現(xiàn)設(shè)備碰一碰快速配網(wǎng)。

3.實(shí)物操作體驗(yàn)


二、快速上手
1. 硬件準(zhǔn)備

Pegasus物聯(lián)網(wǎng)開發(fā)套件一套
預(yù)裝HarmonyOS手機(jī)一臺(tái)

2、Linux編譯服務(wù)器基礎(chǔ)環(huán)境準(zhǔn)備

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

安裝和配置Python

  • 打開Linux終端。

  • 輸入如下命令,查看python版本號(hào),需要使用python3.7以上版本,否則參考 系統(tǒng)基礎(chǔ)環(huán)境搭建。


    復(fù)制代碼



    1. <font size="4">python3 --version</font>

  • 安裝并升級(jí)Python包管理工具(pip3)。



  1. <font size="4">sudo apt-get install python3-setuptools python3-pip -y

  2. sudo pip3 install --upgrade pip</font>

復(fù)制代碼


安裝hb

  • 運(yùn)行如下命令安裝hb


    復(fù)制代碼



    1. <font size="4">python3 -m pip install --user ohos-build</font>

  • 設(shè)置環(huán)境變量


    復(fù)制代碼


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


    復(fù)制代碼


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


    復(fù)制代碼



    1. <font size="4">source ~/.bashrc</font>

    1. <font size="4">export PATH=~/.local/bin:$PATH</font>

    1. <font size="4">vim ~/.bashrc</font>

  • 執(zhí)行"hb -h",有打印以下信息即表示安裝成功.


    復(fù)制代碼



    1. <font size="4">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</font>

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

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

安裝編譯依賴基礎(chǔ)軟件

  1. <font size="4">sudo apt-get install -y build-essential gcc g++ make zlib* libffi-dev</font>

復(fù)制代碼


安裝Scons

  • 打開Linux 終端。

  • 運(yùn)行如下命令,安裝Scons安裝包。


    復(fù)制代碼



    1. <font size="4">python3 -m pip install scons</font>

  • 運(yùn)行如下命令,查看是否安裝成功。如果安裝成功,查詢結(jié)果下圖所示。


    復(fù)制代碼


    下圖 Scons安裝成功界面,版本要求3.0.4以上

    1. <font size="4">scons -v</font>

安裝python模塊

  1. <font size="4">sudo pip3 install setuptools kconfiglib pycryptodome ecdsa six --upgrade --ignore-installed six

  2. </font>

復(fù)制代碼


安裝gcc_riscv32(WLAN模組類編譯工具鏈)

  • 打開Linux終端。

  • 下載gcc_riscv32鏡像,下載鏈接。

  • 設(shè)置環(huán)境變量
    將壓縮包解壓到根目錄


    復(fù)制代碼


    設(shè)置環(huán)境變量。


    復(fù)制代碼


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


    復(fù)制代碼


    生效環(huán)境變量。


    復(fù)制代碼



    1. <font size="4">source ~/.bashrc</font>

    1. <font size="4">export PATH=~/gcc_riscv32/bin:$PATH</font>

    1. <font size="4">vim ~/.bashrc</font>

    1. <font size="4">tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~</font>

  • 在命令行中輸入如下命令,如果能正確顯示編譯器版本號(hào),表明編譯器安裝成功。


    復(fù)制代碼



    1. <font size="4">riscv32-unknown-elf-gcc -v</font>

4、源碼下載&編譯準(zhǔn)備
1.碼云工具下載

  1. <font size="4">cd ~

  2. curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo

  3. chmod a+x /usr/local/bin/repo

  4. pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests</font>

復(fù)制代碼


2.代碼下載
1) OpenHarmony代碼下載

  1. <font size="4">#特別注意:請(qǐng)下載OpenHarmony 1.0.1 版本,后續(xù)會(huì)更新支持OpenHarmony其他版本

  2. mkdir ~/OpenHarmony1.01

  3. cd ~/OpenHarmony1.01

  4. repo init -u git@gitee.com:openharmony/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify

  5. repo sync -c

  6. repo forall -c 'git lfs pull'</font>

復(fù)制代碼


2) 設(shè)備側(cè)代碼下載

具體倉庫地址:https://gitee.com/openharmony-sig/knowledge_demo_smart_home/
具體下載命令如下:



  1. <font size="4">git clone git@gitee.com:openharmony-sig/knowledge_demo_smart_home.git</font>

復(fù)制代碼


3) 編譯前準(zhǔn)備

  • 代碼拷貝


    復(fù)制代碼



    1. <font size="4">cp -RFa  ~/knowledge_demo_smart_home/dev/team_x  ~/OpenHarmony1.01/vendor/

    2. cp -rfa  ~/knowledge_demo_smart_home/dev/third_party/iot_link  ~/OpenHarmony1.01/third_party/</font>

  • Hispark 開發(fā)板特定修改
    地址:device/hisilicon/hispark_pegasus/hi3861_adapter/hals/communication/wifi_lite/wifiservice/source/wifi_hotspot.c


    復(fù)制代碼


    地址:device/hisilicon/hispark_pegasus/hi3861_adapter/hals/communication/wifi_lite/wifiservice/source/wifi_device.c


    復(fù)制代碼


    • 修改usr_config.mk 文件
      地址:device/hisilicon/hispark_pegasus/sdk_liteos/build/config/usr_config.mk


      復(fù)制代碼



    • 修改wifiservice 文件夾

    1. <font size="4">DispatchConnectEvent函數(shù)下 屏蔽StaSetWifiNetConfig相關(guān)代碼行

    2. 239         //StaSetWifiNetConfig(HI_WIFI_EVT_CONNECTED);

    3. 260        //StaSetWifiNetConfig(HI_WIFI_EVT_DISCONNECTED);</font>

    1. <font size="4">EnableHotspot函數(shù)中屏蔽如下字段

    2. 139     //if (SetHotspotIpConfig() != WIFI_SUCCESS) {

    3. 140     //    return ERROR_WIFI_UNKNOWN;

    4. 141     //}</font>

    1. <font size="4">使能如下配置項(xiàng)

    2. CONFIG_I2C_SUPPORT=y

    3. CONFIG_PWM_SUPPORT=y</font>

整合并修改完成后的目錄結(jié)構(gòu)如下圖:

5、編譯&燒錄

  1. <font size="4">編譯命令:

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

  3. 如下圖所示,使用鍵盤上下鍵選中智能臺(tái)燈</font>

復(fù)制代碼




  1. <font size="4">hb build // 如果需要全量編譯,可以添加-f 選項(xiàng)</font>

復(fù)制代碼


詳細(xì)的代碼編譯及固件燒錄步驟,請(qǐng)參考 編譯和燒錄指南

6、設(shè)備配網(wǎng)

  • 在設(shè)備上電前需準(zhǔn)備好安裝了數(shù)字管家應(yīng)用的HarmonyOS手機(jī),詳情見數(shù)字管家應(yīng)用開發(fā), 并在設(shè)置中開啟手機(jī)的NFC功能;

  • 寫設(shè)備NFC標(biāo)簽,詳細(xì)操作見設(shè)備NFC標(biāo)簽指導(dǎo)文檔;

  • 燒錄完成后,上電。開發(fā)者在觀察開發(fā)板上狀態(tài)LED燈以8Hz的頻率閃爍時(shí),將手機(jī)上半部靠近開發(fā)板NFC標(biāo)簽處;

  • 無需任何操作手機(jī)將自動(dòng)拉起數(shù)字管家應(yīng)用并進(jìn)入配網(wǎng)狀態(tài),配網(wǎng)過程中無需輸入熱點(diǎn)賬號(hào)密碼。 具體無感配網(wǎng)相關(guān)流程參考 無感配網(wǎng)指南


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。




相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉