基于 STM32 的植物生长环境监控系统设计
导语
温度、湿度、土壤含水量与光照强度直接决定植物的生长质量。本文设计一种以 STM32F103C8T6 为核心的植物生长环境监控系统,整合 DHT11 温湿度传感器、YL-69 土壤湿度传感器与 GL5528 光敏电阻,OLED12864 实时呈现环境参数;参数低于阈值时自动启动加热继电器、浇水装置或 LED 补光灯,并经 ESP8266 将数据上传 APP 远程管理,为温室与家庭园艺提供低成本、高效能的智能种植方案。
一、系统功能总览
| 编号 | 功能名称 | 功能描述 |
|---|---|---|
| F1 | 温湿度采集 | DHT11 周期采样 |
| F2 | 土壤湿度采集 | YL-69 电阻式检测 |
| F3 | 光照采集 | GL5528 分压读 ADC |
| F4 | 自动加温 | 温度低触发加热继电器 |
| F5 | 自动浇水 | 土壤湿度低触发浇水继电器 |
| F6 | 自动补光 | 光照不足点亮 LED 灯 |
| F7 | 阈值设定 | 按键输入三项阈值 |
| F8 | 远程监控 | ESP8266 上传 APP 查看 |
二、核心模块选型对比
2.1 主控模块选型
| 方案 | 型号 | 主频 | 优点 | 缺点 |
|---|---|---|---|---|
| 方案一 | STM32F103C8T6 | 72 MHz | 外设丰富、低功耗、生态成熟 | 无浮点 |
| 方案二 | NXP LPC1768 | 120 MHz | 性能更强 | 成本较高 |
选择方案一: 多传感器采集加继电器控制属中等复杂度应用,STM32F103C8T6 资源充足且开发效率高。
2.2 温湿度模块选型
| 方案 | 型号 | 接口 | 优点 | 缺点 |
|---|---|---|---|---|
| 方案一 | DHT11 | 单总线 | 价格低、易集成 | 精度一般 |
| 方案二 | SHT40 | I²C | ±0.3℃ / ±2%RH 高精度 | 成本较高 |
选择方案一: 阈值触发型控制对精度要求适中,DHT11 性能够用并显著降低系统成本。
2.3 土壤湿度模块选型
| 方案 | 型号 | 原理 | 优点 | 缺点 |
|---|---|---|---|---|
| 方案一 | YL-69 | 电阻式双探针 | 成本低、接口简单 | 长期埋设需防腐 |
| 方案二 | AM2120 | 电容式 | 耐用防水、稳定性好 | 价格较高 |
选择方案一: 面向预算有限的家庭园艺与温室监测,YL-69 性价比突出,配合定期更换探针即可长期使用。
2.4 光照模块选型
| 方案 | 型号 | 输出 | 优点 | 缺点 |
|---|---|---|---|---|
| 方案一 | GL5528 | 模拟 | 价格低、分压电路简单 | 需 ADC |
| 方案二 | TSL2561 | 数字 I²C | 高精度、线性度好 | 成本较高 |
选择方案一: 补光判断只需光照强弱分档,GL5528 加分压电路直读 ADC 即可满足需求。
2.5 显示模块选型
| 方案 | 型号 | 分辨率 | 优点 | 缺点 |
|---|---|---|---|---|
| 方案一 | OLED12864 | 128×64 | 自发光、对比度高、功耗低 | 单色 |
| 方案二 | ST7735 TFT | 128×128 彩色 | 色彩丰富 | 成本功耗较高 |
选择方案一: 多参数文本显示足够,OLED 在高对比度与快速响应场景表现优异。
2.6 无线通信模块选型
| 方案 | 型号 | 技术 | 优点 | 缺点 |
|---|---|---|---|---|
| 方案一 | ESP8266 | Wi-Fi | 可直连互联网、生态成熟 | 传输距离受限 |
| 方案二 | nRF905 | 433 MHz | 距离远、抗干扰 | 不能直连互联网 |
选择方案一: 系统需与手机 APP 交互,ESP8266 支持直接联网,开发资源与社区支持丰富。
三、系统接线总表
| 模块 | 引脚 | MCU 引脚 | 说明 |
|---|---|---|---|
| DHT11 | DATA | PA0 | 单总线 |
| YL-69 | OUT | PA1 | ADC1 输入 |
| GL5528 | AO | PA2 | ADC1 输入 |
| OLED12864 | SDA/SCL | PB7/PB6 | I²C1 |
| ESP8266 | TX/RX | PA10/PA9 | USART1 |
| 加热继电器 | IN | PB0 | 温度控制 |
| 浇水继电器 | IN | PB1 | 水泵控制 |
| LED 补光灯 | 驱动 | PB2 | PWM 调光 |
| 按键 K1--K3 | 一端 | PA8/PA11/PA12 | 阈值设定 |
四、系统软件设计
4.1 主程序流程
上电初始化各外设后进入主循环:采集温湿度、土壤湿度与光照 → OLED 刷新 → 与阈值比较,温度低启动加热、土壤干启动浇水、光照弱点亮 LED → 数据经 Wi-Fi 上传 APP → 扫描按键更新阈值。
int main(void)
{
SystemInit();
ADC1_Init();
OLED_Init();
DHT11_Init();
ESP8266_Init();
ESP8266_JoinAP("farm","pwd");
while (1)
{
/* 1. 数据采集 */
DHT11_Read(&temp, &humi);
soil = ADC_Read(PA1);
light = ADC_Read(PA2);
/* 2. 环境调节 */
if (temp < TEMP_TH) Relay_Heat_On();
if (soil < SOIL_TH) Relay_Water_On();
if (light < LIGHT_TH) LED_On();
else LED_Off();
/* 3. 显示与上报 */
OLED_Show(temp, humi, soil, light);
ESP8266_Send("T=%d,H=%d,S=%d,L=%d",
temp, humi, soil, light);
Key_Scan();
delay_ms(500);
}
}
4.2 土壤湿度检测流程
YL-69 双探针插入土壤,OUT 输出随湿度变化的模拟电压;ADC 多次采样平均后与标定曲线比对,映射为土壤湿度百分比参与阈值判断。
4.3 光照检测流程
GL5528 与固定电阻分压,光照越强阻值越小、分压点电压越高;程序读 ADC 值后分为弱/中/强三档,弱档触发补光并支持 PWM 渐亮。
4.4 无线通信流程
ESP8266 通过 AT 指令入网并连接 APP 服务端,按 "T=%d,H=%d,S=%d,L=%d" 格式周期上传;APP 可下发阈值指令,单片机解析后更新本地参数。
五、系统实现与测试
5.1 硬件调试
焊接后检查 3.3 V/5 V 电源;YL-69 探针做防水包扎后插入盆土;继电器板与主控共地,水泵由继电器隔离驱动,动作可靠。
5.2 软件调试
Keil 下断点观察 ADC 平均值与阈值判断逻辑;联合串口助手验证 ESP8266 入网与数据上传格式,调整采样周期消除读数抖动。
5.3 功能测试
| 测试编号 | 测试步骤 | 预期 | 结论 |
|---|---|---|---|
| T1 | DHT11 对哈气 | 温湿度上升并显示 | 通过 |
| T2 | 向盆土浇水 | 土壤湿度数值升高 | 通过 |
| T3 | 遮挡 GL5528 | 光照下降,LED 补光 | 通过 |
| T4 | 温度低于阈值 | 加热继电器吸合 | 通过 |
| T5 | 土壤偏干 | 浇水继电器吸合 | 通过 |
| T6 | 按键改阈值 | OLED 与控制同步更新 | 通过 |
| T7 | APP 远程查看 | 数据实时刷新 | 通过 |
六、总结
本文以 STM32F103C8T6 为核心设计了植物生长环境监控系统,整合 DHT11、YL-69、GL5528、OLED12864 与 ESP8266,实现温湿度、土壤湿度、光照三参数实时监测与加热、浇水、补光自动调节,并支持 APP 远程管理;系统运行稳定、功能全面,为农业智能化提供了低成本、高效能的解决方案,可进一步扩展多节点组网与云端数据分析。