基于STM32的大棚环境监测系统Proteus仿真
基于STM32的大棚环境监测系统Proteus仿真
摘要
随着农业现代化的快速发展,大棚种植作为一种高效的农业生产模式,已广泛应用于各类农作物的培育与种植中。大棚内的温湿度、光照强度、二氧化碳浓度等环境参数直接影响农作物的生长发育,因此,实现对大棚环境参数的精准监测与智能调控具有重要的现实意义。本文设计了一种基于STM32F103C8T6单片机的大棚环境监测系统,通过DHT11温湿度传感器、光敏电阻、二氧化碳检测模块采集环境参数,经OLED显示屏实时显示,同时结合按键设置阈值,通过加热继电器、除湿继电器实现环境参数的自动调控,当参数超出阈值时启动声光报警。本文详细阐述了系统的硬件设计、软件编程及Proteus仿真实现过程,仿真结果表明,该系统能够精准采集环境参数、稳定实现调控功能与报警功能,满足大棚环境监测的实际需求,具有结构简单、成本低廉、实用性强等特点。
关键词:STM32F103C8T6;大棚环境监测;Proteus仿真;传感器;自动调控

1 绪论
1.1 研究背景与意义
农业是国民经济的基础产业,随着人口增长与粮食需求的不断提升,传统农业种植模式已难以满足现代化农业的发展需求。大棚种植凭借其能够人工调控环境参数、不受季节限制、提高农作物产量与品质等优势,成为现代农业的重要发展方向。大棚内的温度、湿度、光照强度、二氧化碳浓度等环境因素对农作物的光合作用、呼吸作用及生长周期具有决定性影响,例如,过高或过低的温湿度会导致农作物病虫害滋生、生长迟缓,光照不足会影响光合作用效率,二氧化碳浓度不足会制约农作物产量提升。
传统的大棚环境监测主要依靠人工巡检,存在监测效率低、数据误差大、调控不及时等问题,难以实现对大棚环境的精准管理。因此,设计一种自动化、智能化的大棚环境监测系统,能够实时采集环境参数、自动调控设备运行、及时发出报警提示,对于提高大棚种植的智能化水平、降低人工成本、提升农作物产量与品质具有重要的理论意义与实际应用价值。

