成长计划校园极客秀 玩转OpenHarmony开发智能煤气检测系统

成长计划校园极客秀 玩转OpenHarmony开发智能煤气检测系统

成果展示1.整体展示2.碰一碰无感配网3.报警简介目前,煤气泄漏给居民生活带来伤害的事情仍时有发生,但我相信万物互联能够有效避免这种伤害,于是我基于OpenHarmony设计了一款煤气检测装置。该检测系统能够实时监测环境中烟雾浓度,当一氧化碳浓度超标时,能够及时向用户发出警报。通过数字管家碰一碰配网络后,配合数字管家应用,用户可以远程配置智能煤气检测系统的报警阈值,远程接收智能煤气检测系统报警信息。从而实现对危险及时报警,及时处理,守护居家安全。1. 交互方式如下所示,智能煤气检测系统整体方案框架可以分为:智能煤气检测系统设备、数字管家应用、云平台三部分。智能煤气检测系统设备端按照MQTT协议与华为IOT物联网平台进行通信。当智能煤气系统监测现场一氧化碳浓度发生变化时,设备端上报数据至云平台最终同步到数字管家,当一氧化碳浓度超过阈值时,则会进行报警,并将报警信息也上报至云平台最终同步到数字管家;当用户通过数字管家调整报警系统阈值时,命令数据先发送至云平台,再由云平台下发至设备侧。2.下图是更详细的框架图所需材料1. 基础环境由Windows 工作台和Linux 编译服务器组成。Windows 工作台可以通过samba 服务或ssh 方式访问Linux编译服务器。其中Windows 工作台用来烧录和代码编辑,Linux编译服务器用来编译OpenHarmony代码,为了简化步骤,Linux编译服务器推荐安装Ubuntu20.04。还需下载VMware Workstation 16 PlayerMobaXtermRaiDriveHiBurn链接:%E5%8D%81%E5%88%86%E9%92%9F%E4%B8%8A%E6%89%8B.md2. 硬件准备一氧化碳气体传感器(MQ7)小熊派bearpi_hm_nano开发底板预装HarmonyOS手机一台我们使用小熊派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.实物图片配置环境下载源码环境配置安装和配置Python1. 打开Linux终端。2. 输入如下命令,查看python版本号,需要使用python3.7以上版本undefined否则参考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.mdpython3 –version 3. 安装并升级Python包管理工具(pip3)。sudo apt-get install python3-setuptools python3-pip -ysudo pip3 install –upgrade pip 安装hb1. 运行如下命令安装hb python3 -m pip install –user ohos-build2. 设置环境变量 vim ~/.bashrc 将以下命令拷贝到.bashrc文件的最后一行,保存并退出。 export PATH=~/.local/bin:$PATH 执行如下命令更新环境变量。 source ~/.bashrc 3. 执行"hb -h",有打印以下信息即表示安装成功. usage: hb OHOS build system positional arguments: {buildundefinedsetundefinedenvundefinedclean} build Build source code set OHOS build settings env Show OHOS build env clean Clean output optional arguments: -hundefined –help show this help message and exit 配置3861开发环境准备在Linux编译服务器上搭建好基础开发环境后,需要安装OpenHarmony 编译Hi3861 平台特有的开发环境。安装编译依赖基础软件sudo apt-get install -y build-essential gcc g++ make zlib* libffi-dev安装Scons1. 打开Linux 终端。2. 运行如下命令,安装Scons安装包。 python3 -m pip install scons3. 运行如下命令,查看是否安装成功。如果安装成功,查询结果下图所示。 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.gz3. 设置环境变量将压缩包解压到根目录tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~设置环境变量。vim ~/.bashrc将以下命令拷贝到.bashrc文件的最后一行,保存并退出。export PATH=~/gcc_riscv32/bin:$PATH生效环境变量。source ~/.bashrc4. 在命令行中输入如下命令,如果能正确显示编译器版本号,表明编译器安装成功。 riscv32-unknown-elf-gcc -v代码下载&编译准备1.码云工具下载curl > /usr/local/bin/repochmod a+x /usr/local/bin/repopip3 install -i requests2.代码下载OpenHarmony代码下载特别注意:请下载OpenHarmony 1.0.1 版本,后续会更新支持OpenHarmony其他版本repo init -u git@gitee.com:openharmony/manifest.git -bOpenHarmony_1.0.1_release –no-repo-verifyrepo sync -crepo forall -c 'git lfs pull'设备侧代码下载具体仓库地址:下载方式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.4Mysql5.7https://blog.csdn.net/goog_man/article/details/108696063RabbitMQ:https://blog.csdn.net/weixin_33824363/article/details/92254998Maven3.6.3:ubuntu18.04安装Maven教程_也耶的博客-CSDN博客_ubuntu18安装mavenJdk8 :sudo apt-get install openjdk-8-jdk2.申请华为云AK/Skhttps://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设备接入→资源空间→APPID4. 创建产品创建好产品后点击查看再点击自定义模型具体配置内容查看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.md5. 添加规则6. 预置AMQP7. 打开数字管家修改配置文件server\distschedule-core\src\main\resources\application-local.properties8. 添加sql文件server\distschedule-dao\src\main\resources\db\migration在末尾添加(数据库V1__CreateTables)添加内容INSERT INTO device_type (`name`undefined `name_en`undefined `service_id`undefined `product_id`undefined `category`)values ('一氧化碳气体报警器'undefined 'coSensation'undefined 'SmartCoSensation'undefined '61de758bc7fb24029b0be6f0'undefined 3);9. 编译进入目录cd knowledge_demo_smart_home/Servermvn clean package -Dmaven.test.skip=true可执行的jar包在knowledge_demo_smart_home/Server/distschedule-core/target/distschedule-core-1.0.0-SNAPSHOT.jar10. 启动服务通过环境变量激活local profileexport SPRING_PROFILES_ACTIVE=local # 激活local启动命令(根据自己虚拟机上的目录修改,使用绝对路径)java -jar /opt/distschedule-core-1.0.0-SNAPSHOT.jar –spring.profiles.active=local11. 查看是否成功成功访问下面网址即可数字管家应用程序真机运行,碰一碰无感配网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的发展一起努力加油!OpenHarmony开源地址:该项目开源地址:tree/master/dev/docs/smart_co_detection

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Proudly powered by WordPress | Theme: HoneyWaves by SpiceThemes