首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐
2025年6月5日 星期四 11:37pm

OpenHarmony鸿蒙开发( Beta5.0)智能煤气检测系统开发实践

  • 25-03-03 07:02
  • 2470
  • 9344
blog.csdn.net

样例简介

智能煤气检测系统通过实时监测环境中烟雾浓度,当一氧化碳浓度超标时,及时向用户发出警报。在连接网络后,配合数字管家应用,用户可以远程配置智能煤气检测系统的报警阈值,远程接收智能煤气检测系统报警信息。实现对危险及时报警,及时处理,守护居家安全。

运行效果

样例原理

如上图所示,智能煤气检测系统整体方案框架可以分为:智能煤气检测系统设备、数字管家应用、云平台三部分。智能煤气检测系统设备端按照MQTT协议与华为IOT物联网平台进行通信。当智能煤气系统监测现场一氧化碳浓度发生变化时,设备端上报数据至云平台最终同步到数字管家,当一氧化碳浓度超过阈值时,则会进行报警,并将报警信息也上报至云平台最终同步到数字管家;当用户通过数字管家调整报警系统阈值时,命令数据先发送至云平台,再由云平台下发至设备侧。关于智能设备接入华为云IoT平台的详细细节可以参考 连接IOT云平台指南;智能设备同数字管家应用之间的设备模型定义可以参考profile 。

工程版本
  • 系统版本/API版本:OpenHarmony 1.0.1 release

  • hb版本:0.2.0

  • 工具链版本:gcc_riscv32-linux-7.3.0

快速上手

准备硬件环境
  • 一氧化碳气体传感器(MQ7)

  • 小熊派bearpi_hm_nano开发底板

  • 预装HarmonyOS手机一台

    注:HarmonyOS是华为基于开源项目OpenHarmony开发的面向多种全场景智能设备的商用版本

小熊派nano 通用底板与一氧化碳气体传感器连接具体细节如下:

小熊派nano 通用底板 V3.3 Pin 接一氧化碳气体传感器 VCC Pin;

小熊派nano 通用底板 GND Pin 接一氧化碳气体传感器 GND Pin;

小熊派nano 通用底板 GPIO_13 Pin 接一氧化碳气体传感器 AO Pin;

准备开发环境
安装必备软件

开发基础环境由windows 工作台和Linux 编译服务器组成。windows 工作台可以通过samba 服务或ssh 方式访问Linux编译服务器。其中windows 工作台用来烧录和代码编辑,Linux编译服务器用来编译OpenHarmony代码,为了简化步骤,Linux编译服务器推荐安装Ubuntu20.04。

安装和配置Python
  • 打开Linux终端。

  • 输入如下命令,查看python版本号,需要使用python3.7以上版本。

python3 --version
  • 安装并升级Python包管理工具(pip3)。
  1. sudo apt-get install python3-setuptools python3-pip -y
  2. sudo pip3 install --upgrade pip
安装hb
  • 运行如下命令安装hb
python3 -m pip install build/lite
  • 设置环境变量
vim ~/.bashrc

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

export PATH=~/.local/bin:PATH

执行如下命令更新环境变量。

source ~/.bashrc
  • 执行"hb -h",有打印以下信息即表示安装成功.
  1. 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
安装交叉编译环境

在Linux编译服务器上搭建好基础开发环境后,需要安装OpenHarmony 编译Hi3861 平台特有的开发环境。

安装编译依赖基础软件
sudo apt-get install -y build-essential gcc g++ make zlib* libffi-dev
安装Scons
  • 打开Linux 终端。

  • 运行如下命令,安装Scons安装包。

python3 -m pip install scons
  • 运行如下命令,查看是否安装成功。如果安装成功,查询结果下图所示。
scons -v

下图 Scons安装成功界面,版本要求3.0.4以上

5

安装python模块
sudo pip3 install setuptools kconfiglib pycryptodome ecdsa six --upgrade --ignore-installed six
安装gcc_riscv32交叉工具链
  • 打开Linux终端。
  • 下载gcc_riscv32镜像 下载链接。
  • 交叉工具链加入系统环境 将压缩包解压到根目录
tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~

设置环境变量。

vim ~/.bashrc

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

export PATH=~/gcc_riscv32/bin:PATH

执行如下命令更新环境变量。

source ~/.bashrc
  • 执行"hb -h",有打印以下信息即表示安装成功.
  1. 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
安装交叉编译环境

在Linux编译服务器上搭建好基础开发环境后,需要安装OpenHarmony 编译Hi3861 平台特有的开发环境。

安装编译依赖基础软件
sudo apt-get install -y build-essential gcc g++ make zlib* libffi-dev
安装Scons
  • 打开Linux 终端。

  • 运行如下命令,安装Scons安装包。

python3 -m pip install scons
  • 运行如下命令,查看是否安装成功。如果安装成功,查询结果下图所示。
scons -v

下图 Scons安装成功界面,版本要求3.0.4以上

5

