成果展示
整體展示
2.碰一碰無感配網
3.報警
簡介
目前,煤氣泄漏給居民生活帶來傷害的事情仍時有發生,但我相信萬物互聯能夠有效避免這種傷害,于是我基于OpenHarmony設計了一款煤氣檢測裝置。該檢測系統能夠實時監測環境中煙霧濃度,當一氧化碳濃度超標時,能夠及時向用戶發出警報。通過數字管家碰一碰配網絡后,配合數字管家應用,用戶可以遠程配置智能煤氣檢測系統的報警閾值,遠程接收智能煤氣檢測系統報警信息。從而實現對危險及時報警,及時處理,守護居家安全。
1. 交互方式
如下所示,智能煤氣檢測系統整體方案框架可以分為:智能煤氣檢測系統設備、數字管家應用、云平臺三部分。智能煤氣檢測系統設備端按照MQTT協議與華為IOT物聯網平臺進行通信。當智能煤氣系統監測現場一氧化碳濃度發生變化時,設備端上報數據至云平臺最終同步到數字管家,當一氧化碳濃度超過閾值時,則會進行報警,并將報警信息也上報至云平臺最終同步到數字管家;當用戶通過數字管家調整報警系統閾值時,命令數據先發送至云平臺,再由云平臺下發至設備側。
2.下圖是更詳細的框架圖
所需材料
1. 基礎環境由Windows 工作臺和Linux 編譯服務器組成。Windows 工作臺可以通過samba 服務或ssh 方式訪問Linux編譯服務器。其中Windows 工作臺用來燒錄和代碼編輯,Linux編譯服務器用來編譯OpenHarmony代碼,為了簡化步驟,Linux編譯服務器推薦安裝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. 硬件準備
一氧化碳氣體傳感器(MQ7)
小熊派bearpi_hm_nano開發底板
我們使用小熊派bearpi_hm_nano開發底板+ MQ7傳感器拓展板來模擬智能煤氣檢測設備。通過ADC接口獲取傳感器一氧化碳濃度值,通過GPIO控制蜂鳴器進行報警;reset按鍵控制設備重啟;reset按鍵組合控制按鍵可以清除已保存的配網信息,具體操作:先按下控制按鍵F2,然后按下reset按鍵;通過NFC模塊實現設備碰一碰快速配網;
3.連接方式
小熊派nano 通用底板與一氧化碳氣體傳感器連接如實物圖所示,具體細節如下:
小熊派nano 通用底板 V3.3 Pin 接一氧化碳氣體傳感器 VCC Pin;
小熊派nano 通用底板 GND Pin 接一氧化碳氣體傳感器 GND Pin;
小熊派nano 通用底板 GPIO_13 Pin 接一氧化碳氣體傳感器 AO Pin;
4.實物圖片
配置環境下載源碼
環境配置
安裝和配置Python
1. 打開Linux終端。
2. 輸入如下命令,查看python版本號,需要使用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. 安裝并升級Python包管理工具(pip3)。
sudo apt-get install python3-setuptools python3-pip -ysudo pip3 install --upgrade pip
安裝hb
1. 運行如下命令安裝hb
python3 -m pip install --user ohos-build
2. 設置環境變量
vim ~/.bashrc 將以下命令拷貝到.bashrc文件的最后一行,保存并退出。 export PATH=~/.local/bin:$PATH 執行如下命令更新環境變量。 source ~/.bashrc
3. 執行“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開發環境準備
在Linux編譯服務器上搭建好基礎開發環境后,需要安裝OpenHarmony 編譯Hi3861 平臺特有的開發環境。
安裝編譯依賴基礎軟件
sudo apt-get install -y build-essential gcc g++ make zlib* libffi-dev
安裝Scons
1. 打開Linux 終端。
2. 運行如下命令,安裝Scons安裝包。
python3 -m pip install scons
3. 運行如下命令,查看是否安裝成功。如果安裝成功,查詢結果下圖所示。
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. 設置環境變量
將壓縮包解壓到根目錄
tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~
設置環境變量。
vim ~/.bashrc
將以下命令拷貝到.bashrc文件的最后一行,保存并退出。
export PATH=~/gcc_riscv32/bin:$PATH
生效環境變量。
source ~/.bashrc
4. 在命令行中輸入如下命令,如果能正確顯示編譯器版本號,表明編譯器安裝成功。
riscv32-unknown-elf-gcc -v
代碼下載&編譯準備
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代碼下載
特別注意:請下載OpenHarmony 1.0.1 版本,后續會更新支持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’
設備側代碼下載
具體倉庫地址:
https://gitee.com/openharmony-sig/knowledge_demo_smart_home/
下載方式1:直接下載倉庫對應zip 包文件
下載方式2:fork knowledge_demo_smart_home倉庫后,使用git 命令下載
git clone git@gitee.com:xxxxxxx/knowledge_demo_smart_home.git // 其中xxxxxxx為fork后相關賬號名字。
編譯前準備
代碼拷貝
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/
整合并修改完成后的目錄結構如下圖:
設備端代碼編譯燒錄
1.編譯編譯命令:
在OpenHarmony目錄下hb set 如果是第一次編譯,Input code path 命令行中鍵入“。/” 指定OpenHarmony工程編譯根目錄后 回車。
如下圖所示,使用鍵盤上下鍵選中智能煤氣檢測系統
hb build // 如果需要全量編譯,可以添加-f 選項
2. 燒錄
編譯好的代碼在
打開smart_co_detection文件可以看到編譯好的代碼
通過RaiDrive工具將Linux上的文件映射到windows上再通過HiBurn將Hi3861_wifiiot_app_allinone.bin燒錄到開發板,將開發板通過Type-c鏈接到電腦上
鼠標右擊此電腦點擊設備管理器點擊端口查看開發板連接到電腦上的端口。
打開HiBurn設置端口將COM設置為上一步查看的端口
點擊Setting設置參數將Baud設置為115200
點擊Select file選擇編譯產出的代碼
將Hi3861_wifiiot_app_allinone.bin燒錄到開發板點擊Auto burn點擊Connect后點擊開發板的reset按鍵等待燒錄完成即可
搭建數字管家服務
1.準備部署環境
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.申請華為云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
登錄華為云→點擊控制臺→我的憑證→訪問密鑰→新增訪問密鑰
3. 獲取APPID
設備接入→資源空間→APPID
4. 創建產品
創建好產品后點擊查看再點擊自定義模型
具體配置內容查看
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. 添加規則
6. 預置AMQP
7. 打開數字管家修改配置文件
serverdistschedule-coresrcmain esourcesapplication-local.properties
8. 添加sql文件serverdistschedule-daosrcmain esourcesdbmigration
在末尾添加(數據庫V1__CreateTables)添加內容
INSERT INTO device_type (`name`, `name_en`, `service_id`, `product_id`, `category`)
values (‘一氧化碳氣體報警器’, ‘coSensation’, ‘SmartCoSensation’, ‘61de758bc7fb24029b0be6f0’, 3);
9. 編譯
進入目錄
cd knowledge_demo_smart_home/Server
mvn clean package -Dmaven.test.skip=true
可執行的jar包在
knowledge_demo_smart_home/Server/distschedule-core/target/distschedule-core-1.0.0-SNAPSHOT.jar
10. 啟動服務
通過環境變量激活local profile
export SPRING_PROFILES_ACTIVE=local # 激活local
啟動命令(根據自己虛擬機上的目錄修改,使用絕對路徑)
java -jar /opt/distschedule-core-1.0.0-SNAPSHOT.jar --spring.profiles.active=local
11. 查看是否成功
成功訪問下面網址即可
http://127.0.0.1:8080/distschedule-api/swagger-ui/index.html
數字管家應用程序真機運行,碰一碰無感配網
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
總結
該項目主題來自OpenHarmony開源開發者成長計劃。整個過程還是比較復雜,需要設備端代碼的編寫,FA側代碼的實現,華為云配置,以及數字管家服務端搭建。在這個過程中我接觸到很多新的知識點,例如碰一碰快速配置網絡,真機上的運行,以及體驗到華為云相關操作等等。OpenHarmony未來仍需要許多開發者來共建,讓我們為推進OpenHarmony的發展一起努力加油!
評論
查看更多