鸿蒙南向开发案例:【智能养花机】
人阅读 2024-04-03 15:44:33
样例简介
智能养花机通过感知花卉、盆栽等植宠生长环境的温度、湿度信息,适时为它们补充水分。在连接网络后,配合数字管家应用,用户可远程进行浇水操作。用户还可在应用中设定日程,有计划的按日、按周进行浇水。在日程中用户可添加其它智能设备(例如:智能窗帘),一起呵护植宠的成长。
运行效果
当设备应用启动之后,操作效果如下:
样例原理
如上图所示,智能养花系统整体方案框架可以分为:智能养花系统设备、数字管家应用、云平台三部分。智能养花系统设备端按照MQTT协议与华为云IoT平台进行通信。当温度、湿度发生变化时,设备端上报变化数据至云平台最终同步到数字管家;当用户在应用侧进行操作时,命令数据先发送至云平台,再由云平台下发至设备侧。
工程版本
- 系统版本/API版本:OpenHarmony 1.0.1 release
- IDE版本:DevEco Device Tool Release 3.0.0.401
快速上手
准备硬件环境
- BearPi-HM Nano套件一套
- 预装HarmonyOS手机一台
注:HarmonyOS是华为基于开源项目OpenHarmony开发的面向多种全场景智能设备的商用版本
准备开发环境
开发环境安装配置参照文档:[[DevEco Device Tool 环境搭建
]
#### 准备工程
本用例采DevEco Device Tool工具进行开发,当配置完开发环境后,我们可以在IDE上进行工程的配置下载。
* 打开IDE,连接远程linux服务器:参考[`[DevEco Device Tool 环境搭建`](https://gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md)

* 点击左下角DevEco插件图标,然后点击左边框出现的主页,弹出主页界面,主页中选择新建项目,如下图:

* 配置下载工程

如上图所示,点击OpenHarmony源码下的搜索框,设置工程名称后,点击确定即可进行样例工程的下载。搜索框下载操作如下:

当右下角显示正在下载OpenHarmony镜像时,耐心等待下载完成即可

#### 准备工具链
* 在Projects中,点击Settings按钮,进入配置界面。
* 在toolchain页签中,DevEco Device Tool会自动检测依赖的编译工具链是否完备,如果提示部分工具缺失,可点击SetUp按钮,自动安装所需工具链。
* 如果出现安装pip组件失败,进行修改,完成尝试重新安装。
工具链自动安装完成后如下图所示。

#### 编译
样例代码下载完成后,DevEco Device Tool会重新要求连接远程服务器,输入密码连接后会进入对应的代码编辑界面,此时点击左下角DevEco插件图标,选择PROJECT TASKS可以查看到对应的样例工程,点击build选项进行编译,并可在终端查看对应的编译结果。

固件生成在对应工程目录的out/bearpi_hm_nano/smart_flower_machine/目录下:

#### 烧录/安装
编译完成后可以通过DevEco Device Tool进行烧录,在烧录前需要做一些烧录的配置:
##### 配置准备
在配置烧录前需要先查看DevEco Device Tool是否可以正常识别串口。
* 点击左边栏"REMOTE DEVELOPMENT",找到 并点击” Local PC “ 选项。
* 查看 Local PC右边图标
如若图标为![方型图标],则代表DevEco Device Tool已连接本地,可以正常识别串口。
如若图标为![箭头图标],则代表DevEco Device Tool未连接本地,不能识别串口,此时需要点击该绿色图标进行连接,连接成功后图标会变为![方型图标]

* 点击主页,在主页选择对应工程,点击配置工程进入到配置页面

##### [](https://gitee.com/openharmony-sig/knowledge_demo_smart_home/blob/master/docs/smart_flower_machine/README.md#配置串口)配置串口
打开工程配置后选择板级配置,即bearpi_hm_nano,然后配置烧录选项的upload_port和upload_protocol,upload_port选择开发板对应的串口号,upload_protocol默认选择hiburn-serial,最后点击右上角的保存按钮进行保存。

##### 烧录
当配置完串口以及固件后,直接点击左边栏工程管理中的upload即可,此时下方终端会出现对应烧录的信息,当终端出现BootromDownloadBoot字样,复位开发板即可。

#### 操作体验
##### 设备配网
* 在设备上电前需准备好安装了数字管家应用的HarmonyOS手机,, 并在设置中开启手机的NFC功能;
* 写设备NFC标签;
* 烧录完成后,上电。开发者在观察开发板上状态LED灯以8Hz的频率闪烁时,将手机上半部靠近开发板NFC标签处;
* 无需任何操作手机将自动拉起数字管家应用并进入配网状态,配网过程中无需输入热点账号密码。
无感配网操作如下图所示。

##### 设备控制
配网完成后,数字管家应用会自动进入智能养花机的控制页面。通过控制页面可以实现远程浇花,查看土壤湿度、环境温度等操作。 使用数字管家操作设备如下图所示:

##### 添加日程
使用者可以进入数字管家的日程管理页面中添加智能养花机的相关日程,具体步骤如下:
* 在输入日程名称后,选择相关通知成员和智能养花机设备;
* 选择期待执行的智能养花机操作,例如:在特定时刻进行远程浇花;
* 设置日程的重复日期,例如:可以设置单次日程(仅在当天执行),或者重复日程(设置日程在设定的 星期几重复执行) 添加日程效果如下所示:

审核编辑 黄宇