基于 HarmonyOS Next 与华为云的智能农业全栈管理平台
集成华为云 AGConnect CloudDB、IoTDA 物联网平台和智谱 AI 大语言模型
禾寻是一款面向现代农业的全栈智慧管理系统,基于华为鸿蒙操作系统(HarmonyOS Next)开发,深度集成华为云 AGConnect CloudDB 云数据库、IoTDA 物联网平台和智谱 AI 大语言模型。系统通过实时环境监测、智能设备控制、作物全生命周期管理和 AI 智能对话,为农业生产提供科学化、智能化的数字解决方案。
- 🌡️ 实时监控:24/7 环境参数监测(温度、湿度、光照、土壤湿度)
- 🤖 智能控制:基于作物生长阈值的自动化设备控制系统
- 📊 数据驱动:云端数据存储与分析,历史数据可视化展示
- 🌱 全程管理:从播种到收获的作物全生命周期跟踪
- 🤖 AI 智能助手:集成智谱 AI GLM-4 大语言模型,支持智能对话
- 📱 多端适配:支持手机、平板、2合1设备
- 智慧温室:精准控制温室环境,优化作物生长条件
- 设施农业:自动化设施管理,降低人工成本
- 农场监控:远程实时监控,及时响应异常情况
- 农业科研:数据采集与分析,支持科研实验
graph TB
subgraph Client[客户端层 HarmonyOS]
UI[ArkUI 界面层]
Business[业务逻辑层]
Network[网络通信层]
end
subgraph Cloud[华为云服务层]
CloudDB[AGConnect CloudDB]
IoTDA[IoTDA 设备管理]
IAM[IAM 身份认证]
end
subgraph AIService[AI服务层]
ZhipuAI[智谱AI GLM-4]
end
subgraph Device[物联网设备层]
Sensor[传感器]
Actuator[执行器]
end
UI --> Business --> Network
Network --> CloudDB
Network --> IoTDA
Network --> IAM
Business --> ZhipuAI
IoTDA --> Device
style Client fill:#e3f2fd
style Cloud fill:#f3e5f5
style AIService fill:#e1bee7
style Device fill:#fff3e0
- 表示层:ArkUI 声明式编程,响应式数据绑定
- 业务逻辑层:自动控制管理、数据处理、业务规则
- 数据访问层:CloudDB 云端存储、本地缓存
- 云服务层:设备管理、数据存储、身份认证、AI 服务
- 设备接入层:传感器网络、执行器控制
| 技术类别 | 技术名称 | 版本 | 说明 |
|---|---|---|---|
| 操作系统 | HarmonyOS Next | 6.0.0+ | 华为鸿蒙操作系统 |
| 开发语言 | ArkTS | 5.0+ | 类型安全的声明式编程语言 |
| UI 框架 | ArkUI | 3.0+ | 声明式 UI 开发框架 |
| 构建工具 | Hvigor | 4.0+ | HarmonyOS 项目构建工具 |
| 云数据库 | AGConnect CloudDB | - | 华为云分布式数据库 |
| 物联网 | IoTDA | - | 华为云物联网平台 |
| AI 服务 | 智谱 AI (GLM-4) | 4.0 | 大语言模型/智能对话 |
| 图表库 | @mcui/mccharts | 2.8.9 | 数据可视化组件 |
// 华为云 AGConnect CloudDB 配置
{
zoneName: "smartFarm",
routePolicy: AGCRoutePolicy.CHINA,
objectTypes: ["sensor_data", "crop"]
}
// 华为云 IoTDA 配置
{
endpoint: "029617702d.st1.iotda-app.cn-north-4.myhuaweicloud.com",
projectId: "e7a2801468bc49a4ae72c59e20a2e6bc",
deviceId: "68f0b0a84609c465bf2cd91a_znjj",
serviceId: "smartFarm"
}
// 智谱 AI 开放平台配置
{
apiKey: "your_zhipu_api_key",
model: "glm-4",
endpoint: "https://open.bigmodel.cn/api/paas/v4/"
}集成智谱 AI GLM-4 大语言模型,提供强大的 AI 能力:
核心能力:
- 🤖 智能农业咨询:作物种植指导、病虫害诊断
- 📊 数据分析辅助:环境数据分析和趋势预测
- 📚 知识库问答:农业知识智能检索
技术特点:
- 千亿级参数,强大的理解能力
- 针对中文农业术语深度优化
- 毫秒级响应,用户体验流畅
- 支持流式对话和多轮对话
graph LR
A[实时监控] --> B[设备控制]
A --> C[数据统计]
B --> D[自动控制]
E[作物管理] --> C
F[AI助手] --> B
F --> E
style A fill:#e3f2fd
style B fill:#f3e5f5
style C fill:#fff3e0
style D fill:#ffccbc
style E fill:#e8f5e9
style F fill:#e1bee7
核心功能:
- ✅ 环境参数实时显示:温度、湿度、光照强度、土壤湿度
- ✅ 设备状态展示:照明、通风、灌溉系统状态
- ✅ WebSocket 实时数据推送
- ✅ 土壤湿度自动计算(基于温湿度和光照的经验公式)
自动控制策略:
| 参数 | 阈值范围 | 控制动作 |
|---|---|---|
| 温度 | < 12.5°C | 关闭风扇(保温) |
| 温度 | > 28°C | 开启风扇(降温) |
| 湿度 | < 65% | 开启灌溉系统 |
| 湿度 | > 82.5% | 开启风扇(除湿) |
| 光照 | < 1500 Lux | 开启照明系统 |
| 光照 | > 1800 Lux | 关闭照明系统 |
技术实现:
- 5秒定时检查环境参数
- 手动控制后5分钟保护期
- 多参数协同控制策略
- 温度、湿度、光照历史数据图表
- 基于 @mcui/mccharts 的交互式图表
- 实时/历史数据模式切换
- 云端数据查询和展示
支持的作物品种(9种): 黄瓜、西红柿、茄子、豆角、辣椒、西葫芦、丝瓜、菠菜、芹菜
管理功能:
- 作物信息管理(种植日期、生长阶段、健康状态)
- 生长监控(株高、叶片数、产量预测)
- 筛选与排序(按健康状态、分类、生长阶段)
- 环境数据关联分析
智能对话示例:
用户:"黄瓜叶子发黄是什么原因?"
AI: "黄瓜叶子发黄可能有以下原因:
1. 缺氮:老叶先黄,建议施用尿素
2. 缺铁:新叶发黄,可喷施硫酸亚铁
3. 浇水过多:根系缺氧,需控水通风
根据环境数据,建议检查土壤湿度。"
核心功能:
- 智能对话(基于 GLM-4)
- 智能设备控制
- 农业知识问答
- 任务规划生成
⚠️ 预警系统:环境异常预警、设备故障提醒- 📝 农事管理:播种、施肥、浇水、病虫害防治记录
- 🔧 设备管理:设备列表、状态监控、维护记录
- 📚 知识库:种植技术指南、病虫害防治知识
- 👤 个人中心:用户信息管理、系统设置
采用 华为 AGConnect CloudDB 作为云端数据库,支持离线优先、实时同步。
erDiagram
sensor_data {
int id PK
double temperature
double humidity
double light_intensity
string rec_time
}
crop {
string cropName PK
string plantDate
string harvestDate
double area
int current
int total
string height
string health
string yield
}
sensor_data ||--o{ crop : "环境数据影响"
| 字段名 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | IntAutoIncrement | PK | 主键,自增ID |
| temperature | Double | NOT NULL | 温度(°C) |
| humidity | Double | NOT NULL | 空气湿度(%) |
| light_intensity | Double | NOT NULL | 光照强度(Lux) |
| rec_time | String | - | 记录时间 |
索引:时间索引、温度索引
| 字段名 | 类型 | 约束 | 说明 |
|---|---|---|---|
| cropName | String | PK | 作物名称(主键) |
| plantDate | String | NOT NULL | 种植日期 |
| harvestDate | String | NOT NULL | 预计收获日期 |
| area | Double | NOT NULL | 种植面积(亩) |
| current | Integer | NOT NULL | 当前生长天数 |
| total | Integer | NOT NULL | 总生长周期 |
| height | String | NOT NULL | 株高(cm) |
| health | String | NOT NULL | 健康状态 |
| yield | String | NOT NULL | 预计产量(kg) |
export class CloudDBService {
// 初始化云数据库
public static async init(context: any): Promise<boolean>
// 查询传感器数据
public static async queryCrop(rec_time?: string): Promise<Array<sensor_data>>
// 插入单条数据
public static async insertCrop(cropData: sensor_data): Promise<boolean>
// 批量插入数据
public static async batchInsertCrop(cropList: Array<sensor_data>): Promise<boolean>
}smartFarm_db/
├── AppScope/ # 应用全局配置
│ ├── app.json5 # 应用基本信息
│ └── resources/ # 全局资源
│
├── entry/ # 主模块
│ ├── src/main/
│ │ ├── ets/
│ │ │ ├── common/ # 公共模块
│ │ │ │ ├── AutoControlManager.ets # 自动控制管理器
│ │ │ │ └── CommonConstants.ets # 全局常量
│ │ │ ├── components/ # UI 组件
│ │ │ │ ├── ControlPanel.ets # 设备控制面板
│ │ │ │ └── ChartDrawer.ets # 图表组件
│ │ │ ├── model/ # 数据模型
│ │ │ │ ├── SmartFarm.ets # 环境数据模型
│ │ │ │ ├── CropData.ets # 作物数据模型
│ │ │ │ ├── app-schema.json # CloudDB 模式
│ │ │ │ ├── crop.js # 作物实体
│ │ │ │ └── sensor_data.js # 传感器实体
│ │ │ ├── service/ # 业务服务
│ │ │ │ └── CloudDBService.ts # 云数据库服务
│ │ │ ├── modelView/ # 视图模型层
│ │ │ │ ├── HomePage.ets # 首页视图
│ │ │ │ ├── TotalPage.ets # 数据统计视图
│ │ │ │ ├── ListPage.ets # 作物列表视图
│ │ │ │ ├── MyPage.ets # 个人中心视图
│ │ │ │ └── AispeakPage.ets # AI 对话视图
│ │ │ ├── pages/ # 页面路由
│ │ │ │ ├── Index.ets # 登录页
│ │ │ │ ├── MainPage.ets # 主页框架
│ │ │ │ └── ... # 其他页面
│ │ │ └── entryability/ # 应用能力
│ │ └── resources/ # 资源文件
│ └── oh-package.json5 # 模块依赖
│
├── oh-package.json5 # 项目依赖
├── build-profile.json5 # 构建配置
└── README.md # 项目文档
| 工具 | 版本要求 |
|---|---|
| DevEco Studio | 4.0+ |
| HarmonyOS SDK | 6.0.0+ (API 20+) |
| Node.js | 16.0+ |
| ohpm | 最新版 |
git clone https://github.com/yourusername/smartFarm_db.git
cd smartFarm_dbohpm install编辑 entry/src/main/ets/common/CommonConstants.ets:
export class CommonConstants {
static readonly IAM_DOMAIN = 'your_domain';
static readonly IAM_USER = 'your_user';
static readonly IAM_PASSWORD = 'your_password';
static readonly REGION = "cn-north-4";
static readonly ENDPOINT = "your_endpoint";
static readonly project_id = "your_project_id";
static readonly device_id = "your_device_id";
}在对应的服务文件中添加智谱 AI API Key:
const ZHIPU_AI_CONFIG = {
apiKey: "your_zhipu_api_key",
model: "glm-4",
endpoint: "https://open.bigmodel.cn/api/paas/v4/"
};# 构建 HAP 包
hvigor assembleHap --mode module -p module=entry@default
# 或在 DevEco Studio 中直接运行
# 点击运行按钮或按 Shift+F10- WebSocket 服务器:编辑
MainPage.ets中的WS_URL - 应用签名:在 DevEco Studio 中配置自动签名或手动签名
- 权限配置:已在
module.json5中配置ohos.permission.INTERNET
flowchart TD
Start([环境数据更新]) --> Check{自动控制启用?}
Check -->|否| End1([结束])
Check -->|是| GetData[获取环境参数]
GetData --> TempCheck{温度检查}
TempCheck -->|异常| Control1[温度控制]
TempCheck -->|正常| HumCheck{湿度检查}
HumCheck -->|异常| Control2[湿度控制]
HumCheck -->|正常| LightCheck{光照检查}
LightCheck -->|异常| Control3[光照控制]
Control1 --> Execute[执行控制]
Control2 --> Execute
Control3 --> Execute
Execute --> End2([完成])
工作流程:
- WebSocket 接收实时环境数据
- 触发自动控制检查(5秒间隔)
- 根据阈值判断是否需要控制
- 通过 IoTDA API 下发控制指令
- 更新设备状态并反馈
graph LR
A[本地数据] <-->|双向同步| B[CloudDB]
A --> C[离线优先]
C --> D[后台同步]
D --> E[冲突解决]
style A fill:#e3f2fd
style B fill:#f3e5f5
style C fill:#fff3e0
同步策略:
- 离线优先:本地数据优先展示
- 后台同步:定期同步云端数据
- 冲突解决:时间戳比对,最后写入优先
feat(module): 添加新功能
fix(module): 修复bug
docs: 更新文档
style: 代码格式调整
refactor: 代码重构
test: 添加测试
chore: 构建配置更新graph LR
A[main] --> B[develop]
B --> C[feature/xxx]
B --> D[bugfix/xxx]
C -->|合并| B
D -->|合并| B
B -->|发布| A
A --> E[hotfix/xxx]
E -->|修复| A
style A fill:#ff6b6b
style B fill:#4ecdc4
style C fill:#95e1d3
style E fill:#ffa07a
| 阶段 | 时间 | 核心功能 | 状态 |
|---|---|---|---|
| 第一阶段 | 2024.01-02 | 基础功能(监控/控制/作物管理) | ✅ 已完成 |
| 第二阶段 | 2024.03-04 | 智能化(自动控制/AI对话/预警) | 🚀 进行中 |
| 第三阶段 | 2024.05-06 | 数据分析(可视化增强/预测模型) | 📅 计划中 |
| 第四阶段 | 2024.07-09 | 生态扩展(供应链/社区/国际化) | 📅 计划中 |
感谢以下开源项目和服务的支持:
- HarmonyOS:华为鸿蒙操作系统
- 华为云 AGConnect:云服务套件
- 华为云 IoTDA:物联网设备接入服务
- 智谱 AI:GLM 大语言模型服务
- @mcui/mccharts:数据可视化图表库
本项目采用 MIT License 开源许可证。
- 项目主页:GitHub Repository
- 问题反馈:Issues
- 电子邮件:support@smartfarm.com