博客專欄

        EEPW首頁 > 博客 > OpenHarmony開發樣例- 基于Pegasus物聯網開發套件來開發的智能垃圾桶

        OpenHarmony開發樣例- 基于Pegasus物聯網開發套件來開發的智能垃圾桶

        發布人:dianlaotie 時間:2022-03-16 來源:工程師 發布文章

        一、 介紹

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


        1. 交互流程


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


        2.實物簡介

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

        3.實物操作體驗


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

        Pegasus物聯網開發套件一套
        預裝HarmonyOS手機一臺

        2、Linux編譯服務器基礎環境準備

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

        安裝和配置Python

        • 打開Linux終端。

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


          復制代碼



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

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



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

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

        復制代碼


        安裝hb

        • 運行如下命令安裝hb


          復制代碼



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

        • 設置環境變量


          復制代碼


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


          復制代碼


          執行如下命令更新環境變量。


          復制代碼



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

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

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

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


          復制代碼



          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開發環境準備

        在Linux編譯服務器上搭建好基礎開發環境后,需要安裝OpenHarmony 編譯Hi3861 平臺特有的開發環境。

        安裝編譯依賴基礎軟件

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

        復制代碼


        安裝Scons

        • 打開Linux 終端。

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


          復制代碼



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

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


          復制代碼


          下圖 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>

        復制代碼


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

        • 打開Linux終端。

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

        • 設置環境變量
          將壓縮包解壓到根目錄


          復制代碼


          設置環境變量。


          復制代碼


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


          復制代碼


          生效環境變量。


          復制代碼



          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>

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


          復制代碼



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

        4、源碼下載&編譯準備
        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>

        復制代碼


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

        1. <font size="4">#特別注意:請下載OpenHarmony 1.0.1 版本,后續會更新支持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>

        復制代碼


        2) 設備側代碼下載

        具體倉庫地址: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>

        復制代碼


        3) 編譯前準備

        • 代碼拷貝


          復制代碼



          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 開發板特定修改
          地址: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. <font size="4">DispatchConnectEvent函數下 屏蔽StaSetWifiNetConfig相關代碼行

          2. 239         //StaSetWifiNetConfig(HI_WIFI_EVT_CONNECTED);

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

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

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

          3. 140     //    return ERROR_WIFI_UNKNOWN;

          4. 141     //}</font>

          1. <font size="4">使能如下配置項

          2. CONFIG_I2C_SUPPORT=y

          3. CONFIG_PWM_SUPPORT=y</font>

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

        5、編譯&燒錄

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

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

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

        復制代碼




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

        復制代碼


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

        6、設備配網

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

        • 寫設備NFC標簽,詳細操作見設備NFC標簽指導文檔;

        • 燒錄完成后,上電。開發者在觀察開發板上狀態LED燈以8Hz的頻率閃爍時,將手機上半部靠近開發板NFC標簽處;

        • 無需任何操作手機將自動拉起數字管家應用并進入配網狀態,配網過程中無需輸入熱點賬號密碼。 具體無感配網相關流程參考 無感配網指南


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。




        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 普兰县| 瑞丽市| 扬州市| 兴宁市| 蓝山县| 康平县| 青岛市| 扎鲁特旗| 利川市| 毕节市| 信宜市| 浮山县| 将乐县| 卢氏县| 德州市| 金川县| 江川县| 易门县| 深圳市| 遂宁市| 大方县| 德昌县| 百色市| 白山市| 沙雅县| 黎平县| 修文县| 开原市| 贵州省| 镇赉县| 泸州市| 调兵山市| 罗江县| 怀仁县| 寻乌县| 资中县| 长子县| 龙岩市| 五华县| 县级市| 长阳|