项目名称:基于物联网的温室大棚管理系统
一、项目介绍和创意介绍
项目简介
本项目是一款基于STM32F103C8T6主控、ESP32物联网模块的温室大棚智能环境监控与自动控制系统。系统能够实时检测空气温度、空气湿度、土壤湿度和光照强度四项关键环境参数,并通过本地OLED屏幕进行多界面显示。当环境参数超出预设阈值时,系统可自动控制排气扇、水泵、补光灯等执行设备,并触发蜂鸣器和LED进行声光报警。所有阈值均可通过板上按键独立调节,且数据具有掉电记忆功能。ESP32将环境数据上传至点灯科技物联网平台,用户可在手机APP上远程查看大棚状态;同时支持Web一键配网,极大降低部署难度。本设计完成2026 M-Design设计竞赛的任务一
创新点
- **四维环境精准感知**:集成空气温湿度、土壤湿度、光照强度四类传感器,全面反映作物生长环境
- **多策略智能联动控制**:温度、湿度、土壤湿度、光照分别触发排气扇、水泵、补光灯和声光报警,实现完全自动化的环境调节
- **物联网云监控与远程管理**:通过点灯科技平台,用户可随时随地通过手机APP查看大棚实时数据与设备状态
- **免代码Web配网与掉电记忆**:支持WiFi一键配置,断电不丢失,上电即恢复工作模式
二、硬件介绍
主要硬件组件
- 主控芯片:STM32F103C8T6(Cortex-M3内核,72MHz)
- 物联网模块:ESP32-WROOM-32(WiFi+蓝牙双模)
- 空气温湿度传感器:DHT11(数字信号,高精度)
- 土壤湿度传感器:电阻式土壤湿度探头(模拟输出,经ADC采集)
- 光照传感器:BH1750(I2C接口,高精度数字光照度计)
- 显示模块:0.96寸 OLED(I2C接口)
- 执行器件:5V排气扇、水泵、补光灯LED模组
- 驱动电路:2路N-MOS管(IRF540)分别驱动风扇和水泵;补光灯通过另一路MOS驱动
- 报警器件:有源蜂鸣器+高亮红色LED
- 输入设备:3个独立按键(用于阈值设定)
- 供电方案:STM32板载稳压,兼容USB供电与电池供电
硬件连接说明
- STM32与ESP32通过UART串口通信(PA9-TX,PA10-RX)
- 空气温湿度传感器DHT22连接至PA0(单总线)
- 土壤湿度传感器输出接PA1(ADC1_IN1)
- BH1750光照传感器与OLED使用I2C1总线
- 排气扇MOS管控制引脚PA4,水泵MOS PA5,补光灯MOS PA6
- 蜂鸣器控制引脚PA7,报警LED接PA8
- ESP32自身独立运行,通过UART接收STM32发来的数据,上传至云端
三、方案框图和项目设计思路
方案框图

设计思路
本系统遵循“感知—处理—控制—传输—展示”五层架构:
- 感知层:DHT11获取空气温湿度,土壤湿度探头获得体积含水率,BH1750测量光照强度,实现四项环境要素实时采集
- 处理层:STM32完成传感器数据读取、阈值比较、自动控制逻辑、按键扫描以及阈值保存与读取
- 控制层:当温度>35℃开启排气扇,<10℃声光报警;空气湿度>80%开启排气扇,<30%声光报警;土壤湿度<50%启动水泵;光照<3000 Lux开启补光灯
- 传输层:ESP32通过UART接收所有环境数据,连接WiFi后将数据封装上传至点灯科技平台;支持Web配网接口,无需修改固件即可更改WiFi
- 展示层:本地OLED显示主界面(四项参数)与状态界面;点灯科技手机APP同步显示实时数据卡片
四、原理图和PCB设计介绍


原理图设计特点
- 电源部分:5V输入经板载LDO稳压为STM32、ESP32及传感器供电,5V直供MOS驱动电路和排气扇/水泵/补光灯
- 传感器接口:DHT11单总线加4.7k上拉;土壤湿度传感器利用分压式采集,内部ADC分辨率12位;BH1750和OLED挂在不同I2C总线,地址无冲突
- MOS驱动回路:采用N-MOS低端驱动方式,G极串联电阻防止振荡
- 报警:蜂鸣器和LED由GPIO直驱
- 按键电路:按键均靠内部上拉,GPIO检测低电平,配合去抖算法实现阈值加减、切换选项及保存功能
五、软件流程图和关键代码介绍
软件流程图

