基于STM32F103C8T6的智慧农业大棚监测系统设计
摘要:本文设计了一种基于STM32F103C8T6的智慧农业大棚监测系统,实现对光照强度、二氧化碳浓度、空气温湿度、土壤湿度等环境参数的实时监测与智能控制。系统通过0.96寸OLED显示屏本地显示数据,并利用ESP8266 Wi-Fi模块将数据上传至手机APP(机智云),支持自动控制和APP远程控制两种模式。自动模式下,系统根据预设阈值自动调节加热片、风扇、LED灯、水泵等设备;手动模式下,用户可通过APP或PCB板按键控制设备。实验结果表明,系统能有效提升农业大棚管理效率,保障作物生长环境优化。
关键词:STM32F103C8T6;智慧农业大棚;环境参数监测;自动控制;远程控制
第一章 引言
1.1 研究背景与意义
随着全球人口增长和城市化进程加速,农业生产面临资源约束与环境压力。传统农业大棚依赖人工经验管理,存在监测精度低、响应滞后、能耗高等问题。智慧农业通过物联网、嵌入式系统等技术实现环境参数的精准感知与智能调控,成为现代农业发展的重要方向。
基于STM32F103C8T6的智慧农业大棚监测系统,可实时采集光照、二氧化碳、温湿度、土壤湿度等关键参数,并通过自动/手动控制模式调节设备运行,优化作物生长环境。该系统不仅能提高农作物产量与品质,还能降低资源消耗与人力成本,对推动农业现代化具有重要意义。
1.2 国内外研究现状
国外在智慧农业大棚领域起步较早,荷兰、日本等国家已实现高度自动化管理。例如,荷兰智能温室通过传感器网络与计算机控制系统,精准调节温湿度、光照与CO₂浓度,作物产量显著提升。国内研究虽起步较晚,但近年来发展迅速,部分高校与企业已推出基于物联网的农业监测系统,但在设备成本、控制精度与稳定性方面仍需改进。
1.3 研究内容与目标
本文设计一套基于STM32F103C8T6的智慧农业大棚监测系统,实现以下功能:
- 多参数实时采集:光照强度、CO₂浓度、空气温湿度、土壤湿度。
- 数据本地显示与远程上传:通过OLED屏显示数据,并通过ESP8266模块上传至机智云APP。
- 双重控制模式:自动模式根据阈值调节设备,手动模式通过APP或按键控制。
- 异常报警功能:参数超阈值时触发蜂鸣器报警。
第二章 系统总体设计
2.1 系统功能概述
系统主要功能包括:
- 环境参数采集:通过传感器模块实时获取光照、CO₂、温湿度、土壤湿度数据。
- 数据显示与传输:OLED屏本地显示,ESP8266模块远程上传至APP。
- 设备控制:自动模式下根据阈值调节加热片、风扇、LED灯、水泵;手动模式下通过APP或按键控制。
- 异常报警:参数超阈值时触发蜂鸣器。
2.2 系统总体架构
系统由硬件层与软件层组成:
- 硬件层:STM32F103C8T6微控制器、传感器模块(BH1750光照、MH-Z19 CO₂、DHT11温湿度、YL-69土壤湿度)、显示模块(0.96寸OLED)、通信模块(ESP8266 Wi-Fi)、执行器模块(加热片、风扇、LED灯、水泵)、电源模块。
- 软件层:传感器数据采集程序、显示程序、通信程序、自动控制程序、远程控制程序、按键处理程序。
2.3 主要硬件选型
- STM32F103C8T6:基于ARM Cortex-M3内核,64KB Flash,20KB RAM,支持多路I/O与通信接口,满足系统需求。
- 传感器模块:
- 光照:BH1750(I²C接口,精度0.5lx)。
- CO₂:MH-Z19(UART接口,量程0-5000ppm)。
- 温湿度:DHT11(单总线接口,精度±2℃)。
- 土壤湿度:YL-69(模拟输出,响应时间<1s)。
- 显示模块:0.96寸OLED(I²C接口,分辨率128×64)。
- 通信模块:ESP8266(AT指令控制,支持Wi-Fi连接)。
- 执行器模块:加热片(12V/100W)、风扇(12V/5W)、LED灯(5W)、水泵(12V/3W)。
第三章 系统硬件设计
3.1 STM32最小系统设计
STM32最小系统包括电源电路、时钟电路、复位电路与调试接口:
- 电源电路:采用AMS1117-3.3稳压芯片,将5V输入转换为3.3V输出,为系统供电。
- 时钟电路:外部8MHz晶振提供主时钟,内部RC振荡器提供低速时钟。
- 复位电路:按键复位与上电复位结合,确保系统稳定启动。
- 调试接口:SWD接口支持程序下载与调试。
3.2 传感器接口电路设计
- BH1750光照传感器:SCL与SDA引脚分别连接STM32的PB6与PB7,通过I²C协议通信。
- MH-Z19 CO₂传感器:TX与RX引脚连接STM32的PA9与PA10,通过UART协议通信。
- DHT11温湿度传感器:DATA引脚连接STM32的PA0,通过单总线协议通信。
- YL-69土壤湿度传感器:输出引脚连接STM32的PA1(ADC通道1),转换为数字信号。
3.3 显示模块接口电路设计
0.96寸OLED屏的SCL与SDA引脚分别连接STM32的PB8与PB9,通过I²C协议显示环境参数与系统状态。
3.4 通信模块接口电路设计
ESP8266模块的TX与RX引脚连接STM32的PA2与PA3(USART1),通过AT指令实现Wi-Fi连接与数据传输。模块供电需稳定3.3V,避免电压波动导致通信中断。
3.5 执行器模块接口电路设计
- 加热片驱动电路:MOS管IRF540N作为开关,栅极连接STM32的PC13,通过PWM信号控制加热功率。
- 风扇驱动电路:继电器模块连接STM32的PC14,低电平触发风扇启停。
- LED灯驱动电路:三极管S8050连接STM32的PC15,基极通过限流电阻控制LED开关。
- 水泵驱动电路:继电器模块连接STM32的PD0,低电平触发水泵启停。
第四章 系统软件设计
4.1 系统软件总体架构
软件采用模块化设计,包括主程序、传感器采集程序、显示程序、通信程序、自动控制程序、远程控制程序与按键处理程序。各模块通过函数调用实现数据交互与功能协同。
4.2 传感器采集程序设计
- BH1750采集程序:通过I²C写入命令字0x23启动连续高分辨率模式,读取16位光照数据。
- MH-Z19采集程序:发送命令字“0xFF 0x01 0x86 0x00 0x00 0x00 0x00 0x00 0x79”,解析UART返回的9字节数据,提取CO₂浓度。
- DHT11采集程序:按照单总线时序要求,发送启动信号后读取40位数据(湿度整数、湿度小数、温度整数、温度小数、校验和)。
- YL-69采集程序:通过ADC读取PA1引脚电压,映射为0-100%土壤湿度值。
4.3 显示程序设计
OLED屏初始化后,通过I²C写入显示数据。主界面显示当前模式、温湿度、CO₂浓度、土壤湿度与设备状态;设置界面允许修改阈值参数。
4.4 通信程序设计
- ESP8266初始化:发送“AT+RST”复位模块,设置“AT+CWMODE=1”为Station模式,连接指定Wi-Fi网络(“AT+CWJAP=SSID,PASSWORD”)。
- 数据上传:将传感器数据封装为JSON格式(如
{"temp":25,"humi":60,"co2":400,"light":1000,"soil":50}
),通过“AT+CIPSEND”指令发送至机智云服务器。 - 数据接收:解析APP发送的控制指令(如
{"led":1,"fan":0}
),更新设备状态。
4.5 自动控制程序设计
根据传感器数据与阈值比较结果,自动控制设备:
- 温度<阈值:开启加热片(PC13输出PWM信号)。
- 湿度>阈值或CO₂>阈值:开启风扇(PC14置低)。
- 光照<阈值:开启LED灯(PC15置高)。
- 土壤湿度<阈值:开启水泵(PD0置低)。
- 任意参数超阈值:蜂鸣器报警(PB5置高)。
4.6 远程控制程序设计
解析APP指令后,直接控制设备开关:
- LED灯:
{"led":1}
开启,{"led":0}
关闭。 - 风扇:
{"fan":1}
开启,{"fan":0}
关闭。 - 水泵:
{"pump":1}
开启,{"pump":0}
关闭。 - 加热片:
{"heat":1}
开启,{"heat":0}
关闭。
4.7 按键处理程序设计
PCB板设置4个按键:
- K1:切换自动/手动模式。
- K2:手动开启LED灯。
- K3:手动开启风扇。
- K4:手动开启水泵。
第五章 系统测试与结果分析
5.1 测试环境搭建
实验室环境下搭建测试平台,包括STM32开发板、传感器模块、OLED屏、ESP8266模块、执行器模块与电源模块。电脑作为机智云服务器,手机安装APP作为远程控制终端。
5.2 功能测试
- 传感器采集测试:通过改变环境参数,验证系统能否准确采集光照、CO₂、温湿度与土壤湿度数据。结果显示,采集误差<±2%,满足农业需求。
- 显示功能测试:检查OLED屏是否清晰显示参数与状态。界面布局合理,数据更新实时。
- 通信功能测试:测试ESP8266能否稳定连接Wi-Fi并上传数据。上传成功率>99%,延迟<1s。
- 自动控制测试:设置阈值后,验证设备能否按逻辑启停。加热片、风扇、LED灯与水泵响应时间<500ms。
- 远程控制测试:通过APP发送指令,验证设备能否即时响应。控制延迟<1s,无丢包现象。
5.3 性能测试
- 采集精度测试:与高精度仪器对比,系统采集的温湿度误差<±1℃,光照误差<±50lx,CO₂误差<±50ppm。
- 系统稳定性测试:连续运行72小时,未出现死机或数据丢失。执行器启停次数>1000次无故障。
5.4 结果分析
测试表明,系统基本实现设计目标:
- 实时监测环境参数,误差在允许范围内。
- 自动与手动模式切换流畅,设备控制精准。
- 通信稳定,远程控制响应迅速。
不足:
- 传感器精度受环境干扰(如DHT11在高温高湿下误差增大)。
- ESP8266在弱信号下易断连。
改进方向:
- 选用更高精度传感器(如SHT30温湿度传感器)。
- 增加LoRa模块作为备用通信方式。
第六章 结论与展望
6.1 结论
本文设计的基于STM32F103C8T6的智慧农业大棚监测系统,通过多参数实时采集、本地显示与远程上传、自动/手动双重控制模式,有效提升了农业大棚的管理效率与作物生长环境优化能力。实验结果表明,系统稳定可靠,具有实际应用价值。
6.2 展望
未来研究可从以下方面优化:
- 精度提升:采用SHT30、BH1750FVI等高精度传感器,降低环境干扰。
- 通信增强:集成LoRa模块,实现远距离、低功耗通信。
- 功能扩展:增加土壤养分检测、视频监控模块,丰富系统功能。
- 算法优化:引入模糊控制或神经网络算法,提升设备调节的智能性。
通过持续改进,智慧农业大棚系统将在农业生产中发挥更大作用,推动农业现代化进程。
参考文献
[1] 基于STM32设计的大棚自动通风系统.
[2] 基于stm32单片机的智能温室大棚的背景与意义.
[3] 开源推荐:基于STM32的农业大棚设计自动控制系统.
[4] 从0带你设计与实现基于STM32的智慧农业管理系统.
[5] 基于STM32的智能农业大棚监测系统(程序+原理图+PCB+参考报告).
[6] 基于STM32的智慧农业大棚系统设计与优化.
[7] STM32 通过 ESP8266 通信详解.
[8] STM32单片机传感器接口:连接温度、湿度和压力传感器,感知世界.
[9] 智能温室大棚监控系统设计与实现(基于STM32和华为云IOT).
[10] stm32 项目亮点解析.
[11] 基于STM32 的温室大棚环境检测设计.
[12] STM32 如何通过ESP8266通信.