成果展示
整體展示
2.碰一碰無(wú)感配網(wǎng)
3.報(bào)警
簡(jiǎn)介
目前,煤氣泄漏給居民生活帶來(lái)傷害的事情仍時(shí)有發(fā)生,但我相信萬(wàn)物互聯(lián)能夠有效避免這種傷害,于是我基于OpenHarmony設(shè)計(jì)了一款煤氣檢測(cè)裝置。該檢測(cè)系統(tǒng)能夠?qū)崟r(shí)監(jiān)測(cè)環(huán)境中煙霧濃度,當(dāng)一氧化碳濃度超標(biāo)時(shí),能夠及時(shí)向用戶發(fā)出警報(bào)。通過數(shù)字管家碰一碰配網(wǎng)絡(luò)后,配合數(shù)字管家應(yīng)用,用戶可以遠(yuǎn)程配置智能煤氣檢測(cè)系統(tǒng)的報(bào)警閾值,遠(yuǎn)程接收智能煤氣檢測(cè)系統(tǒng)報(bào)警信息。從而實(shí)現(xiàn)對(duì)危險(xiǎn)及時(shí)報(bào)警,及時(shí)處理,守護(hù)居家安全。
1. 交互方式
如下所示,智能煤氣檢測(cè)系統(tǒng)整體方案框架可以分為:智能煤氣檢測(cè)系統(tǒng)設(shè)備、數(shù)字管家應(yīng)用、云平臺(tái)三部分。智能煤氣檢測(cè)系統(tǒng)設(shè)備端按照MQTT協(xié)議與華為IOT物聯(lián)網(wǎng)平臺(tái)進(jìn)行通信。當(dāng)智能煤氣系統(tǒng)監(jiān)測(cè)現(xiàn)場(chǎng)一氧化碳濃度發(fā)生變化時(shí),設(shè)備端上報(bào)數(shù)據(jù)至云平臺(tái)最終同步到數(shù)字管家,當(dāng)一氧化碳濃度超過閾值時(shí),則會(huì)進(jìn)行報(bào)警,并將報(bào)警信息也上報(bào)至云平臺(tái)最終同步到數(shù)字管家;當(dāng)用戶通過數(shù)字管家調(diào)整報(bào)警系統(tǒng)閾值時(shí),命令數(shù)據(jù)先發(fā)送至云平臺(tái),再由云平臺(tái)下發(fā)至設(shè)備側(cè)。
2.下圖是更詳細(xì)的框架圖
所需材料
1. 基礎(chǔ)環(huán)境由Windows 工作臺(tái)和Linux 編譯服務(wù)器組成。Windows 工作臺(tái)可以通過samba 服務(wù)或ssh 方式訪問Linux編譯服務(wù)器。其中Windows 工作臺(tái)用來(lái)燒錄和代碼編輯,Linux編譯服務(wù)器用來(lái)編譯OpenHarmony代碼,為了簡(jiǎn)化步驟,Linux編譯服務(wù)器推薦安裝Ubuntu20.04。
還需下載
VMware Workstation 16 Player
MobaXterm
RaiDrive
HiBurn
鏈接:
https://gitee.com/bearpi/bearpi-hm_nano/blob/master/applications/BearPi/BearPi-HM_Nano/docs/quick-start/BearPi-HM_Nano%E5%8D%81%E5%88%86%E9%92%9F%E4%B8%8A%E6%89%8B.md
2. 硬件準(zhǔn)備
一氧化碳?xì)怏w傳感器(MQ7)
小熊派bearpi_hm_nano開發(fā)底板
我們使用小熊派bearpi_hm_nano開發(fā)底板+ MQ7傳感器拓展板來(lái)模擬智能煤氣檢測(cè)設(shè)備。通過ADC接口獲取傳感器一氧化碳濃度值,通過GPIO控制蜂鳴器進(jìn)行報(bào)警;reset按鍵控制設(shè)備重啟;reset按鍵組合控制按鍵可以清除已保存的配網(wǎng)信息,具體操作:先按下控制按鍵F2,然后按下reset按鍵;通過NFC模塊實(shí)現(xiàn)設(shè)備碰一碰快速配網(wǎng);
3.連接方式
小熊派nano 通用底板與一氧化碳?xì)怏w傳感器連接如實(shí)物圖所示,具體細(xì)節(jié)如下:
小熊派nano 通用底板 V3.3 Pin 接一氧化碳?xì)怏w傳感器 VCC Pin;
小熊派nano 通用底板 GND Pin 接一氧化碳?xì)怏w傳感器 GND Pin;
小熊派nano 通用底板 GPIO_13 Pin 接一氧化碳?xì)怏w傳感器 AO Pin;
4.實(shí)物圖片
配置環(huán)境下載源碼
環(huán)境配置
安裝和配置Python
1. 打開Linux終端。
2. 輸入如下命令,查看python版本號(hào),需要使用python3.7以上版本,否則參考
https://gitee.com/openharmony/docs/blob/OpenHarmony_1.0.1_release/zh-cn/device-dev/quick-start/%E6%90%AD%E5%BB%BA%E7%B3%BB%E7%BB%9F%E5%9F%BA%E7%A1%80%E7%8E%AF%E5%A2%83.md
python3 –version
3. 安裝并升級(jí)Python包管理工具(pip3)。
sudo apt-get install python3-setuptools python3-pip -ysudo pip3 install --upgrade pip
安裝hb
1. 運(yùn)行如下命令安裝hb
python3 -m pip install --user ohos-build
2. 設(shè)置環(huán)境變量
vim ~/.bashrc 將以下命令拷貝到.bashrc文件的最后一行,保存并退出。 export PATH=~/.local/bin:$PATH 執(zhí)行如下命令更新環(huán)境變量。 source ~/.bashrc
3. 執(zhí)行“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
配置3861開發(fā)環(huán)境準(zhǔn)備
在Linux編譯服務(wù)器上搭建好基礎(chǔ)開發(fā)環(huán)境后,需要安裝OpenHarmony 編譯Hi3861 平臺(tái)特有的開發(fā)環(huán)境。
安裝編譯依賴基礎(chǔ)軟件
sudo apt-get install -y build-essential gcc g++ make zlib* libffi-dev
安裝Scons
1. 打開Linux 終端。
2. 運(yùn)行如下命令,安裝Scons安裝包。
python3 -m pip install scons
3. 運(yùn)行如下命令,查看是否安裝成功。如果安裝成功,查詢結(jié)果下圖所示。
scons -v
下圖 Scons安裝成功界面,版本要求3.0.4以上
安裝python模塊
sudo pip3 install setuptools kconfiglib pycryptodome ecdsa six --upgrade --ignore-installed six
安裝gcc_riscv32(WLAN模組類編譯工具鏈)
1. 打開Linux終端。
2. 下載gcc_riscv32鏡像
https://repo.huaweicloud.com/harmonyos/compiler/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz
3. 設(shè)置環(huán)境變量
將壓縮包解壓到根目錄
tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~
設(shè)置環(huán)境變量。
vim ~/.bashrc
將以下命令拷貝到.bashrc文件的最后一行,保存并退出。
export PATH=~/gcc_riscv32/bin:$PATH
生效環(huán)境變量。
source ~/.bashrc
4. 在命令行中輸入如下命令,如果能正確顯示編譯器版本號(hào),表明編譯器安裝成功。
riscv32-unknown-elf-gcc -v
代碼下載&編譯準(zhǔn)備
1.碼云工具下載
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
2.代碼下載
OpenHarmony代碼下載
特別注意:請(qǐng)下載OpenHarmony 1.0.1 版本,后續(xù)會(huì)更新支持OpenHarmony其他版本
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’
設(shè)備側(cè)代碼下載
具體倉(cāng)庫(kù)地址:
https://gitee.com/openharmony-sig/knowledge_demo_smart_home/
下載方式1:直接下載倉(cāng)庫(kù)對(duì)應(yīng)zip 包文件
下載方式2:fork knowledge_demo_smart_home倉(cāng)庫(kù)后,使用git 命令下載
git clone git@gitee.com:xxxxxxx/knowledge_demo_smart_home.git // 其中xxxxxxx為fork后相關(guān)賬號(hào)名字。
編譯前準(zhǔn)備
代碼拷貝
cp -rfa ~/knowledge_demo_smart_home/dev/device/bearpi ~/OpenHarmony1.01/device/ 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/
整合并修改完成后的目錄結(jié)構(gòu)如下圖:
設(shè)備端代碼編譯燒錄
1.編譯編譯命令:
在OpenHarmony目錄下hb set 如果是第一次編譯,Input code path 命令行中鍵入“。/” 指定OpenHarmony工程編譯根目錄后 回車。
如下圖所示,使用鍵盤上下鍵選中智能煤氣檢測(cè)系統(tǒng)
hb build // 如果需要全量編譯,可以添加-f 選項(xiàng)
2. 燒錄
編譯好的代碼在
打開smart_co_detection文件可以看到編譯好的代碼
通過RaiDrive工具將Linux上的文件映射到windows上再通過HiBurn將Hi3861_wifiiot_app_allinone.bin燒錄到開發(fā)板,將開發(fā)板通過Type-c鏈接到電腦上
鼠標(biāo)右擊此電腦點(diǎn)擊設(shè)備管理器點(diǎn)擊端口查看開發(fā)板連接到電腦上的端口。
打開HiBurn設(shè)置端口將COM設(shè)置為上一步查看的端口
點(diǎn)擊Setting設(shè)置參數(shù)將Baud設(shè)置為115200
點(diǎn)擊Select file選擇編譯產(chǎn)出的代碼
將Hi3861_wifiiot_app_allinone.bin燒錄到開發(fā)板點(diǎn)擊Auto burn點(diǎn)擊Connect后點(diǎn)擊開發(fā)板的reset按鍵等待燒錄完成即可
搭建數(shù)字管家服務(wù)
1.準(zhǔn)備部署環(huán)境
Ubuntu18.04.4
Mysql5.7
https://blog.csdn.net/goog_man/article/details/108696063
RabbitMQ:
https://blog.csdn.net/weixin_33824363/article/details/92254998
Maven3.6.3:ubuntu18.04安裝Maven教程_也耶的博客-CSDN博客_ubuntu18安裝maven
Jdk8 :sudo apt-get install openjdk-8-jdk
2.申請(qǐng)華為云AK/Sk
https://activity.huaweicloud.com/newyear_promotion/index.html?utm_source=baidu&utm_medium=brand&utm_campaign=10056&utm_content=&utm_term=&utm_adplace=AdPlace024711
登錄華為云→點(diǎn)擊控制臺(tái)→我的憑證→訪問密鑰→新增訪問密鑰
3. 獲取APPID
設(shè)備接入→資源空間→APPID
4. 創(chuàng)建產(chǎn)品
創(chuàng)建好產(chǎn)品后點(diǎn)擊查看再點(diǎn)擊自定義模型
具體配置內(nèi)容查看
https://gitee.com/openharmony-sig/knowledge_demo_smart_home/blob/master/profile/%E6%99%BA%E8%83%BD%E7%85%A4%E6%B0%94%E6%A3%80%E6%B5%8B%E7%B3%BB%E7%BB%9Fprofile%E5%AE%9A%E4%B9%89.md
5. 添加規(guī)則
6. 預(yù)置AMQP
7. 打開數(shù)字管家修改配置文件
serverdistschedule-coresrcmain esourcesapplication-local.properties
8. 添加sql文件serverdistschedule-daosrcmain esourcesdbmigration
在末尾添加(數(shù)據(jù)庫(kù)V1__CreateTables)添加內(nèi)容
INSERT INTO device_type (`name`, `name_en`, `service_id`, `product_id`, `category`)
values (‘一氧化碳?xì)怏w報(bào)警器’, ‘coSensation’, ‘SmartCoSensation’, ‘61de758bc7fb24029b0be6f0’, 3);
9. 編譯
進(jìn)入目錄
cd knowledge_demo_smart_home/Server
mvn clean package -Dmaven.test.skip=true
可執(zhí)行的jar包在
knowledge_demo_smart_home/Server/distschedule-core/target/distschedule-core-1.0.0-SNAPSHOT.jar
10. 啟動(dòng)服務(wù)
通過環(huán)境變量激活local profile
export SPRING_PROFILES_ACTIVE=local # 激活local
啟動(dòng)命令(根據(jù)自己虛擬機(jī)上的目錄修改,使用絕對(duì)路徑)
java -jar /opt/distschedule-core-1.0.0-SNAPSHOT.jar --spring.profiles.active=local
11. 查看是否成功
成功訪問下面網(wǎng)址即可
http://127.0.0.1:8080/distschedule-api/swagger-ui/index.html
數(shù)字管家應(yīng)用程序真機(jī)運(yùn)行,碰一碰無(wú)感配網(wǎng)
https://gitee.com/openharmony-sig/knowledge_demo_smart_home/tree/master/FA/DistSchedule/docs/%E5%AD%A6%E7%94%9F%E5%85%9A%E4%B8%8A%E6%89%8B%E6%95%B0%E5%AD%97%E7%AE%A1%E5%AE%B6
總結(jié)
該項(xiàng)目主題來(lái)自O(shè)penHarmony開源開發(fā)者成長(zhǎng)計(jì)劃。整個(gè)過程還是比較復(fù)雜,需要設(shè)備端代碼的編寫,F(xiàn)A側(cè)代碼的實(shí)現(xiàn),華為云配置,以及數(shù)字管家服務(wù)端搭建。在這個(gè)過程中我接觸到很多新的知識(shí)點(diǎn),例如碰一碰快速配置網(wǎng)絡(luò),真機(jī)上的運(yùn)行,以及體驗(yàn)到華為云相關(guān)操作等等。OpenHarmony未來(lái)仍需要許多開發(fā)者來(lái)共建,讓我們?yōu)橥七M(jìn)OpenHarmony的發(fā)展一起努力加油!
評(píng)論
查看更多