关键代码介绍
void jiance(void)
{
if(uwTick-aa>1000) //
{
DHT11_Read_Data(&temperature,&humidity);
tu_humi=100-getADC(&hadc1);
light = BH1750_ReadLight();
sprintf(t, "t%2dv%3di%3dp%5d", temperature, humidity, (int)tu_humi, (int)light);
HAL_UART_Transmit(&huart1,(uint8_t*)t,strlen(t),50);
aa=uwTick;
tt[num]=temperature;
ii[num]=humidity;
ll[num]=(int)light;
vv[num]=(int)tu_humi;
num++;
if(num==100) num=0;
}
}
2. ESP32部分代码
void setup() {
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
MySerial.begin(115200,SERIAL_8N1, 6, 7);// 初始化串口 波特率,默认SERIAL_8N1为8位数据位、无校验、1位停止位,后面两个分别为 RXD,TXD 引脚
pinMode(9,INPUT_PULLUP);
pinMode(2,OUTPUT);
digitalWrite(2,LOW);
MySerial.write('0');
六、功能展示图及说明
最终效果图展示
系统上电后,OLED主界面:
- **界面1(主界面)**:空气温度/湿度、土壤湿度、光照强度,同一屏四行数据清晰排列

手机APP监控界面
通过点灯科技定制化控件:
- 实时数据卡片:温度、湿度、土壤湿度、光照强度

数据储存界面

系统整体图

图中红棕线是电阻式土壤湿度传感器,紫白色连接的是水泵
排气风扇运行图

风扇连接PCB上带有风扇丝印的排针处,阈值达到自动排气
七、设计中遇到的难题和解决方法
多传感器数据同步与干扰问题
问题:DHT11单总线读取时间较长,可能阻塞其他逻辑;
解决:
- 将DHT11读取放在函数里面,利用定时轮询
八、对本次竞赛的心得体会
技术创新方面
本项目让我深刻体会到物联网技术在智慧农业中的巨大潜力。将空气温湿度、土壤湿度、光照等环境参数融合为一体,用简单的微控制器实现自动调控,真正做到了“让植物自己说话”。在方案设计过程中,我意识到精准的环境控制不仅可以提高作物产量,更能大幅节约水电资源。
工程实践方面
从原理图绘制到PCB布局,从单传感器驱动到多设备协同工作,每一步都遇到了教材里看不到的细节问题。比如MOS管驱动电机时务必加续流二极管,按键去抖不能简单延时,EEPROM写入必须考虑寿命等。这些经历让我积累了宝贵的硬件调试经验,也明白了文档和代码规范对于复杂项目的重要性。
社会价值方面
本项目可直接应用于小规模蔬菜大棚、花卉种植或阳台农业。通过智能控制排风、灌溉和补光,能减少人力投入约70%,节水节电30%以上。尤其对于缺乏种植经验的用户,系统自动维持作物最适环境,降低了农业技术门槛。Web配网和手机APP监控让非专业人员也能轻松上手,具有很好的推广前景。
个人成长方面
在项目开发中,我学会了从系统高度统筹硬件、软件和云端三部分,培养了真正的产品思维。遇到故障时,不再盲目更换元件,而是逐步缩小范围、分析信号波形,解决能力显著增强。同时我也养成了持续学习的好习惯:为了完成手机APP定制,自学了点灯科技的控件配置;为了降低功耗,重新温习了STM32的低功耗模式。这些技能都将让我在未来的工程道路上走得更远。
未来展望
该系统仍有很大优化空间:
- 引入PID控制,实现排气扇和补光灯的无级调控
- 增加CO₂浓度传感器,进一步丰富环境参数
- 开发基于历史数据的智能灌溉策略
- 接入太阳能供电模块,实现能源自给自足
感谢贸泽电子提供这样一个展示创新成果的平台,让我能够把课堂理论转化为真正服务于农业的实用系统,为智慧农业贡献一份青年力量。