安装python模块
sudo pip3 install setuptools kconfiglib pycryptodome ecdsa six --upgrade --ignore-installed six
安装gcc_riscv32交叉工具链
  • 打开Linux终端。
  • 下载gcc_riscv32镜像 下载链接。
  • 交叉工具链加入系统环境 将压缩包解压到根目录
tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~

设置环境变量。

vim ~/.bashrc

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

export PATH=~/gcc_riscv32/bin:PATH

生效环境变量。

source ~/.bashrc
  • 在命令行中输入如下命令,如果能正确显示编译器版本号,表明编译器安装成功。
riscv32-unknown-elf-gcc -v
准备工程

本用例采用repo的方式从码云官仓下载系统系统源码以及开发板适配代码,使用git从gitee的sig仓库拉取设备应用代码。

配置git
  • 提前注册准备码云gitee账号。
  • git工具下载安装
  1. sudo apt install git
  2. sudo apt install git-lfs
  • 生成/添加SSH密钥:生成密钥 使用gitee账号绑定的邮箱生成密钥对
ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"
  • 查看生成的密钥
cat ~/.ssh/id_ed25519.pub
  • 复制生成后的 ssh key,返回gitee个人主页,通过主页 「个人设置」->「安全设置」->「SSH 公钥」 ,将生成的“SSH密钥”添加到仓库中。
  • 配置git用户信息
  1. git config --global user.name "yourname"
  2. git config --global user.email "your-email-address"
  3. git config --global credential.helper store
准备repo
  1. curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo
  2. chmod a+x /usr/local/bin/repo
  3. pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
准备系统源码

特别注意:请下载OpenHarmony 1.0.1 版本,后续会更新支持OpenHarmony其他版本

  1. mkdir ~/OpenHarmony1.01
  2. cd ~/OpenHarmony1.01
  3. repo init -u git@gitee.com:openharmony/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify
  4. repo sync -c
  5. repo forall -c 'git lfs pull'
准备开发板适配代码

本样例的代码在本版本系统下还未上主干,需要clone本仓库并将dev/device/bearpi目录拷贝到系统的device目录下面

  1. git clone https://gitee.com/openharmony-sig/knowledge_demo_smart_home.git --depth=1
  2. cp -rfa ~/knowledge_demo_smart_home/dev/device/bearpi ~/OpenHarmony1.01/device/
准备设备侧应用代码

设备侧应用代码需要拷贝本仓库的dev/team_x目录到系统的vendor目录下面,然后将本仓库的三方库拷贝到系统的三方库目录下面

  1. cp -rfa ~/knowledge_demo_smart_home/dev/device/bearpi ~/OpenHarmony1.01/device/
  2. cp -rfa ~/knowledge_demo_smart_home/dev/team_x ~/OpenHarmony1.01/vendor/
  3. cp -rfa ~/knowledge_demo_smart_home/dev/third_party/iot_link ~/OpenHarmony1.01/third_party/
工程效果

整合并修改完成后的目录结构如下图:

5

编译

进入到OpenHarmony系统源码根目录下,输入hb set命令即可看到我们的应用,选择并确认即可。

hb set  // 如果是第一次编译,Input code path 命令行中键入"./" 指定OpenHarmony工程编译根目录后 回车。

如下图所示,使用键盘上下键选中智能煤气检测系统。

然后输入hb build -f命令做全量编译

hb build -f

编译成功后会生成固件到out/bearpi/smart_co_detection/Hi3861_wifiiot_app_allinone.bin

烧录/安装

本开发样例属于轻设备应用样例,其安装需要和系统固件一起烧录到SOC中。本样例烧录方式采用Hi3861的Hiburn烧录工具。使用Hiburn将生成的固件out/bearpi/smart_co_detection/Hi3861_wifiiot_app_allinone.bin烧录到Hi3861即可,如下图所示:

详细的代码编译及固件烧录步骤,请参考 编译和烧录指南

操作体验
设备配网
  • 在设备上电前需准备好安装了数字管家应用的HarmonyOS手机,并在设置中开启手机的NFC功能;

  • 写设备NFC标签,详细操作见设备NFC标签指导文档;

  • 烧录完成后,上电。开发者在观察开发板上状态LED灯以8Hz的频率闪烁时,将手机上半部靠近开发板NFC标签处;

  • 无需任何操作手机将自动拉起数字管家应用并进入配网状态,配网过程中无需输入热点账号密码。 具体无感配网相关流程参考 无感配网指南

设备控制

配网完成后,数字管家应用会自动进入智能煤气检测系统的控制页面,通过控制页面可以实现对智能煤气检测系统报警浓度阈值的控制。

一氧化碳浓度超标告警

当检测到的一氧化碳浓度数值,超过预先设定的阈值时,会通知数字管家应用告警,并且告警消息还会推送同一家庭账号的所有成员。

鸿蒙NEXT全套学习资料
微信名片
注:本文转载自blog.csdn.net的让开,我要吃人了的文章"https://blog.csdn.net/weixin_55362248/article/details/142098911"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top