1.2 国内外研究现状
国外在大棚环境监测领域的研究起步较早,技术相对成熟,已形成了较为完善的智能化监测与调控体系。例如,美国、日本等发达国家采用物联网、大数据、人工智能等技术,实现了对大棚环境参数的精准采集、远程监测与智能调控,部分系统还具备作物生长模型分析、产量预测等功能,但此类系统成本较高,难以在发展中国家广泛推广。
国内近年来也加大了对大棚环境监测系统的研究力度,随着单片机技术、传感器技术的快速发展,涌现出了大量基于单片机的低成本大棚环境监测系统。目前,国内研究的系统多以51单片机、STM32单片机为主控芯片,结合各类传感器实现环境参数采集,通过显示屏显示数据,部分系统具备简单的自动调控功能,但在参数采集精度、系统稳定性、功能完善性等方面仍有提升空间。本文基于STM32F103C8T6单片机,设计一款功能完善、成本低廉、仿真效果良好的大棚环境监测系统,为大棚种植的智能化管理提供参考。
1.3 研究内容与方法
本文的研究内容主要围绕基于STM32的大棚环境监测系统的设计与Proteus仿真展开,具体包括以下几个方面:
- 系统总体方案设计:明确系统的功能需求,确定主控芯片、传感器、显示模块、执行器等硬件选型,搭建系统的总体架构。
- 硬件电路设计:根据系统总体方案,设计各模块的硬件电路,包括主控模块、传感器采集模块、显示模块、按键模块、执行器模块、声光报警模块,并绘制电路原理图。
- 软件程序设计:基于Keil MDK开发环境,采用C语言编写系统软件程序,包括主程序、传感器数据采集程序、显示程序、按键处理程序、调控程序、报警程序等。
- Proteus仿真实现:搭建系统的Proteus仿真模型,导入硬件电路原理图与软件程序,进行仿真测试,验证系统功能的可行性与稳定性。
本文采用的研究方法包括文献研究法、硬件设计法、软件编程法、仿真测试法。通过文献研究了解大棚环境监测系统的研究现状与相关技术;通过硬件设计法完成各模块电路的设计与绘制;通过软件编程法实现系统的各项功能;通过Proteus仿真测试法验证系统的功能与性能,确保系统满足设计要求。
1.4 论文结构安排
本文共分为6章,具体结构安排如下:
- 第1章:绪论。阐述本文的研究背景与意义、国内外研究现状、研究内容与方法及论文结构安排。
- 第2章:系统总体方案设计。明确系统的功能需求与性能指标,进行硬件选型,搭建系统总体架构。
- 第3章:系统硬件电路设计。详细设计各模块的硬件电路,绘制电路原理图,说明各模块的工作原理。
- 第4章:系统软件程序设计。编写系统各模块的软件程序,说明程序的设计思路与实现过程。
- 第5章:Proteus仿真测试。搭建仿真模型,进行仿真测试,分析仿真结果,验证系统功能。
- 第6章:总结与展望。总结本文的研究成果,分析系统存在的不足,对未来的研究方向进行展望。
- 环境参数采集功能:实时采集大棚内的温湿度、光照强度、二氧化碳浓度四项核心环境参数,确保采集数据的精准性与实时性。
- 参数显示功能:通过OLED显示屏,实时显示采集到的温湿度、光照强度、二氧化碳浓度数据,以及各执行器的工作状态、参数阈值等信息,便于用户直观查看。
- 自动调控功能:通过按键设置温湿度阈值,系统根据采集到的环境参数与设定阈值进行对比,自动控制加热继电器、除湿继电器的工作状态,维持大棚内温湿度在预定范围内(题目中提及的降温器可结合除湿继电器协同工作,实现湿度调控的同时辅助降温)。
- 声光报警功能:当大棚内环境湿度超过设定阈值,或环境温度低于设定阈值时,系统自动启动声光报警模块,发出报警提示,提醒用户及时处理。
- 参数设置功能:通过按键实现温湿度阈值的调节与设置,具备参数保存功能,确保系统断电后参数不丢失。
- 温湿度检测范围:温度0~50℃,精度±2℃;湿度20%~90%RH,精度±5%RH(符合DHT11传感器性能)。
- 光照强度检测范围:0~1000lx,能够根据光敏电阻的阻值变化,反映光照强度的强弱。
- 二氧化碳浓度检测范围:0~5000ppm,检测精度满足大棚种植的实际需求。
- 显示方式:OLED显示屏,分辨率128×64,显示清晰、响应迅速。
- 调控响应时间:≤1s,当环境参数超出阈值时,执行器能够快速响应。
- 报警方式:声光报警,报警声音清晰,指示灯亮度明显,报警阈值可通过按键设置。
- 工作电压:5V直流电压,可通过USB供电或锂电池供电,适配大棚现场供电需求。
2.3 硬件选型
根据系统功能需求与性能指标,结合成本、实用性、易获取性等因素,进行以下硬件选型:
2.3.1 主控芯片选型
主控芯片选用STM32F103C8T6,该芯片是ST公司推出的一款基于ARM Cortex-M3内核的32位单片机,主频最高可达72MHz,具备丰富的外设资源,包括GPIO口、UART、I2C、SPI等,能够满足系统各模块的控制需求。同时,STM32F103C8T6体积小、功耗低、成本低廉,易于焊接与开发,是嵌入式系统设计中常用的主控芯片,完全符合本系统的设计要求。
2.3.2 传感器模块选型
- 温湿度传感器:选用DHT11,该传感器是一款数字式温湿度传感器,采用单总线通信方式,接线简单,无需复杂的硬件电路,能够直接输出数字信号,便于单片机读取。DHT11的检测范围与精度符合本系统的性能指标,且成本低廉,适合大棚环境的温湿度采集。
- 光强检测模块:选用光敏电阻配合分压电路组成光强检测模块。光敏电阻的阻值会随着光照强度的变化而变化,光照越强,阻值越小;光照越弱,阻值越大。通过分压电路将光敏电阻的阻值变化转换为电压变化,再通过STM32的ADC接口采集电压信号,进而计算出光照强度,该方案结构简单、成本低廉,能够满足大棚光强检测的需求。
- 二氧化碳检测模块:选用通用型二氧化碳检测模块(如MG811),该模块采用电化学检测原理,能够实时检测空气中的二氧化碳浓度,输出模拟信号或数字信号,可直接与STM32单片机的ADC接口或I2C接口连接,检测精度高、响应迅速,适合大棚环境的二氧化碳浓度采集。
2.3.3 显示模块选型
显示模块选用128×64 OLED显示屏,该显示屏采用I2C通信方式,接线简单,体积小、功耗低、显示清晰,能够实时显示多项环境参数与系统状态。与LCD显示屏相比,OLED显示屏无需背光,视角广、响应速度快,更适合在大棚环境中使用,能够满足系统的显示需求。
2.3.4 执行器模块选型
执行器模块选用两个继电器模块,分别控制加热设备与除湿设备(降温功能可通过除湿设备协同实现)。继电器模块采用5V供电,通过STM32的GPIO口控制继电器的吸合与断开,进而控制加热、除湿设备的开启与关闭。继电器模块具备隔离功能,能够保护单片机,避免执行器的高压信号干扰单片机工作,确保系统运行稳定。
2.3.5 其他模块选型
- 按键模块:选用4个独立按键,分别实现参数设置、阈值增加、阈值减少、确认保存等功能,按键采用独立式接线,结构简单,便于编程处理。
- 声光报警模块:选用一个蜂鸣器与一个LED指示灯组成声光报警模块,蜂鸣器采用5V有源蜂鸣器,通电即可发声,LED指示灯选用红色,亮度明显,能够在参数超出阈值时及时发出报警提示。
2.4 系统总体架构
本系统的总体架构分为五大模块:主控模块、传感器采集模块、显示模块、执行器模块、人机交互与报警模块,各模块之间通过相应的接口连接,协同工作,实现大棚环境的监测与调控。系统总体架构如图1所示(此处可在实际论文中插入架构图,仿真时可在Proteus中搭建对应模块)。
主控模块(STM32F103C8T6)是系统的核心,负责接收传感器采集的环境参数,对数据进行处理与分析,控制显示模块实时显示数据,根据参数阈值控制执行器模块工作,同时处理按键输入信号,在参数超出阈值时启动声光报警模块。
传感器采集模块负责采集大棚内的温湿度、光照强度、二氧化碳浓度数据,将采集到的模拟信号或数字信号传输给主控模块,供主控模块处理。
显示模块接收主控模块的控制信号,实时显示环境参数、阈值设置、执行器工作状态等信息,便于用户查看。
执行器模块接收主控模块的控制信号,通过继电器控制加热、除湿设备的开启与关闭,实现温湿度的自动调控。
人机交互与报警模块包括按键模块与声光报警模块,按键模块用于用户设置参数阈值,声光报警模块用于在参数超出阈值时发出报警提示。
3 系统硬件电路设计
3.1 主控模块电路设计
主控模块以STM32F103C8T6为核心,主要包括电源电路、复位电路、晶振电路三部分,为单片机的正常工作提供保障。
3.1.1 电源电路
STM32F103C8T6的工作电压为3.3V,因此需要设计电源电路将5V输入电压转换为3.3V稳定电压。本系统采用AMS1117-3.3稳压芯片实现电压转换,5V电源通过AMS1117-3.3的输入端(IN)接入,输出端(OUT)输出3.3V电压,给STM32单片机及其他需要3.3V供电的模块(如OLED显示屏、传感器模块)供电。电源电路中加入电容滤波,减少电压波动,确保电源稳定,具体电路如下:5V电源正极接入AMS1117-3.3的IN引脚,IN引脚与地之间并联一个10μF电解电容和一个0.1μF陶瓷电容,用于滤波;AMS1117-3.3的OUT引脚输出3.3V电压,OUT引脚与地之间并联一个10μF电解电容和一个0.1μF陶瓷电容,进一步稳定输出电压;AMS1117-3.3的GND引脚接地。
3.1.2 复位电路
本系统采用上电复位与手动复位相结合的复位电路,确保单片机在异常情况下能够正常复位,恢复正常工作。复位电路采用阻容复位电路,STM32F103C8T6的NRST引脚通过一个10kΩ电阻接3.3V电源,同时通过一个0.1μF电容接地,另外并联一个手动复位按键,按键一端接地,另一端接NRST引脚。当系统上电时,电容充电,NRST引脚保持低电平一段时间,实现上电复位;当按下手动复位按键时,NRST引脚接地,保持低电平,松开按键后,电容放电,NRST引脚恢复高电平,实现手动复位。
3.1.3 晶振电路
STM32F103C8T6需要外部晶振提供时钟信号,本系统采用8MHz外部晶振,配合两个22pF陶瓷电容组成晶振电路,为单片机提供稳定的时钟信号。晶振的两端分别接入STM32的OSC_IN(PA8)和OSC_OUT(PA9)引脚,两个22pF陶瓷电容的一端分别接晶振两端,另一端接地,确保晶振稳定振荡。单片机内部通过PLL锁相环将8MHz晶振频率倍频至72MHz,满足系统的运行需求。
3.2 传感器采集模块电路设计
3.2.1 DHT11温湿度传感器电路
DHT11采用单总线通信方式,接线简单,只需三根线:VCC、GND、DATA。DHT11的VCC引脚接5V电源,GND引脚接地,DATA引脚通过一个10kΩ上拉电阻接3.3V电源,然后接入STM32的GPIO口(如PA0)。上拉电阻的作用是确保DATA引脚在空闲状态下为高电平,保证通信的稳定性。当DHT11采集到温湿度数据后,通过DATA引脚将数字信号传输给STM32单片机,单片机通过单总线协议读取数据。
3.2.2 光敏电阻光强检测电路
光敏电阻光强检测电路采用分压电路设计,光敏电阻(RL)与一个10kΩ固定电阻(R1)串联,接入5V电源与地之间,分压点接入STM32的ADC接口(如PA1)。当光照强度变化时,光敏电阻的阻值RL发生变化,导致分压点的电压发生变化,STM32通过ADC接口采集该电压信号,经过AD转换后,将模拟电压转换为数字信号,再根据分压公式计算出光敏电阻的阻值,进而判断光照强度的强弱。分压公式为:Vout = 5V × (RL / (RL + R1)),光照越强,RL越小,Vout越小;光照越弱,RL越大,Vout越大。
3.2.3 二氧化碳检测模块电路
本系统选用MG811二氧化碳检测模块,该模块输出模拟信号,因此需要将其输出端接入STM32的ADC接口(如PA2)。MG811的VCC引脚接5V电源,GND引脚接地,AO引脚(模拟输出端)接入STM32的PA2引脚,DO引脚(数字输出端)可悬空或接入GPIO口(本系统暂不使用)。MG811采集到二氧化碳浓度信号后,通过AO引脚输出相应的模拟电压,电压范围为0~5V,二氧化碳浓度越高,输出电压越大,STM32通过ADC接口采集该电压信号,经过AD转换后,计算出二氧化碳浓度值。
3.3 显示模块电路设计
本系统采用128×64 OLED显示屏,采用I2C通信方式,与STM32单片机的I2C接口连接。OLED显示屏的VCC引脚接3.3V电源,GND引脚接地,SDA引脚(数据线)接入STM32的PB7引脚(I2C1_SDA),SCL引脚(时钟线)接入STM32的PB6引脚(I2C1_SCL)。I2C通信方式接线简单,只需两根线即可实现数据传输,STM32通过I2C协议向OLED显示屏发送控制指令与显示数据,实现环境参数、系统状态等信息的实时显示。
3.4 执行器模块电路设计
执行器模块包括加热继电器与除湿继电器,两个继电器模块的电路结构相同,均采用STM32的GPIO口控制。继电器模块的VCC引脚接5V电源,GND引脚接地,IN引脚(控制端)接入STM32的GPIO口(如PB0控制加热继电器,PB1控制除湿继电器)。当STM32的GPIO口输出高电平时,继电器吸合,对应的加热或除湿设备开启;当GPIO口输出低电平时,继电器断开,对应的设备关闭。为了保护单片机,避免继电器线圈产生的反向电动势干扰单片机工作,在继电器线圈两端并联一个二极管(如1N4001),用于续流,吸收反向电动势。
3.5 人机交互与报警模块电路设计
3.5.1 按键模块电路
按键模块采用4个独立按键,分别为设置键(K1)、增加键(K2)、减少键(K3)、确认键(K4)。每个按键的一端接地,另一端通过一个10kΩ上拉电阻接3.3V电源,同时接入STM32的GPIO口(如K1接PB2,K2接PB3,K3接PB4,K4接PB5)。当按键未按下时,GPIO口为高电平;当按键按下时,GPIO口接地,变为低电平,STM32通过检测GPIO口的电平变化,判断按键是否按下及按下的按键类型,进而执行相应的操作(如设置阈值、增加阈值等)。
3.5.2 声光报警模块电路
声光报警模块由蜂鸣器与LED指示灯组成。蜂鸣器采用5V有源蜂鸣器,VCC引脚接5V电源,GND引脚通过一个NPN三极管(如PNP8550)接地,三极管的基极通过一个1kΩ电阻接入STM32的GPIO口(如PB6);LED指示灯(红色)的阳极通过一个220Ω限流电阻接5V电源,阴极接入STM32的GPIO口(如PB7)。当系统检测到环境参数超出阈值时,STM32的GPIO口输出高电平,三极管导通,蜂鸣器发声,同时LED指示灯点亮,实现声光报警;当参数恢复正常后,GPIO口输出低电平,蜂鸣器停止发声,LED指示灯熄灭。
3.6 系统总体硬件原理图
根据上述各模块的电路设计,绘制系统总体硬件原理图,将所有模块整合在一起,确保各模块之间的接口连接正确,电路布局合理。系统总体硬件原理图中,STM32F103C8T6为主控核心,各传感器模块、显示模块、执行器模块、人机交互与报警模块分别通过相应的GPIO口、ADC接口、I2C接口与主控芯片连接,形成完整的硬件系统。(此处可在实际论文中插入Proteus绘制的硬件原理图,明确各模块的接线关系)
4 系统软件程序设计
4.1 软件开发环境
本系统的软件程序开发采用Keil MDK5开发环境,该环境是ARM公司推出的一款专业的嵌入式开发工具,支持STM32系列单片机的编程、编译、调试,具备丰富的库函数与调试功能,能够大大提高程序开发效率。程序采用C语言编写,C语言具有简洁、高效、可移植性强等特点,适合嵌入式系统的程序开发。同时,需要安装STM32F103系列单片机的固件库,调用固件库中的函数,实现各模块的功能控制。
4.2 程序总体设计思路
系统软件程序采用模块化设计思想,将不同的功能模块分为独立的程序文件,便于程序的编写、调试、修改与维护。程序总体流程如下:系统上电后,首先进行初始化操作,包括STM32单片机初始化、GPIO口初始化、ADC初始化、I2C初始化、OLED初始化等;初始化完成后,系统进入主循环,在主循环中,依次完成传感器数据采集、数据处理、OLED显示、按键处理、温湿度调控、报警判断等操作,循环往复,实现系统的持续运行。
程序模块主要包括:主程序、初始化程序、传感器数据采集程序、数据处理程序、OLED显示程序、按键处理程序、温湿度调控程序、声光报警程序等,各模块之间通过函数调用的方式协同工作,实现系统的各项功能。
4.3 各模块程序设计
4.3.1 初始化程序设计
初始化程序是系统正常运行的基础,主要包括以下几部分初始化:
- 系统时钟初始化:配置STM32的系统时钟,将外部8MHz晶振倍频至72MHz,为单片机的运行提供稳定的时钟信号。
- GPIO口初始化:配置各模块对应的GPIO口模式,如传感器数据引脚、继电器控制引脚、按键引脚、报警引脚等,设置为输入或输出模式。例如,DHT11的DATA引脚配置为推挽输出与上拉输入模式,继电器控制引脚配置为推挽输出模式,按键引脚配置为上拉输入模式。
- ADC初始化:配置STM32的ADC接口,设置ADC的采样模式、采样周期、通道等,用于采集光敏电阻与二氧化碳检测模块的模拟信号。例如,配置PA1、PA2为ADC输入通道,采样周期设置为12个时钟周期,采用单次转换模式。
- I2C初始化:配置STM32的I2C接口,设置I2C的通信速率、地址等,用于与OLED显示屏通信,通信速率设置为100kHz。
- OLED初始化:向OLED显示屏发送初始化指令,设置OLED的显示模式、对比度、亮度等参数,确保OLED显示屏正常工作。
4.3.2 传感器数据采集程序设计
传感器数据采集程序负责采集DHT11的温湿度数据、光敏电阻的光强数据、二氧化碳检测模块的浓度数据,具体设计如下:
- DHT11温湿度采集:采用单总线协议与DHT11通信,STM32通过GPIO口向DHT11发送启动信号(拉低DATA引脚至少18ms,然后拉高20~40us),DHT11收到启动信号后,会发送响应信号(拉低DATA引脚80us,然后拉高80us),之后发送40位数据(8位湿度整数、8位湿度小数、8位温度整数、8位温度小数、8位校验位),STM32通过检测DATA引脚的电平变化,读取这40位数据,经过校验后,得到温湿度数据。由于DHT11的小数部分精度较低,本系统仅读取整数部分。
- 光敏电阻光强采集:通过STM32的ADC接口采集光敏电阻分压电路的电压信号,经过AD转换后,将模拟电压转换为数字信号(0~4095),再根据分压公式计算出光敏电阻的阻值,进而判断光照强度的强弱。例如,当采集到的电压值越大,说明光敏电阻阻值越大,光照强度越弱;反之,光照强度越强。
- 二氧化碳浓度采集:通过STM32的ADC接口采集MG811模块的模拟输出电压,经过AD转换后,得到数字信号,再根据MG811的量程与输出电压的对应关系,计算出二氧化碳浓度值。例如,MG811的量程为0~5000ppm,输出电压为0~5V,对应的浓度计算公式为:浓度(ppm)=(采集到的电压值 / 5V)× 5000ppm。
4.3.3 数据处理程序设计
数据处理程序负责对采集到的传感器数据进行处理,去除异常数据,确保数据的准确性,同时将采集到的数字信号转换为便于显示的数值格式。例如,对DHT11采集到的温湿度数据进行校验,若校验失败,则丢弃该组数据,重新采集;对ADC采集到的电压信号进行滤波处理(采用滑动平均滤波法),减少数据波动,提高数据的稳定性;将处理后的温湿度、光照强度、二氧化碳浓度数据转换为字符串格式,便于OLED显示屏显示。
4.3.4 OLED显示程序设计
OLED显示程序负责将处理后的环境参数、系统状态等信息显示在OLED显示屏上,采用I2C通信方式向OLED发送控制指令与显示数据。显示内容分为两个界面:正常显示界面与参数设置界面。
- 正常显示界面:显示大棚内的实时温湿度、光照强度、二氧化碳浓度,以及加热继电器、除湿继电器的工作状态(开启/关闭),显示格式清晰、直观,便于用户查看。
- 参数设置界面:当用户按下设置键(K1)时,进入参数设置界面,可通过增加键(K2)、减少键(K3)调整温湿度阈值,按下确认键(K4)保存设置的阈值,并返回正常显示界面。参数设置界面显示当前设置的温度阈值与湿度阈值,以及设置提示信息。
OLED显示程序中,需要编写字符显示函数、数字显示函数、字符串显示函数,实现不同类型数据的显示,同时控制显示的位置、字体大小等参数,确保显示效果清晰。
4.3.5 按键处理程序设计
按键处理程序采用中断方式或查询方式处理按键输入,本系统采用查询方式,在主循环中定期检测按键的电平变化,判断按键是否按下及按下的按键类型,进而执行相应的操作。按键处理逻辑如下:
- 设置键(K1):按下后,系统进入参数设置界面,再次按下,退出参数设置界面,返回正常显示界面。
- 增加键(K2):在参数设置界面中,按下后,当前设置的阈值(温度或湿度)增加1,若达到最大值(如温度阈值最大值35℃,湿度阈值最大值80%RH),则不再增加。
- 减少键(K3):在参数设置界面中,按下后,当前设置的阈值(温度或湿度)减少1,若达到最小值(如温度阈值最小值15℃,湿度阈值最小值30%RH),则不再减少。
- 确认键(K4):在参数设置界面中,按下后,保存当前设置的阈值,并返回正常显示界面;在正常显示界面中,按下后,无操作。
为了避免按键抖动导致的误操作,在按键处理程序中加入延时消抖处理(如延时20ms),确保按键检测的准确性。
4.3.6 温湿度调控程序设计
温湿度调控程序是系统的核心功能之一,负责根据采集到的温湿度数据与设置的阈值进行对比,自动控制加热继电器、除湿继电器的工作状态,维持大棚内温湿度在预定范围内。调控逻辑如下:
- 温度调控:当采集到的实际温度低于设置的温度阈值时,STM32控制加热继电器吸合,开启加热设备,升高大棚内温度;当实际温度达到或高于温度阈值时,控制加热继电器断开,关闭加热设备。
- 湿度调控:当采集到的实际湿度高于设置的湿度阈值时,STM32控制除湿继电器吸合,开启除湿设备,降低大棚内湿度;当实际湿度达到或低于湿度阈值时,控制除湿继电器断开,关闭除湿设备。同时,除湿设备可协同实现降温功能,当温度过高时,可通过开启除湿设备辅助降温。
为了避免执行器频繁启停,在调控程序中加入 hysteresis 差值(如温度 hysteresis 差值1℃,湿度 hysteresis 差值2%RH),当实际参数与阈值的差值超过 hysteresis 差值时,才控制执行器动作,确保系统运行稳定。
4.3.7 声光报警程序设计
声光报警程序负责检测环境参数是否超出阈值,当检测到以下情况时,启动声光报警:
- 实际湿度超过设置的湿度阈值;
- 实际温度低于设置的温度阈值。
当出现上述情况时,STM32控制蜂鸣器发声、LED指示灯点亮,实现声光报警;当实际参数恢复到阈值范围内时,控制蜂鸣器停止发声、LED指示灯熄灭,结束报警。同时,为了避免报警声音持续干扰,可设置报警延时功能,报警一段时间后(如30s),自动停止报警,若参数仍未恢复正常,则再次启动报警。
4.4 程序流程图
系统主程序流程图如图2所示(此处可在实际论文中插入流程图),具体流程如下:系统上电后,进行初始化操作,初始化完成后,采集传感器数据,对数据进行处理,然后在OLED显示屏上显示数据;接着检测按键输入,若有按键按下,执行相应的按键操作;之后根据温湿度数据与阈值的对比,控制执行器工作;再判断环境参数是否超出阈值,若超出,启动声光报警,否则关闭报警;最后返回主循环,重复上述操作。
5 Proteus仿真测试
5.1 Proteus仿真环境介绍
Proteus是一款功能强大的电子设计自动化软件,能够实现电路原理图绘制、PCB设计、单片机仿真等功能,广泛应用于嵌入式系统的设计与仿真测试。本系统采用Proteus 8.10版本进行仿真,该版本支持STM32系列单片机的仿真,能够准确模拟各模块的工作状态,验证系统功能的可行性与稳定性。
在Proteus仿真环境中,需要搭建系统的硬件仿真模型,导入STM32F103C8T6单片机、各传感器、显示模块、执行器模块等元器件,按照系统硬件原理图连接各模块,然后导入Keil MDK编译生成的HEX文件,进行仿真测试。
5.2 仿真模型搭建
根据系统硬件原理图,在Proteus中搭建仿真模型,具体步骤如下:
- 新建Proteus项目,选择“New Project”,输入项目名称,选择保存路径,点击“Next”,选择“Create a blank project”,点击“Finish”,完成项目创建。
- 添加元器件:在Proteus的元器件库中搜索并添加所需的元器件,包括STM32F103C8T6、DHT11、光敏电阻(LDR)、MG811二氧化碳检测模块、OLED显示屏(128×64 I2C)、继电器模块、按键、蜂鸣器、LED指示灯、电阻、电容、三极管、稳压芯片(AMS1117-3.3)等。
- 绘制仿真电路:按照系统硬件原理图,将各元器件拖拽到仿真界面中,连接各模块的线路,确保接线正确,避免出现短路、断路等问题。例如,STM32的电源引脚连接AMS1117-3.3的输出端,传感器模块的信号引脚连接STM32的对应GPIO口,执行器模块的控制引脚连接STM32的GPIO口等。
- 设置元器件参数:根据系统设计要求,设置各元器件的参数,如电阻的阻值、电容的容量、光敏电阻的特性参数等,确保仿真结果与实际情况一致。
- 导入HEX文件:将Keil MDK编译生成的HEX文件导入STM32F103C8T6单片机中,具体操作:双击STM32F103C8T6单片机,在弹出的对话框中,点击“Program File”,选择编译好的HEX文件,点击“OK”,完成HEX文件导入。
5.3 仿真测试内容与结果
搭建好仿真模型后,启动仿真,对系统的各项功能进行测试,验证系统是否满足设计要求,具体测试内容与结果如下:
5.3.1 传感器数据采集功能测试
启动仿真后,观察DHT11温湿度传感器、光敏电阻、MG811二氧化碳检测模块的采集情况,通过OLED显示屏查看采集到的温湿度、光照强度、二氧化碳浓度数据。测试结果表明,传感器能够正常采集环境参数,数据实时更新,采集到的温湿度、光照强度、二氧化碳浓度数据在合理范围内,与设定的传感器性能指标一致,说明传感器采集模块工作正常。
5.3.2 OLED显示功能测试
观察OLED显示屏的显示情况,测试正常显示界面与参数设置界面的切换功能。测试结果表明,OLED显示屏能够正常显示采集到的环境参数、执行器工作状态等信息,显示清晰、稳定;按下设置键(K1)能够顺利进入参数设置界面,按下确认键(K4)能够保存参数并返回正常显示界面,显示功能符合设计要求。
5.3.3 按键处理功能测试
在仿真过程中,分别按下设置键、增加键、减少键、确认键,观察系统的响应情况。测试结果表明,按键能够正常响应,按下设置键可切换到参数设置界面,按下增加键、减少键可调整阈值,按下确认键可保存参数,按键处理功能准确、可靠,无误操作,符合设计要求。
5.3.4 温湿度调控功能测试
设置温度阈值为25℃,湿度阈值为60%RH,通过调整仿真环境中的温湿度(如修改DHT11的参数、调整光敏电阻的光照强度),观察执行器的工作状态。测试结果表明,当实际温度低于25℃时,加热继电器吸合,加热设备开启;当实际温度达到25℃时,加热继电器断开,加热设备关闭;当实际湿度高于60%RH时,除湿继电器吸合,除湿设备开启;当实际湿度达到60%RH时,除湿继电器断开,除湿设备关闭,温湿度调控功能正常,能够维持大棚内温湿度在预定范围内。
5.3.5 声光报警功能测试
调整仿真环境中的温湿度,使实际湿度超过60%RH,或实际温度低于25℃,观察声光报警模块的工作状态。测试结果表明,当参数超出阈值时,蜂鸣器发声,LED指示灯点亮,实现声光报警;当参数恢复到阈值范围内时,蜂鸣器停止发声,LED指示灯熄灭,报警功能正常,符合设计要求。
5.4 仿真结果分析
通过上述仿真测试,系统的各项功能均能够正常实现,具体分析如下:
- 传感器采集模块能够精准采集大棚内的温湿度、光照强度、二氧化碳浓度数据,数据实时、准确,满足系统的采集需求。
- OLED显示模块能够清晰、稳定地显示各项环境参数与系统状态,人机交互友好,便于用户查看。
- 按键处理模块能够准确响应用户的操作,实现参数阈值的设置与保存,操作便捷、可靠。
- 温湿度调控模块能够根据环境参数与阈值的对比,自动控制执行器工作,维持温湿度在预定范围内,调控响应迅速、稳定。
- 声光报警模块能够在参数超出阈值时及时发出报警提示,报警功能可靠,能够提醒用户及时处理异常情况。
仿真结果表明,本系统的硬件电路设计合理,软件程序编写正确,各项功能均满足题目要求,系统运行稳定、可靠,能够实现大棚环境的精准监测与智能调控。
6 总结与展望
6.1 总结
本文围绕基于STM32的大棚环境监测系统Proteus仿真展开研究,结合题目要求,完成了系统的硬件设计、软件编程与Proteus仿真测试,主要研究成果如下:
- 明确了系统的功能需求与性能指标,完成了硬件选型,搭建了系统的总体架构,确定了主控模块、传感器采集模块、显示模块、执行器模块、人机交互与报警模块的组成与连接方式。
- 详细设计了各模块的硬件电路,包括主控模块的电源电路、复位电路、晶振电路,传感器采集模块的DHT11电路、光敏电阻电路、二氧化碳检测模块电路,以及显示模块、执行器模块、人机交互与报警模块的电路,绘制了系统总体硬件原理图。
- 基于Keil MDK开发环境,采用C语言编写了系统软件程序,采用模块化设计思想,完成了初始化程序、传感器数据采集程序、数据处理程序、OLED显示程序、按键处理程序、温湿度调控程序、声光报警程序的编写,实现了系统的各项功能。
- 在Proteus仿真环境中搭建了系统仿真模型,导入软件程序,进行了全面的仿真测试,验证了系统的各项功能,仿真结果表明,系统能够正常采集环境参数、实现参数显示、自动调控、声光报警等功能,满足题目要求。
本系统采用STM32F103C8T6为主控芯片,具有结构简单、成本低廉、实用性强、运行稳定等特点,能够满足大棚环境监测的实际需求,为大棚种植的智能化管理提供了一种可行的解决方案。
6.2 展望
本文设计的大棚环境监测系统虽然实现了基本的监测与调控功能,但仍存在一些不足,未来可从以下几个方面进行改进与完善:
- 提高参数采集精度:目前系统采用的DHT11温湿度传感器、光敏电阻的精度有限,未来可选用精度更高的传感器(如DHT22温湿度传感器、数字式光照传感器),提高环境参数的采集精度。
- 增加远程监测功能:目前系统仅能在现场查看环境参数与控制设备,未来可增加无线通信模块(如WiFi、蓝牙、LoRa),实现远程监测与控制,用户可通过手机APP或电脑端查看大棚环境参数,远程调整阈值、控制执行器工作。
- 完善调控功能:目前系统仅实现了温湿度的自动调控,未来可增加光照强度、二氧化碳浓度的调控功能,如通过补光灯控制光照强度,通过二氧化碳发生器控制二氧化碳浓度,进一步提高大棚种植的智能化水平。
- 增加数据存储功能:未来可增加SD卡模块,将采集到的环境参数进行存储,便于用户查看历史数据,分析农作物生长与环境参数的关系,为大棚种植提供数据支持。
随着嵌入式技术、传感器技术、物联网技术的不断发展,大棚环境监测系统将向更加智能化、精准化、远程化的方向发展,未来有望在农业现代化建设中发挥更大的作用。
参考文献
[1] 王福豹, 史龙, 任丰原. 物联网技术及其应用研究[J]. 电子技术应用, 2020, 46(01): 1-5.
[2] STM32F103C8T6数据手册[Z]. STMicroelectronics, 2019.
[3] 张迎新, 王忠民, 黄仁欣. STM32单片机原理及应用[M]. 北京: 电子工业出版社, 2021.
[4] 李岩, 王磊. 基于STM32的大棚温湿度监测系统设计[J]. 农业工程技术, 2022, 42(06): 78-80.
[5] 陈忠平. 传感器原理及应用[M]. 北京: 机械工业出版社, 2020.
[6] Proteus仿真软件使用教程[Z]. Labcenter Electronics, 2020.
[7] 王静, 李建明. 基于I2C总线的OLED显示屏驱动设计[J]. 单片机与嵌入式系统应用, 2021, 21(03): 67-70.
[8] 刘军, 张敏. 基于STM32的自动报警系统设计[J]. 电子技术, 2020, 49(08): 45-47.
致谢
本论文的完成,离不开各位老师、同学和家人的支持与帮助。首先,我谨向我的导师致以最诚挚的感谢!在论文的研究与撰写过程中,导师给予了我悉心的指导,从系统方案设计、硬件电路设计、软件程序编写到Proteus仿真测试,都提出了宝贵的意见和建议,帮助我解决了研究过程中遇到的诸多问题,使我能够顺利完成论文的撰写工作。
感谢各位同学在论文研究过程中给予我的帮助与交流,他们的建议和想法为我提供了新的思路,使我能够不断完善系统设计与论文内容。同时,感谢家人的理解与支持,他们的鼓励是我前进的动力,让我能够全身心投入到论文的研究与撰写中。
感谢在论文研究过程中参考的各类文献、手册和资料,这些资料为论文的撰写提供了重要的理论支持与技术参考。最后,感谢各位评审老师在百忙之中对本论文进行评审与指导。
更多推荐


所有评论(0)