1. 项目概述
这个基于STM32的WiFi远程可视化农业灌溉系统是我去年指导的一个本科毕业设计项目,经过三个月的开发和优化,最终实现了稳定可靠的远程监控和自动化灌溉功能。系统采用模块化设计思路,核心控制器选用STM32F103RCT6,通过各类传感器采集环境数据,结合WiFi模块实现远程监控,特别适合小型温室或家庭园艺场景。
项目最大的亮点在于将传统农业灌溉与现代物联网技术相结合,通过可视化界面实现了对灌溉系统的远程精细控制。
系统主要解决了三个核心问题:
- 环境参数实时监测:集成温湿度、光照和土壤湿度传感器,实现全天候数据采集
- 智能灌溉决策:根据土壤湿度阈值自动控制水泵启停
- 远程可视化监控:通过WiFi将数据传输到PC端,提供直观的数据展示和控制界面
2. 硬件系统设计
2.1 主控制器选型
选择STM32F103RCT6作为主控芯片主要基于以下考虑:
- 72MHz主频满足实时性要求
- 256KB Flash和48KB SRAM足够存储程序和处理数据
- 丰富的GPIO和外设接口(5个USART、3个SPI、2个I2C)
- 成本适中,开发资源丰富
2.2 传感器模块
系统集成了三类关键传感器:
-
DHT11温湿度传感器
- 测量范围:湿度20-90%RH,温度0-50℃
- 精度:湿度±5%RH,温度±2℃
- 采用单总线通信,接线简单
-
光敏电阻光照传感器
- 测量范围:0-1000Lux
- 通过ADC采集电压值转换
- 需注意安装位置避免直射
-
土壤湿度传感器
- 测量原理:电阻式
- 输出电压0-3.3V对应湿度0-100%
- 需定期校准避免电极氧化
2.3 执行机构
继电器控制的水泵选型要点:
- 工作电压需匹配系统电源(本项目采用12V直流)
- 流量根据灌溉面积选择(小型系统1-2L/min足够)
- 优先选择低噪音型号
2.4 WiFi通信模块
选用ESP8266模块实现无线通信:
- 支持802.11 b/g/n协议
- 内置TCP/IP协议栈
- 通过AT指令与STM32交互
- 实际测试传输距离:室内30米,室外80米(无遮挡)
3. 软件系统实现
3.1 系统主流程
c复制void main() {
hardware_init(); // 硬件初始化
wifi_connect(); // WiFi连接
while(1) {
read_sensors(); // 读取传感器数据
process_data(); // 数据处理
control_logic(); // 控制逻辑
send_to_server();// 数据上传
display_update();// 显示更新
}
}
3.2 关键算法实现
土壤湿度控制采用双阈值算法:
c复制#define HUMIDITY_HIGH 70 // 停止灌溉阈值
#define HUMIDITY_LOW 30 // 开始灌溉阈值
void irrigation_control() {
if(soil_humidity < HUMIDITY_LOW) {
pump_on();
}
else if(soil_humidity > HUMIDITY_HIGH) {
pump_off();
}
}
3.3 WiFi通信协议
自定义的轻量级通信协议格式:
code复制[HEAD][LEN][CMD][DATA][CRC]
- HEAD:固定为0xAA 0x55
- LEN:数据长度
- CMD:命令字
- DATA:传感器数据或控制指令
- CRC:校验和
3.4 上位机设计
基于Python Flask框架开发的上位机功能:
- 实时数据显示区
- 历史数据曲线图
- 模式切换面板
- 报警信息提示
- 数据导出功能
4. 系统调试与优化
4.1 常见问题排查
-
WiFi连接不稳定
- 检查天线安装
- 调整发射功率
- 修改重连机制
-
传感器数据异常
- 检查供电电压
- 重新校准传感器
- 增加软件滤波
-
水泵控制失效
- 测试继电器动作
- 检查驱动电路
- 测量负载电流
4.2 性能优化技巧
-
数据采集优化:
- 采用均值滤波算法
- 设置合理的采样间隔
- 异常值剔除
-
功耗控制:
- 空闲时进入低功耗模式
- 动态调整传感器采样率
- 优化WiFi通信间隔
-
可靠性增强:
- 增加看门狗定时器
- 实现数据本地缓存
- 设计故障恢复机制
5. 项目扩展方向
在实际应用中,可以考虑以下扩展:
- 增加太阳能供电模块
- 集成气象站接口
- 开发手机APP控制端
- 实现多区域协同灌溉
- 加入机器学习算法优化灌溉策略
这个项目从硬件选型到软件开发都经过精心设计,特别适合作为电子类专业的毕业设计选题。我在指导过程中发现,学生通过完成这个项目,能够全面掌握嵌入式系统开发的全流程技能,包括硬件设计、传感器应用、无线通信和上位机开发等关键技术。