<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

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

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

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

一、 介紹

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


1. 交互流程


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


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

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

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


二、快速上手
1. 硬件準備

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

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

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

安裝和配置Python

  • 打開(kāi)Linux終端。

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


    復制代碼



    1. &lt;font size=&quot;4&quot;&gt;python3 --version&lt;/font&gt;

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



  1. &lt;font size=&quot;4&quot;&gt;sudo apt-get install python3-setuptools python3-pip -y

  2. sudo pip3 install --upgrade pip&lt;/font&gt;

復制代碼


安裝hb

  • 運行如下命令安裝hb


    復制代碼



    1. &lt;font size=&quot;4&quot;&gt;python3 -m pip install --user ohos-build&lt;/font&gt;

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


    復制代碼


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


    復制代碼


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


    復制代碼



    1. &lt;font size=&quot;4&quot;&gt;source ~/.bashrc&lt;/font&gt;

    1. &lt;font size=&quot;4&quot;&gt;export PATH=~/.local/bin:$PATH&lt;/font&gt;

    1. &lt;font size=&quot;4&quot;&gt;vim ~/.bashrc&lt;/font&gt;

  • 執行&quot;hb -h&quot;,有打印以下信息即表示安裝成功.


    復制代碼



    1. &lt;font size=&quot;4&quot;&gt;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&lt;/font&gt;

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

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

安裝編譯依賴(lài)基礎軟件

  1. &lt;font size=&quot;4&quot;&gt;sudo apt-get install -y build-essential gcc g++ make zlib* libffi-dev&lt;/font&gt;

復制代碼


安裝Scons

  • 打開(kāi)Linux 終端。

  • 運行如下命令,安裝Scons安裝包。


    復制代碼



    1. &lt;font size=&quot;4&quot;&gt;python3 -m pip install scons&lt;/font&gt;

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


    復制代碼


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

    1. &lt;font size=&quot;4&quot;&gt;scons -v&lt;/font&gt;

安裝python模塊

  1. &lt;font size=&quot;4&quot;&gt;sudo pip3 install setuptools kconfiglib pycryptodome ecdsa six --upgrade --ignore-installed six

  2. &lt;/font&gt;

復制代碼


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

  • 打開(kāi)Linux終端。

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

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


    復制代碼


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


    復制代碼


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


    復制代碼


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


    復制代碼



    1. &lt;font size=&quot;4&quot;&gt;source ~/.bashrc&lt;/font&gt;

    1. &lt;font size=&quot;4&quot;&gt;export PATH=~/gcc_riscv32/bin:$PATH&lt;/font&gt;

    1. &lt;font size=&quot;4&quot;&gt;vim ~/.bashrc&lt;/font&gt;

    1. &lt;font size=&quot;4&quot;&gt;tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~&lt;/font&gt;

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


    復制代碼



    1. &lt;font size=&quot;4&quot;&gt;riscv32-unknown-elf-gcc -v&lt;/font&gt;

4、源碼下載&amp;編譯準備
1.碼云工具下載

  1. &lt;font size=&quot;4&quot;&gt;cd ~

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

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

  4. pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests&lt;/font&gt;

復制代碼


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

  1. &lt;font size=&quot;4&quot;&gt;#特別注意:請下載OpenHarmony 1.0.1 版本,后續會(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'&lt;/font&gt;

復制代碼


2) 設備側代碼下載

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



  1. &lt;font size=&quot;4&quot;&gt;git clone git@gitee.com:openharmony-sig/knowledge_demo_smart_home.git&lt;/font&gt;

復制代碼


3) 編譯前準備

  • 代碼拷貝


    復制代碼



    1. &lt;font size=&quot;4&quot;&gt;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/&lt;/font&gt;

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


    復制代碼


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


    復制代碼


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


      復制代碼



    • 修改wifiservice 文件夾

    1. &lt;font size=&quot;4&quot;&gt;DispatchConnectEvent函數下 屏蔽StaSetWifiNetConfig相關(guān)代碼行

    2. 239         //StaSetWifiNetConfig(HI_WIFI_EVT_CONNECTED);

    3. 260        //StaSetWifiNetConfig(HI_WIFI_EVT_DISCONNECTED);&lt;/font&gt;

    1. &lt;font size=&quot;4&quot;&gt;EnableHotspot函數中屏蔽如下字段

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

    3. 140     //    return ERROR_WIFI_UNKNOWN;

    4. 141     //}&lt;/font&gt;

    1. &lt;font size=&quot;4&quot;&gt;使能如下配置項

    2. CONFIG_I2C_SUPPORT=y

    3. CONFIG_PWM_SUPPORT=y&lt;/font&gt;

整合并修改完成后的目錄結構如下圖:

5、編譯&amp;燒錄

  1. &lt;font size=&quot;4&quot;&gt;編譯命令:

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

  3. 如下圖所示,使用鍵盤(pán)上下鍵選中智能臺燈&lt;/font&gt;

復制代碼




  1. &lt;font size=&quot;4&quot;&gt;hb build // 如果需要全量編譯,可以添加-f 選項&lt;/font&gt;

復制代碼


詳細的代碼編譯及固件燒錄步驟,請參考 編譯和燒錄指南

6、設備配網(wǎng)

  • 在設備上電前需準備好安裝了數字管家應用的HarmonyOS手機,詳情見(jiàn)數字管家應用開(kāi)發(fā), 并在設置中開(kāi)啟手機的NFC功能;

  • 寫(xiě)設備N(xiāo)FC標簽,詳細操作見(jiàn)設備N(xiāo)FC標簽指導文檔;

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

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


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




相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>