1. 项目概述
在现代农业生产中,蔬菜大棚的环境监控一直是困扰种植者的难题。传统的人工巡检方式不仅效率低下,而且难以实现精准控制。我去年为本地一个中型蔬菜种植基地设计的这套数据采集系统,用不到300元的硬件成本就实现了温湿度、光照、土壤水分等关键参数的实时监测,帮助农户将作物产量提升了15%。
这个系统最核心的价值在于:通过单片机采集环境数据,农户可以随时掌握大棚状况,及时调整通风、灌溉等操作。相比市面上的成品监测设备,自主设计的系统不仅成本更低,还能根据具体作物需求灵活调整监测参数和报警阈值。
2. 系统设计思路
2.1 硬件架构选择
经过多次实地测试,最终确定的硬件方案是:STM32F103C8T6最小系统板作为主控,搭配DHT22温湿度传感器、BH1750光照传感器和土壤湿度传感器。这个组合在成本、精度和稳定性之间取得了很好的平衡。
选择STM32系列单片机主要基于三点考虑:
- 丰富的外设接口(I2C、SPI、USART等)便于连接各类传感器
- 充足的Flash存储空间(64KB)可以存储历史数据
- 低功耗特性适合长期运行的农业场景
2.2 传感器选型要点
在传感器选择上,我特别注重以下几个指标:
- 工作温度范围:大棚环境温差大,需要-40℃~80℃的宽温型号
- 防护等级:至少IP65级防尘防水
- 校准方式:最好支持现场校准,方便后期维护
经过对比测试,最终选定的DHT22温湿度传感器在高温高湿环境下仍能保持±2%RH的精度,完全满足蔬菜种植的监测需求。
3. 核心电路设计
3.1 电源模块设计
大棚通常位于偏远区域,电压不稳定是常见问题。为此我设计了双重保护电路:
- 采用LM2596降压模块将12V蓄电池降至5V
- 增加TVS二极管防止浪涌冲击
- 每个传感器供电分支都配有100μF电解电容滤波
实测表明,这种设计即使在电压波动±20%的情况下,系统仍能稳定工作。
3.2 传感器接口电路
不同传感器的接口设计需要特别注意:
- DHT22单总线接口需加上拉电阻(4.7KΩ)
- BH1750光照传感器的I2C总线要远离电源线布置
- 土壤湿度传感器建议采用电压跟随器隔离
重要提示:所有室外走线必须使用屏蔽线,并做好防水处理。我曾遇到因接线盒进水导致数据异常的故障。
4. 软件系统实现
4.1 数据采集逻辑
主程序采用状态机设计,主要工作流程:
- 每5分钟唤醒一次系统
- 依次读取各传感器数据
- 进行数据校验和滤波处理
- 通过LoRa模块上传至网关
关键代码片段(STM32 HAL库):
c复制void read_sensors(void) {
DHT22_Start();
HAL_Delay(20);
if(DHT22_CheckResponse()) {
humidity = DHT22_ReadHumidity();
temperature = DHT22_ReadTemperature();
}
BH1750_Start(I2C_ADDR);
lux = BH1750_ReadLightLevel();
soil_moisture = ADC_Read(SOIL_CHANNEL) * 100 / 4095;
}
4.2 数据滤波算法
针对农业环境噪声大的特点,我采用了移动平均+阈值滤波的组合算法:
- 连续采集5次数据
- 去掉最高和最低值
- 取中间3个值的平均数
- 与历史数据比较,超过设定阈值则视为异常值
这种处理方式有效消除了瞬时干扰带来的数据跳变。
5. 现场部署经验
5.1 传感器布置技巧
根据半年多的实际运行经验,总结出以下布置原则:
- 温湿度传感器:离地面1.5米,避开直射阳光和通风口
- 光照传感器:大棚顶部中央位置
- 土壤传感器:插入深度10-15cm,不同位置布置3个点
5.2 常见故障排查
整理了几个典型问题及解决方法:
| 故障现象 | 可能原因 | 解决方案 |
|---|---|---|
| 数据持续为零 | 电源接触不良 | 检查接线端子氧化情况 |
| 温湿度读数异常 | 传感器结露 | 加装防潮罩 |
| 通信中断 | LoRa天线方向不对 | 调整天线为竖直方向 |
6. 系统优化方向
目前系统还存在一些可以改进的地方:
- 增加太阳能充电模块实现完全自主供电
- 引入机器学习算法预测病虫害风险
- 开发手机APP实现远程监控
这套系统已经在本地3个大棚稳定运行8个月,最让我自豪的是帮助农户老王及时发现了一次灌溉系统故障,避免了整棚番茄的损失。农业物联网看似简单,但真正要做好需要充分考虑现场环境的复杂性。