OpenHarmony開發(fā)樣例- 基于Pegasus物聯(lián)網開發(fā)套件來開發(fā)的智能垃圾桶
一、 介紹
核心組件 | 位置 | 功能 |
距離傳感器 | 置于垃圾桶蓋內側 | 感應垃圾量 |
紅外傳感器 | 置于垃圾桶前端 | 感應是否有人靠近 |
光敏電阻 | 開發(fā)板上固定 | 感應照明情況 |
LED燈 | 開發(fā)板上固定 | 模擬晚上照明燈,和紅外傳感器聯(lián)動 |
舵機 | 垃圾桶蓋下方合適位置 | 通過轉動,控制垃圾桶蓋的開關 |
1. 交互流程
2.實物簡介
3.實物操作體驗
二、快速上手
1. 硬件準備
2、Linux編譯服務器基礎環(huán)境準備
安裝和配置Python
打開Linux終端。
輸入如下命令,查看python版本號,需要使用python3.7以上版本,否則參考 系統(tǒng)基礎環(huán)境搭建。
復制代碼<font size="4">python3 --version</font>
安裝并升級Python包管理工具(pip3)。
<font size="4">sudo apt-get install python3-setuptools python3-pip -y
sudo pip3 install --upgrade pip</font>
安裝hb
運行如下命令安裝hb
復制代碼<font size="4">python3 -m pip install --user ohos-build</font>
設置環(huán)境變量
復制代碼
將以下命令拷貝到.bashrc文件的最后一行,保存并退出。復制代碼
執(zhí)行如下命令更新環(huán)境變量。復制代碼<font size="4">source ~/.bashrc</font>
<font size="4">export PATH=~/.local/bin:$PATH</font>
<font size="4">vim ~/.bashrc</font>
執(zhí)行"hb -h",有打印以下信息即表示安裝成功.
復制代碼<font size="4">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</font>
3、Hi3861開發(fā)環(huán)境準備
安裝編譯依賴基礎軟件
<font size="4">sudo apt-get install -y build-essential gcc g++ make zlib* libffi-dev</font>
安裝Scons
打開Linux 終端。
運行如下命令,安裝Scons安裝包。
復制代碼<font size="4">python3 -m pip install scons</font>
運行如下命令,查看是否安裝成功。如果安裝成功,查詢結果下圖所示。
復制代碼
下圖 Scons安裝成功界面,版本要求3.0.4以上<font size="4">scons -v</font>
安裝python模塊
<font size="4">sudo pip3 install setuptools kconfiglib pycryptodome ecdsa six --upgrade --ignore-installed six
</font>
安裝gcc_riscv32(WLAN模組類編譯工具鏈)
打開Linux終端。
下載gcc_riscv32鏡像,下載鏈接。
設置環(huán)境變量
將壓縮包解壓到根目錄復制代碼
設置環(huán)境變量。復制代碼
將以下命令拷貝到.bashrc文件的最后一行,保存并退出。復制代碼
生效環(huán)境變量。復制代碼<font size="4">source ~/.bashrc</font>
<font size="4">export PATH=~/gcc_riscv32/bin:$PATH</font>
<font size="4">vim ~/.bashrc</font>
<font size="4">tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~</font>
在命令行中輸入如下命令,如果能正確顯示編譯器版本號,表明編譯器安裝成功。
復制代碼<font size="4">riscv32-unknown-elf-gcc -v</font>
4、源碼下載&編譯準備
1.碼云工具下載
<font size="4">cd ~
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo
chmod a+x /usr/local/bin/repo
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests</font>
2.代碼下載
1) OpenHarmony代碼下載
<font size="4">#特別注意:請下載OpenHarmony 1.0.1 版本,后續(xù)會更新支持OpenHarmony其他版本
mkdir ~/OpenHarmony1.01
cd ~/OpenHarmony1.01
repo init -u [email protected]:openharmony/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'</font>
2) 設備側代碼下載
<font size="4">git clone [email protected]:openharmony-sig/knowledge_demo_smart_home.git</font>
3) 編譯前準備
代碼拷貝
復制代碼<font size="4">cp -RFa ~/knowledge_demo_smart_home/dev/team_x ~/OpenHarmony1.01/vendor/
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復制代碼
地址: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 文件夾
<font size="4">DispatchConnectEvent函數下 屏蔽StaSetWifiNetConfig相關代碼行
239 //StaSetWifiNetConfig(HI_WIFI_EVT_CONNECTED);
260 //StaSetWifiNetConfig(HI_WIFI_EVT_DISCONNECTED);</font>
<font size="4">EnableHotspot函數中屏蔽如下字段
139 //if (SetHotspotIpConfig() != WIFI_SUCCESS) {
140 // return ERROR_WIFI_UNKNOWN;
141 //}</font>
<font size="4">使能如下配置項
CONFIG_I2C_SUPPORT=y
CONFIG_PWM_SUPPORT=y</font>
5、編譯&燒錄
<font size="4">編譯命令:
hb set // 如果是第一次編譯,Input code path 命令行中鍵入"./" 指定OpenHarmony工程編譯根目錄后 回車,
如下圖所示,使用鍵盤上下鍵選中智能臺燈</font>
<font size="4">hb build // 如果需要全量編譯,可以添加-f 選項</font>
6、設備配網
在設備上電前需準備好安裝了數字管家應用的HarmonyOS手機,詳情見數字管家應用開發(fā), 并在設置中開啟手機的NFC功能;
寫設備NFC標簽,詳細操作見設備NFC標簽指導文檔;
燒錄完成后,上電。開發(fā)者在觀察開發(fā)板上狀態(tài)LED燈以8Hz的頻率閃爍時,將手機上半部靠近開發(fā)板NFC標簽處;
無需任何操作手機將自動拉起數字管家應用并進入配網狀態(tài),配網過程中無需輸入熱點賬號密碼。 具體無感配網相關流程參考 無感配網指南
*博客內容為網友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。