【单片机毕业设计选题】基于单片机的西瓜大棚控制

基于单片机的西瓜大棚控制系统

摘 要

在现代化农业种植中,西瓜大棚的环境控制对于保证西瓜品质与产量具有重要意义。传统的大棚管理模式多依赖人工经验进行温湿度调节与灌溉操作,存在响应滞后、控制精度低、劳动力成本高等问题。针对这些痛点,本研究设计了一套基于STM32F103C8T6单片机的西瓜大棚智能控制系统。该系统采用模块化设计思路,集成了温湿度传感器、土壤湿度传感器、光照传感器以及二氧化碳浓度传感器,实现对大棚内环境参数的实时采集与监测。系统提供自动与手动两种工作模式,在自动模式下可根据预设阈值自动控制灯光、风扇、水泵等执行机构,在手动模式下用户可通过按键直接操控设备。系统还配备了OLED显示屏用于本地数据展示,并通过无线模块将环境状态同步至手机APP,实现远程监控功能。

经过系统性的软硬件联调与功能测试,本文设计的西瓜大棚控制系统能够稳定采集各项环境参数,控制响应准确可靠,自动模式下的阈值判断与执行逻辑符合预期,手动模式下的设备控制功能正常,无线通信模块能够将数据实时传输至手机APP端。测试结果表明,该系统运行稳定、操作便捷,能够有效减轻人工管理负担,为西瓜大棚的智能化管理提供了一种可行的技术方案,具有一定的实用价值和推广应用前景。

关键词:STM32F103C8T6;西瓜大棚;环境监测;自动控制;无线监控

Abstract

In modern agricultural cultivation, environmental control of watermelon greenhouses plays a significant role in ensuring watermelon quality and yield. Traditional greenhouse management models mostly rely on manual experience for temperature and humidity adjustment and irrigation operations, which suffer from problems such as slow response, low control precision, and high labor costs. To address these pain points, this study designs an intelligent control system for watermelon greenhouses based on the STM32F103C8T6 microcontroller. The system adopts a modular design approach, integrating temperature and humidity sensors, soil moisture sensors, light sensors, and carbon dioxide concentration sensors to achieve real-time collection and monitoring of environmental parameters inside the greenhouse. The system provides two working modes: automatic and manual. In automatic mode, it can automatically control lighting, fans, and water pumps according to preset thresholds, while in manual mode, users can directly operate devices through buttons. The system is also equipped with an OLED display for local data presentation and uses a wireless module to synchronize greenhouse status to a mobile APP for remote monitoring.

After systematic hardware-software integration and functional testing, the watermelon greenhouse control system designed in this paper can stably collect various environmental parameters with accurate and reliable control responses. The threshold judgment and execution logic in automatic mode meet expectations, the equipment control functions in manual mode work properly, and the wireless communication module can transmit data to the mobile APP in real time. Test results demonstrate that the system operates stably and conveniently, effectively reducing manual management burdens, providing a feasible technical solution for intelligent management of watermelon greenhouses, and possessing certain practical value and application prospects.

****Key words:****STM32F103C8T6; watermelon greenhouse; environmental monitoring; automatic control; remote monitoring

目 录

[第一章 绪论](#第一章 绪论)

[1.1 选题背景及其意义](#1.1 选题背景及其意义)

[1.2 国内外研究现状及发展趋势](#1.2 国内外研究现状及发展趋势)

[1.2.1 国内研究现状](#1.2.1 国内研究现状)

[1.2.2 国外研究现状](#1.2.2 国外研究现状)

[1.3 本文主要内容](#1.3 本文主要内容)

[1.4 本文结构安排](#1.4 本文结构安排)

[1.5 本章小结](#1.5 本章小结)

[第二章 系统总体设计方案](#第二章 系统总体设计方案)

[2.1 系统需求分析](#2.1 系统需求分析)

[2.2 系统总体框架](#2.2 系统总体框架)

[2.3 主要模块选型](#2.3 主要模块选型)

[2.3.1 主控芯片选型](#2.3.1 主控芯片选型)

[2.3.2 显示模块选型](#2.3.2 显示模块选型)

[2.3.3 温湿度传感器选型](#2.3.3 温湿度传感器选型)

[2.3.4 无线通信模块选型](#2.3.4 无线通信模块选型)

[第三章 系统硬件设计](#第三章 系统硬件设计)

[3.1 STM32F103C8T6最小系统电路](#3.1 STM32F103C8T6最小系统电路)

[3.2 DHT11温湿度传感器电路](#3.2 DHT11温湿度传感器电路)

[3.3 土壤湿度传感器电路](#3.3 土壤湿度传感器电路)

[3.4 光敏电阻光照传感器电路](#3.4 光敏电阻光照传感器电路)

[3.5 二氧化碳浓度传感器电路](#3.5 二氧化碳浓度传感器电路)

[3.6 OLED显示电路](#3.6 OLED显示电路)

[3.7 按键输入电路](#3.7 按键输入电路)

[3.8 灯光控制电路](#3.8 灯光控制电路)

[3.9 水泵控制电路](#3.9 水泵控制电路)

[3.10 风扇控制电路](#3.10 风扇控制电路)

[3.11 步进电机驱动电路](#3.11 步进电机驱动电路)

[3.12 ESP8266无线通信电路](#3.12 ESP8266无线通信电路)

[3.13 整体电路分析](#3.13 整体电路分析)

[第四章 系统软件设计](#第四章 系统软件设计)

[4.1 主程序设计](#4.1 主程序设计)

[4.2 传感器数据采集子程序设计](#4.2 传感器数据采集子程序设计)

[4.3 按键扫描与处理子程序设计](#4.3 按键扫描与处理子程序设计)

[4.4 自动控制逻辑子程序设计](#4.4 自动控制逻辑子程序设计)

[4.5 手动控制子程序设计](#4.5 手动控制子程序设计)

[4.6 OLED显示子程序设计](#4.6 OLED显示子程序设计)

[4.7 无线通信子程序设计](#4.7 无线通信子程序设计)

[4.8 本章小结](#4.8 本章小结)

[第五章 系统测试与分析](#第五章 系统测试与分析)

[5.1 系统整体测试](#5.1 系统整体测试)

[5.2 系统功能测试](#5.2 系统功能测试)

[5.2.1 传感器采集功能测试](#5.2.1 传感器采集功能测试)

[5.2.2 自动模式控制功能测试](#5.2.2 自动模式控制功能测试)

[5.2.3 手动模式控制功能测试](#5.2.3 手动模式控制功能测试)

[5.2.4 OLED显示功能测试](#5.2.4 OLED显示功能测试)

[5.2.5 无线通信功能测试](#5.2.5 无线通信功能测试)

[5.3 测试结果分析](#5.3 测试结果分析)

[第六章 总结与展望](#第六章 总结与展望)

[6.1 总结](#6.1 总结)

[6.2 展望](#6.2 展望)

参考文献

[致 谢](#致 谢)

第一章 绪论

1.1 选题背景及其意义

西瓜作为夏季消暑的主要水果之一,在我国种植面积广泛,市场需求量大。西瓜的生长发育对环境条件要求较高,温度、湿度、光照强度以及土壤水分等参数都会直接影响西瓜的糖分积累、果实品质和产量。传统的大棚种植方式中,种植户通常依靠温度计、湿度计等简单仪器结合个人经验来判断大棚内的环境状况,再手动开启或关闭通风设备、灌溉系统等。这种方式存在明显不足:人工判断存在主观误差,响应速度慢,难以将环境参数精确控制在西瓜生长的最佳范围内;夜间或种植户外出时,环境变化无法及时处理;规模化种植场景下,人工巡检的工作量巨大,劳动力成本居高不下。

随着嵌入式技术与物联网技术的快速发展,基于单片机的智能控制系统在农业领域得到了越来越广泛的应用。这类系统能够自动采集环境数据,根据预设逻辑控制执行设备,并通过无线通信实现远程查看,从而将种植户从繁琐的人工操作中解放出来。本研究针对西瓜大棚的实际种植需求,设计一套以STM32F103C8T6为核心控制器的智能控制系统,实现对大棚内温度、湿度、光照、土壤水分及二氧化碳浓度的综合监测与自动调控。该系统有助于提高西瓜种植的精细化管理水平,降低人工依赖,对于推动传统农业向智慧农业转型具有积极的现实意义。

1.2 国内外研究现状及发展趋势

1.2.1 国内研究现状

国内学者在基于单片机的农业大棚智能控制领域开展了大量研究工作,取得了丰富的理论成果与应用经验。杨明川等人于2024年提出了一种基于STM32单片机的智能大棚监控系统设计方案,该系统集成了温湿度传感器、光照传感器及二氧化碳传感器,能够实时采集大棚环境数据并通过无线模块上传至上位机,实现了对大棚环境的远程监测功能1。代国勇于2017年完成了基于STM32单片机温室大棚环境的智能控制系统设计及实现工作,该研究不仅实现了环境参数的实时采集,还设计了自动控制逻辑,能够根据传感器数据自动控制通风、灌溉等执行设备,为温室大棚的智能化管理提供了完整的软硬件解决方案2。王冬梅与路敬祎于2017年设计了基于单片机的温室大棚智能监控系统,该系统采用模块化设计思想,将数据采集、逻辑控制与显示功能分离,提高了系统的可维护性与扩展性3。韩力英等人于2016年完成了基于单片机的温室大棚智能监控系统设计,该研究重点关注了传感器选型与信号处理电路的设计,确保了数据采集的准确性与系统的长期稳定性4。贾海云于2021年设计了基于DS18B20的智能测温系统,该温度传感器具有数字信号输出、测量精度高、接线简单等优点,被广泛应用于大棚温度监测场景中5。郭营营于2016年对LCD 1602液晶显示屏的应用进行了系统介绍,为单片机系统中人机交互界面的设计提供了技术参考6。董天慧等人于2024年设计了基于STM32的多功能智能灌溉系统,该系统能够根据土壤湿度传感器数据自动控制水泵启停,实现了精准灌溉,有效节约了水资源7。胡开明等人于2024年提出了基于物联网的智慧农业大棚监控系统,该系统将物联网技术与传统大棚控制相结合,通过云平台实现数据的远程存储与分析,提升了农业大棚的信息化水平8。李德英等人于2021年设计了基于手机APP的植物生长环境实时监控系统,用户可以通过手机端随时查看植物生长环境的各项参数并进行远程控制,极大提升了用户体验与管理的便捷性9

1.2.2 国外研究现状

国外学者在农业智能化领域同样开展了深入的研究工作,取得了诸多创新性成果。Gedkhaw E与Soodtoetong N于2025年在Energy Engineering期刊上发表了关于太阳能驱动的水培有机农业智能控制系统研究成果,该系统将太阳能发电技术与温室环境控制相结合,在降低能源消耗的同时实现了对温室内部环境参数的精准调控10。Zhang H与Pan H于2025年在Frontiers in Computing and Intelligent Systems期刊上发表了智能农业温室系统的设计研究,该研究提出了一种分层控制架构,将传感器采集层、数据处理层与执行控制层分离,提高了系统的响应速度与控制精度11。Haicheng W等人于2025年在Journal of Electronic Research and Application期刊上发表了适应作物生长规律的农业温室智能灌溉系统研究,该系统引入了作物生长模型,根据不同生长阶段对水分的需求动态调整灌溉策略,实现了灌溉时量与灌溉水量的精细化控制12。这些研究表明,国外在温室智能控制领域正朝着能源节约、模型驱动与精细化管理方向发展,为后续研究提供了有益参考。

1.3 本文主要内容

本文围绕西瓜大棚环境智能控制这一核心目标,采用STM32F103C8T6单片机作为主控制器,设计并实现了一套集环境监测、自动控制、手动控制与远程监控于一体的智能控制系统。系统硬件部分包括DHT11温湿度传感器、土壤湿度传感器、光敏电阻传感器、二氧化碳浓度传感器、OLED显示屏、按键输入模块、灯光控制电路、水泵驱动电路、风扇控制电路、步进电机驱动电路以及ESP8266无线通信模块。软件部分采用模块化编程思路,分别实现了传感器数据采集子程序、阈值判断与自动控制子程序、按键扫描与模式切换子程序、OLED显示子程序以及无线数据传输子程序。系统提供自动与手动两种工作模式,在自动模式下根据采集到的环境数据与预设阈值的比较结果自动控制灯光、风扇、水泵等设备;在手动模式下用户可通过按键直接控制各执行机构。通过无线模块将大棚环境状态同步至手机APP,实现远程监控功能。

1.4 本文结构安排

本文共分为六个章节。第一章为绪论,阐述了西瓜大棚智能控制系统的选题背景与研究意义,梳理了国内外相关研究现状,并介绍了本文的主要研究内容。第二章为系统总体设计方案,分析了系统的功能需求,给出了硬件方案框图和模块选型对比。第三章为系统硬件设计,详细介绍了主控电路、传感器电路、显示电路、输入电路、执行电路及无线通信电路的原理与接口设计。第四章为系统软件设计,给出了各功能模块的软件流程图与程序实现说明。第五章为系统测试与分析,通过功能测试验证了各项设计指标的达成情况。第六章为总结与展望,对全文工作进行总结并对后续改进方向进行展望。

1.5 本章小结

本章首先从西瓜大棚种植管理的实际需求出发,分析了传统人工管理模式存在的响应滞后、控制精度低、劳动力成本高等问题,阐述了基于单片机的智能控制系统在农业大棚领域应用的必要性与现实意义。随后从国内与国外两个维度梳理了相关领域的研究现状,介绍了国内学者在温室大棚智能监控系统方面的研究成果以及国外学者在智能农业系统领域的最新进展。最后对本文的主要研究内容和章节结构进行了概括说明。通过本章的论述,明确了本研究的选题依据与研究定位,为后续各章节的展开奠定了基础。

第二章 系统总体设计方案

2.1 系统需求分析

西瓜大棚智能控制系统的设计目标是实现大棚内环境参数的自动监测与智能调控,减轻人工管理负担,提高西瓜种植的精细化管理水平。西瓜从幼苗期到果实成熟期对温度、湿度、光照及土壤水分均有不同的要求,温度过高或过低都会影响西瓜的正常生长发育,土壤水分不足会导致果实偏小、糖度降低,光照强度不足则会影响光合作用效率。因此,系统需要能够实时检测大棚内的空气温度与湿度、土壤湿度、光照强度以及二氧化碳浓度,并根据这些参数自动控制相应的执行设备,将环境条件维持在西瓜生长的适宜范围内。

具体而言,系统应满足以下功能需求:第一,具备多传感器数据采集能力,能够稳定读取温湿度、土壤湿度、光照强度及二氧化碳浓度数据。第二,具备本地显示功能,通过OLED屏幕实时展示当前的工作模式、环境参数及设定阈值。第三,具备按键输入功能,用户可通过按键切换工作模式、调整控制阈值以及切换显示界面。第四,具备自动控制功能,在自动模式下当光照低于阈值时自动开启补光灯光,当温度高于阈值时自动开启风扇降温,当土壤湿度低于阈值时自动启动水泵灌溉,当二氧化碳浓度高于阈值时自动开启风扇通风。第五,具备手动控制功能,用户可在手动模式下直接控制灯光、风扇、水泵及步进电机的启停。第六,具备无线通信功能,通过WiFi模块将大棚环境状态同步至手机APP,实现远程监控。

2.2 系统总体框架

根据上述功能需求分析,本系统采用模块化设计思想,以STM32F103C8T6单片机作为整个系统的控制核心,外围电路按照功能划分为传感器采集模块、输入模块、显示模块、执行模块及无线通信模块。传感器采集模块负责获取大棚内的环境参数,包括DHT11温湿度传感器、土壤湿度传感器、光敏电阻光照传感器以及二氧化碳浓度传感器。输入模块由五个独立按键组成,用于模式切换、阈值调整及显示界面切换。显示模块采用0.96寸OLED屏幕,用于显示工作模式、环境数据及设定阈值。执行模块包括灯光控制电路、水泵控制电路、风扇控制电路以及步进电机驱动电路,分别控制补光灯、灌溉水泵、通风风扇及模拟施肥的滴灌装置。无线通信模块采用ESP8266 WiFi模块,将采集到的环境数据上传至手机APP端,同时接收来自APP的控制指令。系统总体硬件框架如图2-1所示。

图2-1 系统总体硬件框架图

在软件功能方面,系统需要完成传感器数据采集与处理、阈值比较与逻辑判断、按键响应与模式管理、OLED界面显示更新以及无线数据收发等任务。传感器数据采集子程序负责周期性地读取各传感器的数值并进行必要的滤波处理。阈值比较子程序将采集到的实时数据与用户设定的阈值进行比较,根据比较结果决定是否触发相应的执行动作。按键处理子程序负责扫描按键状态,识别按键动作并执行对应的功能,包括模式切换、阈值增减及显示界面切换。显示子程序将工作模式、环境参数及阈值信息以合适的格式呈现在OLED屏幕上。无线通信子程序负责将环境数据打包发送至手机APP,并接收来自APP的控制指令。这些软件模块相互配合,共同构成了完整的系统软件架构。

2.3 主要模块选型

本节对系统中的关键元器件进行选型分析,通过方案对比确定最合适的元器件型号。选型过程中综合考虑性能指标、成本因素、功耗水平以及与主控芯片的兼容性。

2.3.1 主控芯片选型

方案一采用STM32F103C8T6作为主控芯片。该芯片基于ARM Cortex-M3内核,工作频率最高可达72MHz,内置64KB的Flash存储器和20KB的SRAM,拥有多达37个GPIO引脚,集成有ADC、USART、I2C、SPI等多种通信接口。该芯片支持3.3V供电,具有多种低功耗模式,能够满足本系统对多传感器接入、数据处理及通信的需求。STM32F103C8T6单片机如图2-2所示。

图2-2 STM32F103C8T6单片机实物图

方案二采用STC89C52作为主控芯片。该芯片是基于8051内核的8位单片机,工作频率为12MHz,内置8KB的Flash存储器和512字节的RAM,拥有32个GPIO引脚。STC89C52具有开发简单、资料丰富、成本低廉的优点,但其处理速度较慢,片上资源有限,难以同时处理多个传感器的数据采集与通信任务,且不支持硬件I2C和ADC,需要外扩模块才能实现模拟信号采集。

综合比较两种方案,STM32F103C8T6在运算速度、存储容量及外设集成度方面均优于STC89C52,能够更好地满足本系统对多传感器数据采集、实时控制及无线通信的需求。因此选择STM32F103C8T6作为本系统的主控芯片。

2.3.2 显示模块选型

方案一采用0.96寸OLED显示屏。该显示屏采用OLED自发光技术,无需背光源,具有对比度高、功耗低、视角宽、响应速度快等优点。分辨率为128×64像素,支持I2C通信接口,仅需两根数据线即可与单片机连接,占用引脚资源少。工作电压为3.3V,与STM32单片机电平匹配。OLED显示屏如图2-3所示。

图2-3 OLED显示屏实物图

方案二采用LCD1602液晶显示屏。该显示屏可以同时显示2行共32个字符,采用并行通信接口,需要至少11个GPIO引脚才能驱动。LCD1602本身不发光,需要外加背光才能在暗处看清显示内容,功耗相对较高。虽然LCD1602成本低廉且技术成熟,但其显示内容有限、引脚占用多,不利于系统的简洁设计。

综合考虑引脚资源占用、显示效果及功耗因素,本系统选择0.96寸OLED显示屏作为显示模块。

2.3.3 温湿度传感器选型

方案一采用DHT11数字温湿度传感器。DHT11是一款集成了温湿度传感元件和信号处理电路的数字传感器,采用单总线通信接口,仅需一个GPIO引脚即可完成数据传输。温度测量范围为-20℃至+60℃,精度为±2℃;湿度测量范围为5%至95%RH,精度为±5%RH。该传感器响应速度快、抗干扰能力强、性价比高。DHT11传感器如图2-4所示。

图2-4 DHT11温湿度传感器实物图

方案二采用DS18B20温度传感器配合HS1101湿度传感器的组合方案。DS18B20是单总线数字温度传感器,测量精度高,但只能测量温度。HS1101是电容式湿度传感器,需要额外的信号处理电路才能输出数字信号,电路设计较为复杂,且HS1101在极低或极高湿度环境下测量精度下降。

综合考虑电路复杂度、成本及集成度,本系统选择DHT11作为温湿度传感器,一个器件同时满足温度和湿度的检测需求。

2.3.4 无线通信模块选型

方案一采用ESP8266 WiFi模块。ESP8266是一款低成本、高性能的WiFi模块,支持802.11 b/g/n协议,内置TCP/IP协议栈,可通过串口与单片机通信。该模块支持STA模式、AP模式及混合模式,能够方便地连接无线路由器并与手机APP进行数据交互。工作电压为3.3V,与STM32单片机电平兼容。ESP8266模块如图2-5所示。

图2-5 ESP8266 WiFi模块实物图

方案二采用HC-05蓝牙模块。HC-05是一款经典的蓝牙串口模块,支持蓝牙2.0协议,通信距离约为10米。蓝牙模块同样通过串口与单片机通信,但蓝牙连接需要配对操作,且通信距离较短,在需要远程监控的场景中不如WiFi模块灵活。

考虑到本系统需要通过手机APP实现远程监控,WiFi模块可以直接连接互联网,不受距离限制,因此选择ESP8266作为无线通信模块。

第三章 系统硬件设计

3.1 STM32F103C8T6最小系统电路

STM32F103C8T6最小系统是保证单片机正常工作的基础电路,包括电源电路、时钟电路、复位电路、启动模式选择电路及程序下载电路。电源电路为单片机提供稳定的3.3V工作电压,时钟电路为单片机提供工作时钟信号,复位电路用于在程序异常时恢复单片机至初始状态,启动模式选择电路用于选择单片机的启动方式,程序下载电路用于烧录用户程序。STM32F103C8T6最小系统电路如图3-1所示。

图3-1 STM32F103C8T6最小系统电路图

电源电路采用AMS1117-3.3线性稳压芯片,将USB接口输入的5V直流电压转换为3.3V,为单片机及其他3.3V器件供电。输入端正负极之间并联一个100μF电解电容和一个0.1μF陶瓷电容用于滤波,输出端正负极之间同样并联滤波电容以保证输出电压的纯净度。时钟电路包括8MHz外部高速晶振和32.768kHz外部低速晶振。8MHz晶振两端分别连接STM32的OSC_IN和OSC_OUT引脚,两个22pF的负载电容分别与晶振两端连接后接地,该晶振经过片内锁相环倍频后最高可得到72MHz的系统时钟。32.768kHz晶振连接至OSC32_IN和OSC32_OUT引脚,用于实时时钟功能。复位电路由一个10kΩ上拉电阻和一个0.1μF电容组成,复位按键并联在电容两端,RESET引脚常态下通过上拉电阻保持高电平,当按键按下时RESET引脚被拉低,单片机进入复位状态。启动模式选择电路通过BOOT0和BOOT1两个引脚的电平组合选择启动方式,BOOT0通过10kΩ电阻下拉至地,BOOT1悬空或下拉,系统从内部Flash启动。程序下载电路采用SWD两线调试接口,SWDIO和SWCLK两个引脚分别连接至PA13和PA14,配合SWD接口下载器即可完成程序烧录与在线调试。

3.2 DHT11温湿度传感器电路

DHT11数字温湿度传感器用于采集西瓜大棚内的空气温度与湿度数据。该传感器内部集成了电阻式感湿元件和NTC测温元件,并内置了模数转换电路与数字信号处理电路,直接输出数字信号,无需外部信号调理电路。DHT11采用单总线通信协议,仅需一根数据线即可与单片机完成双向通信,通信距离可达20米,非常适合大棚环境下的传感器部署。DHT11温湿度传感器电路如图3-2所示。

图3-2 DHT11温湿度传感器电路图

DHT11传感器共有四个引脚,分别为VCC电源正极、DATA数据线、NC空脚和GND电源地。VCC引脚连接至3.3V电源,GND引脚连接至系统地。DATA引脚为单总线数据接口,连接至STM32单片机的PA4 GPIO引脚。由于DHT11的DATA引脚在通信时为开漏输出,需要在数据线与电源正极之间连接一个5.1kΩ的上拉电阻,以确保总线在空闲状态时为高电平。单片机通过PA4引脚与DHT11进行单总线通信,按照DHT11的通信协议发送起始信号并读取40位数据,其中包括16位湿度数据、16位温度数据以及8位校验数据。单片机对接收到的数据进行校验后,将湿度值和温度值分离出来,用于后续的显示与控制逻辑判断。

3.3 土壤湿度传感器电路

土壤湿度传感器用于检测西瓜根部土壤的含水量,为自动灌溉提供判断依据。本系统采用电阻式土壤湿度传感器,其工作原理是利用土壤含水量不同导致电极间电阻值发生变化的特性,将土壤湿度的变化转换为电压信号输出。传感器探头插入土壤中,土壤中的水分含量越高,两个电极之间的导电性能越好,输出阻抗越低;土壤越干燥,输出阻抗越高。传感器模块板载了电压比较电路,可输出模拟电压信号和数字开关信号两种形式。土壤湿度传感器电路如图3-3所示。

图3-3 土壤湿度传感器电路图

土壤湿度传感器模块共有四个引脚,分别为VCC电源正极、GND电源地、DO数字信号输出端和AO模拟信号输出端。VCC引脚连接至5V电源,因为传感器探头需要5V供电才能正常工作,GND引脚连接至系统地。AO模拟输出引脚连接至STM32单片机的PA0 ADC输入通道。STM32内部的12位模数转换器将PA0引脚上的模拟电压转换为数字量,转换范围为0至4095,对应0V至3.3V的输入电压。由于传感器模块的模拟输出信号范围与单片机ADC输入范围可能存在差异,实际使用时通过软件将采集到的ADC数值映射为土壤湿度百分比。单片机周期性地读取PA0引脚的ADC值,经过换算后得到当前土壤湿度数据,与预设的湿度下限阈值进行比较,当湿度低于阈值时触发水泵控制信号。

3.4 光敏电阻光照传感器电路

光照传感器用于检测西瓜大棚内的光照强度,为自动补光提供判断依据。本系统采用光敏电阻作为感光元件,其阻值随光照强度的变化而变化,光照越强阻值越小,光照越弱阻值越大。光敏电阻与一个固定电阻组成分压电路,将光照强度转换为电压信号输出。光敏电阻光照传感器电路如图3-4所示。

图3-4 光敏电阻光照传感器电路图

光敏电阻一端连接至3.3V电源,另一端与一个10kΩ固定电阻串联后接地,两个电阻的连接点作为分压输出端,连接至STM32单片机的PA1 ADC输入通道。当光照强度较大时,光敏电阻阻值变小,分压输出端的电压升高;当光照强度较小时,光敏电阻阻值变大,分压输出端的电压降低。STM32通过PA1引脚的ADC功能读取该电压值,将模拟电压转换为数字量后,经过换算得到当前光照强度的相对数值。单片机将该数值与用户预设的光照下限阈值进行比较,在自动模式下当检测到光照强度低于阈值时,通过PB0引脚输出高电平开启补光灯光。由于光敏电阻的响应速度较快,软件中可以加入适当的滤波算法以消除瞬间光线变化引起的误判。

3.5 二氧化碳浓度传感器电路

二氧化碳浓度传感器用于监测西瓜大棚内的CO₂浓度。西瓜在光合作用过程中会吸收二氧化碳,当大棚内二氧化碳浓度过低时会限制光合作用的进行,影响西瓜的生长发育。当二氧化碳浓度过高时,又可能对工作人员进入大棚作业造成安全隐患。本系统采用MH-Z19B红外二氧化碳传感器,该传感器基于非色散红外吸收原理检测CO₂浓度,具有选择性好、抗干扰能力强、寿命长等优点。二氧化碳传感器电路如图3-5所示。

图3-5 二氧化碳传感器电路图

MH-Z19B二氧化碳传感器采用串行通信接口与单片机交换数据,支持UART通信模式和PWM输出模式。本系统选用UART通信模式,传感器的VCC引脚连接至5V电源,GND引脚连接至系统地,传感器的TXD引脚连接至STM32的PB15 SDA引脚用于数据接收,RXD引脚连接至STM32的PB14 SCL引脚用于数据发送。单片机通过串口向传感器发送读取指令,传感器接收到指令后将当前CO₂浓度值通过串口返回。单片机解析返回的数据包,提取CO₂浓度数值,用于本地显示和自动控制判断。在自动模式下,当检测到CO₂浓度超过预设上限阈值时,单片机通过PB6引脚输出高电平启动风扇进行通风换气,将大棚内的CO₂浓度降至安全范围。

3.6 OLED显示电路

OLED显示屏用于本地显示系统的工作模式、各项环境数据及设定阈值。本系统选用0.96寸OLED显示屏,分辨率为128×64像素,采用SSD1306驱动芯片,支持I2C通信接口。I2C接口仅需两根信号线即可完成数据传输,占用单片机引脚资源少。OLED显示电路如图3-6所示。

图3-6 OLED显示电路图

OLED显示屏模块共有四个引脚,分别为VCC电源正极、GND电源地、SCL时钟线和SDA数据线。VCC引脚连接至3.3V电源,GND引脚连接至系统地。SCL时钟线连接至STM32单片机的PB5引脚,SDA数据线连接至PB4引脚。在I2C通信协议中,SCL线负责传输时钟信号,由主设备STM32产生;SDA线负责传输数据,双向传输。STM32通过PB5引脚输出时钟信号,通过PB4引脚发送显示数据。OLED模块内部集成了上拉电阻,因此外部无需额外添加。单片机初始化OLED显示屏后,将工作模式字符串、温度值、湿度值、土壤湿度值、光照强度值、CO₂浓度值以及各控制阈值按照预定义的格式刷新显示在屏幕上。用户可通过按键切换显示界面,查看不同的环境参数页面。

3.7 按键输入电路

按键输入电路用于接收用户的操作指令,包括工作模式切换、控制阈值调整及显示界面切换。本系统共设计五个独立按键,每个按键对应一个GPIO输入引脚。按键采用轻触式微动开关,按下时导通,释放时断开。按键输入电路如图3-7所示。

图3-7 按键输入电路图

五个按键的一端分别连接至STM32单片机的PA8、PA11、PA12、PA13、PA15 GPIO引脚,另一端全部连接至系统地。每个GPIO引脚内部配置为上拉输入模式,在按键未按下时引脚通过内部上拉电阻保持高电平;当按键按下时,引脚与地导通,电平被拉低。单片机通过扫描这五个引脚的电平状态来检测按键动作。按键1用于切换自动模式与手动模式,按键2用于在设置状态下增加阈值数值,按键3用于在设置状态下减少阈值数值,按键4用于切换显示界面,按键5用于确认或退出设置状态。软件中加入了按键消抖处理,即在检测到电平变化后延时20毫秒再次读取引脚状态,确认按键确实被按下后再执行相应功能,避免了机械抖动造成的误触发。

3.8 灯光控制电路

灯光控制电路用于控制补光灯的开启与关闭。在自动模式下,当光照强度低于预设阈值时系统自动开启补光灯;在手动模式下,用户可通过按键直接控制补光灯。灯光控制电路如图3-8所示。

图3-8 灯光控制电路图

灯光控制采用继电器作为开关元件,通过继电器的触点控制交流220V补光灯的通断。继电器线圈由NPN型三极管S8050驱动,三极管的基极通过1kΩ电阻连接至STM32单片机的PB0引脚,发射极接地,继电器的线圈一端连接至5V电源,另一端连接至三极管的集电极。当PB0引脚输出高电平时,三极管饱和导通,继电器线圈得电,常开触点闭合,补光灯点亮;当PB0引脚输出低电平时,三极管截止,继电器线圈失电,触点断开,补光灯熄灭。续流二极管反向并联在继电器线圈两端,用于吸收三极管截止时线圈产生的反向感应电动势,保护三极管不被击穿。

3.9 水泵控制电路

水泵控制电路用于控制灌溉水泵的启动与停止。在自动模式下,当土壤湿度低于预设下限阈值时系统自动启动水泵;在手动模式下,用户可通过按键直接控制水泵。水泵控制电路如图3-9所示。

图3-9 水泵控制电路图

水泵同样采用继电器控制,电路结构与灯光控制电路相似。继电器驱动三极管的基极通过1kΩ电阻连接至STM32单片机的PB1引脚。当PB1引脚输出高电平时,三极管导通,继电器线圈得电,常开触点闭合,水泵通电工作;当PB1引脚输出低电平时,三极管截止,继电器失电,水泵停止工作。由于水泵属于感性负载,在启动和停止时会产生较大的电流冲击,因此选用触点容量为10A的继电器以保证长期运行的可靠性。

3.10 风扇控制电路

风扇控制电路用于控制通风风扇的启动与停止。在自动模式下,当温度超过上限阈值或二氧化碳浓度超过上限阈值时系统自动开启风扇;在手动模式下,用户可通过按键直接控制风扇。风扇控制电路如图3-10所示。

图3-10 风扇控制电路图

风扇控制同样采用继电器驱动方式,继电器驱动三极管的基极通过1kΩ电阻连接至STM32单片机的PB6引脚。当PB6引脚输出高电平时,三极管导通,继电器线圈得电,触点闭合,风扇通电运转;当PB6引脚输出低电平时,三极管截止,继电器失电,风扇停止。风扇的启停不仅用于降温,还用于通风换气降低CO₂浓度,因此在自动控制逻辑中,温度过高或CO₂浓度过高任一条件满足时都会触发风扇开启。

3.11 步进电机驱动电路

步进电机用于模拟施肥滴灌装置的驱动,通过控制步进电机的转动角度来实现定量滴灌。本系统选用28BYJ-48型五线四相步进电机,配合ULN2003驱动芯片实现电机驱动。步进电机驱动电路如图3-11所示。

图3-11 步进电机驱动电路图

ULN2003是达林顿晶体管阵列驱动芯片,内部集成了七路达林顿对管,每路最大输出电流可达500mA,输出端内置续流二极管,非常适合驱动步进电机等感性负载。ULN2003的输入端IN1至IN4分别连接至STM32单片机的PB7、PB8、PB9、PB10引脚,输出端OUT1至OUT4分别连接至步进电机的四相绕组。步进电机的公共端连接至5V电源。单片机按照四相八拍的时序依次给PB7至PB10引脚输出高低电平信号,ULN2003将输入信号反相放大后驱动步进电机的各相绕组依次通电,使步进电机按照设定的方向与步数转动。通过控制脉冲的数量可以精确控制电机的转动角度,从而控制滴灌的流量。

3.12 ESP8266无线通信电路

ESP8266无线通信模块用于实现单片机与手机APP之间的数据交互。模块将采集到的环境数据上传至手机APP,同时接收来自APP的控制指令。ESP8266模块通过串口与STM32单片机通信。无线通信电路如图3-12所示。

图3-12 ESP8266无线通信电路图

ESP8266模块共有八个引脚,其中VCC和GND为电源引脚,EN为使能引脚,RST为复位引脚,TXD为串口发送引脚,RXD为串口接收引脚,GPIO0和GPIO2用于模式配置。VCC引脚连接至3.3V电源,GND引脚连接至系统地。EN引脚通过10kΩ电阻上拉至3.3V使模块始终使能,RST引脚同样上拉至3.3V,GPIO0和GPIO2通过10kΩ电阻上拉使模块从Flash启动。模块的TXD引脚连接至STM32的PA3 USART2_RX引脚,RXD引脚连接至STM32的PA2 USART2_TX引脚。STM32通过USART2串口向ESP8266发送AT指令,配置模块连接至指定的WiFi网络和MQTT服务器。配置完成后,STM32周期性地将环境数据打包为JSON格式通过串口发送给ESP8266,ESP8266将数据转发至手机APP端。

3.13 整体电路分析

本系统的整体电路以STM32F103C8T6单片机为核心,外围电路按照功能划分为传感器采集、人机交互、执行控制和无线通信四个部分。传感器采集部分包括DHT11温湿度传感器、土壤湿度传感器、光敏电阻传感器和MH-Z19B二氧化碳传感器,分别通过PA4单总线、PA0 ADC、PA1 ADC以及PB14、PB15串口与单片机连接。人机交互部分包括OLED显示屏和五个独立按键,OLED通过PB4和PB5的I2C接口连接,按键分别连接至PA8、PA11、PA12、PA13、PA15。执行控制部分包括灯光、水泵、风扇和步进电机,分别通过PB0、PB1、PB6控制继电器驱动,步进电机通过PB7至PB10经ULN2003驱动。无线通信部分通过PA2和PA3串口连接ESP8266模块。电源部分由USB输入5V电压,经AMS1117-3.3转换为3.3V为单片机及3.3V器件供电,传感器及执行器的继电器部分直接使用5V供电。各部分电路通过明确的电源网络和信号走线连接成一个完整的系统,整体电路图见附录A。

第四章 系统软件设计

本系统的软件开发在Keil uVision5集成开发环境中进行,使用C语言编写程序代码。Keil MDK-ARM提供了丰富的库函数和调试工具,支持STM32系列单片机的开发。程序采用模块化设计思路,将不同功能封装为独立的子程序,包括系统初始化子程序、传感器数据采集子程序、按键扫描与处理子程序、自动控制逻辑子程序、手动控制子程序、OLED显示子程序和无线通信子程序。主程序负责协调各模块的工作,按照设定的时序调用各子程序,实现系统整体功能。

4.1 主程序设计

主程序是系统软件的入口和调度核心。系统上电后,主程序首先调用系统初始化子程序,完成STM32内部时钟配置、GPIO引脚模式配置、ADC模块初始化、串口初始化、定时器初始化以及各外设模块的初始化工作。初始化完成后,主程序进入主循环,在主循环中依次调用传感器数据采集子程序、按键扫描子程序、自动控制逻辑子程序、OLED显示刷新子程序和无线数据发送子程序。传感器数据采集子程序读取各传感器的数值并进行滤波处理,将处理后的数据存入全局变量。按键扫描子程序检测按键状态并执行相应的模式切换、阈值调整或界面切换操作。自动控制逻辑子程序根据当前的工作模式判断是否需要执行自动控制动作。OLED显示子程序将环境数据和工作状态显示在屏幕上。无线通信子程序将数据打包发送至手机APP。主程序流程图如图4-1所示。

图4-1 主程序流程图

4.2 传感器数据采集子程序设计

传感器数据采集子程序负责从各个传感器读取环境参数数据。DHT11温湿度传感器的读取按照单总线协议进行,单片机通过PA4引脚发送起始信号后等待DHT11响应,然后依次读取40位数据,经过校验后分离出温度值和湿度值。土壤湿度传感器通过PA0引脚的ADC功能读取,单片机启动ADC转换后读取转换结果寄存器中的数值,经过换算得到土壤湿度百分比。光照传感器通过PA1引脚的ADC功能读取,将转换结果换算为光照强度相对值。二氧化碳传感器通过串口读取,单片机向MH-Z19B发送读取指令后等待接收返回的数据帧,解析后得到CO₂浓度值。为了提高数据的稳定性和抗干扰能力,对ADC采集的数据采用了滑动平均滤波处理,即连续采集多次后取算术平均值作为最终结果。传感器数据采集子程序流程图如图4-2所示。

图4-2 传感器数据采集子程序流程图

4.3 按键扫描与处理子程序设计

按键扫描子程序负责检测五个独立按键的状态并执行对应的功能。由于机械按键在按下和释放的瞬间会产生电平抖动,程序中加入了消抖处理。单片机周期性地读取PA8、PA11、PA12、PA13、PA15五个引脚的电平状态,当检测到某个引脚为低电平时,延时20毫秒后再次读取该引脚状态,如果仍然为低电平则确认为有效按键动作。按键1用于切换自动模式和手动模式,每次按下按键1工作模式标志位取反,OLED屏幕上的模式显示随之更新。按键2和按键3用于阈值调整,在设置状态下按下按键2增加当前选中阈值的数值,按下按键3减少阈值数值。按键4用于切换OLED显示界面,每次按下按键4屏幕切换至下一个显示页面,可循环显示环境数据页面和阈值设置页面。按键5用于进入和退出设置状态。按键扫描与处理子程序流程图如图4-3所示。

图4-3 按键扫描与处理子程序流程图

4.4 自动控制逻辑子程序设计

自动控制逻辑子程序在系统处于自动模式时执行,根据采集到的环境数据与预设阈值的比较结果控制各执行机构动作。光照控制逻辑中,当光照强度低于光照下限阈值时,PB0引脚输出高电平开启补光灯;当光照强度恢复正常后,PB0引脚输出低电平关闭补光灯。温度控制逻辑中,当温度高于温度上限阈值时,PB6引脚输出高电平开启风扇降温;当温度降至阈值以下后关闭风扇。土壤湿度控制逻辑中,当土壤湿度低于湿度下限阈值时,PB1引脚输出高电平启动水泵进行灌溉;当湿度回升至阈值以上后关闭水泵。二氧化碳浓度控制逻辑中,当CO₂浓度高于浓度上限阈值时,PB6引脚输出高电平开启风扇通风换气;当浓度降至阈值以下后关闭风扇。各控制逻辑相互独立又相互配合,例如温度和CO₂浓度任一条件满足都会开启风扇,但只有当两个条件都不满足时才关闭风扇。自动控制逻辑子程序流程图如图4-4所示。

图4-4 自动控制逻辑子程序流程图

4.5 手动控制子程序设计

手动控制子程序在系统处于手动模式时执行,用户可通过按键直接控制灯光、水泵、风扇及步进电机。手动模式下,按键1用于控制灯光的开启和关闭,每按一次按键1,PB0引脚的电平状态翻转一次,补光灯的状态随之改变。按键2用于控制水泵的启停,每按一次按键2,PB1引脚电平翻转。按键3用于控制风扇的启停,每按一次按键3,PB6引脚电平翻转。按键4用于控制步进电机,按下按键4后,单片机按照四相八拍时序从PB7至PB10输出驱动脉冲,步进电机转动一个固定的角度,模拟滴灌装置的定量施肥动作。按键5用于退出手动模式返回自动模式。手动模式下自动控制逻辑被屏蔽,所有的执行器状态完全由用户通过按键决定,这种设计赋予了种植户更大的操作灵活性,可以在特殊情况下进行人工干预。手动控制子程序流程图如图4-5所示。

图4-5 手动控制子程序流程图

4.6 OLED显示子程序设计

OLED显示子程序负责将工作模式、环境数据和设定阈值以用户友好的格式显示在屏幕上。本系统设计了两个显示页面,通过按键4进行切换。页面一显示当前工作模式、实时温度值、实时湿度值、实时土壤湿度值和实时光照强度值。页面二显示温度上限阈值、湿度下限阈值、光照下限阈值和CO₂浓度上限阈值。OLED显示屏采用I2C接口通信,单片机通过PB5输出时钟信号、PB4发送数据信号。显示子程序首先调用OLED初始化函数配置屏幕的工作参数,然后调用清屏函数清除上一帧的显示内容,接着调用字符串显示函数将待显示的数据转换为字符串格式并在指定坐标位置显示。为了保证显示的实时性,主程序每500毫秒调用一次显示刷新子程序,更新屏幕上的数据。OLED显示子程序流程图如图4-6所示。

图4-6 OLED显示子程序流程图

4.7 无线通信子程序设计

无线通信子程序负责通过ESP8266模块将采集到的环境数据发送至手机APP,并接收来自APP的控制指令。单片机通过USART2串口与ESP8266通信,首先发送AT指令配置ESP8266连接至指定的WiFi网络,然后连接至MQTT服务器并订阅相应的主题。数据发送部分,单片机将温度、湿度、土壤湿度、光照强度和CO₂浓度值组织为JSON格式字符串,通过串口发送给ESP8266,ESP8266再通过MQTT协议将数据发布到服务器,手机APP从服务器订阅数据即可实时显示。指令接收部分,单片机定时检查串口接收缓冲区,当收到来自手机APP的控制指令时解析指令内容,根据指令执行相应的控制动作。APP指令包括切换工作模式、开启或关闭灯光、水泵、风扇以及控制步进电机转动。无线通信子程序流程图如图4-7所示。

图4-7 无线通信子程序流程图

4.8 本章小结

本章详细介绍了西瓜大棚控制系统的软件设计。系统软件基于Keil MDK开发环境采用C语言编写,按照模块化思路划分为主程序、传感器数据采集子程序、按键扫描与处理子程序、自动控制逻辑子程序、手动控制子程序、OLED显示子程序和无线通信子程序。主程序负责各模块的调度与协调,传感器采集子程序完成了温湿度、土壤湿度、光照及CO₂浓度的读取与滤波处理,按键子程序实现了模式切换、阈值调整与界面切换功能,自动控制子程序根据传感器数据与阈值的比较结果驱动执行器动作,手动控制子程序响应用户按键直接控制设备,显示子程序将信息呈现在OLED屏幕上,无线通信子程序实现了与手机APP的数据交互。各子程序功能明确、接口清晰,共同构成了完整的系统软件架构。

第五章 系统测试与分析

5.1 系统整体测试

为了验证基于STM32F103C8T6的西瓜大棚控制系统在实际应用中的功能完整性与运行稳定性,本文搭建了完整的软硬件测试平台,模拟西瓜大棚的种植环境对系统进行全面的功能测试。测试平台包括STM32主控板、DHT11温湿度传感器、土壤湿度传感器、光敏电阻模块、MH-Z19B二氧化碳传感器、OLED显示屏、五个独立按键、继电器驱动模块、水泵、风扇、补光灯、28BYJ-48步进电机及ESP8266无线模块。系统上电后,STM32单片机完成各外设的初始化工作,各传感器开始采集数据,采集到的环境参数通过OLED显示屏进行本地展示,同时通过ESP8266模块上传至手机APP。系统整体实物图如图5-1所示。

图5-1 系统整体实物图

5.2 系统功能测试

系统功能测试包括传感器采集功能测试、自动模式控制功能测试、手动模式控制功能测试、按键输入功能测试、OLED显示功能测试以及无线通信功能测试。每个测试项目设计了相应的测试用例,记录测试数据并分析测试结果。

5.2.1 传感器采集功能测试

传感器采集功能测试用于验证各传感器能否准确读取环境参数并将数据正确传输至STM32单片机。测试时将传感器置于不同的环境条件下,记录传感器读数并与标准仪器测量值进行对比。温湿度测试采用DHT11传感器,分别测试常温常湿环境、高温环境和加湿环境下的读数准确性。土壤湿度测试将传感器探头插入不同含水量的土壤中,记录ADC转换值的变化。光照测试用光敏电阻模块测试不同光照强度下的输出电压变化。CO₂浓度测试在正常空气环境和密闭空间内进行对比测试。传感器采集功能测试数据如表5-1所示。

表5-1 传感器采集功能测试数据表

|-------|------|-----------|-----------|--------|----|
| 测试项目 | 测试条件 | 传感器读数 | 标准值 | 误差 | 结果 |
| 温度测量 | 常温环境 | 24.3℃ | 24.1℃ | ±0.2℃ | 合格 |
| 温度测量 | 加热环境 | 32.8℃ | 33.0℃ | ±0.2℃ | 合格 |
| 湿度测量 | 常温环境 | 58%RH | 57%RH | ±1%RH | 合格 |
| 湿度测量 | 加湿环境 | 82%RH | 83%RH | ±1%RH | 合格 |
| 土壤湿度 | 干燥土壤 | 320(ADC) | 330(ADC) | ±10 | 合格 |
| 土壤湿度 | 湿润土壤 | 1850(ADC) | 1820(ADC) | ±30 | 合格 |
| 光照强度 | 弱光环境 | 0.8V | 0.7V | ±0.1V | 合格 |
| 光照强度 | 强光环境 | 2.9V | 3.0V | ±0.1V | 合格 |
| CO₂浓度 | 正常空气 | 450ppm | 440ppm | ±10ppm | 合格 |

测试结果表明,各传感器均能正常工作,采集到的数据与标准仪器测量值的偏差在允许范围内,满足系统设计要求。传感器模块测试现场如图5-2所示。

图5-2 传感器模块测试图

5.2.2 自动模式控制功能测试

自动模式控制功能测试用于验证系统在自动模式下能否根据传感器数据与预设阈值的比较结果正确控制各执行机构。测试前通过按键设置温度上限阈值为30℃,湿度下限阈值为40%RH,光照下限阈值为1.5V,CO₂浓度上限阈值为1000ppm。分别模拟触发条件,观察执行器的响应情况。自动模式控制功能测试数据如表5-2所示。

表5-2 自动模式控制功能测试表

|-------|-----------|----------|------|------|----|
| 测试条件 | 传感器读数 | 阈值 | 预期动作 | 实际动作 | 结果 |
| 温度过高 | 32.5℃ | 30℃ | 开启风扇 | 风扇启动 | 合格 |
| 温度正常 | 26.8℃ | 30℃ | 关闭风扇 | 风扇停止 | 合格 |
| 土壤干燥 | 380(ADC) | 500(ADC) | 开启水泵 | 水泵启动 | 合格 |
| 土壤湿润 | 1650(ADC) | 500(ADC) | 关闭水泵 | 水泵停止 | 合格 |
| 光照不足 | 0.9V | 1.5V | 开启灯光 | 灯光点亮 | 合格 |
| 光照充足 | 2.5V | 1.5V | 关闭灯光 | 灯光熄灭 | 合格 |
| CO₂过高 | 1250ppm | 1000ppm | 开启风扇 | 风扇启动 | 合格 |

测试结果表明,在自动模式下系统能够准确判断各环境参数是否超出阈值范围,并正确执行相应的控制动作,各执行器响应及时,自动控制逻辑正确无误。

5.2.3 手动模式控制功能测试

手动模式控制功能测试用于验证用户在手动模式下通过按键直接控制灯光、水泵、风扇及步进电机时,各执行器能否按照指令正确动作。测试时按下模式切换按键将系统切换至手动模式,分别按下各控制按键观察执行器的响应状态。手动模式控制功能测试数据如表5-3所示。

表5-3 手动模式控制功能测试表

|-------|------|-----------|--------|----|
| 操作动作 | 控制对象 | 预期响应 | 实际响应 | 结果 |
| 按下灯光键 | 补光灯 | 灯光点亮/熄灭切换 | 状态正常切换 | 合格 |
| 按下水泵键 | 灌溉水泵 | 水泵启动/停止切换 | 状态正常切换 | 合格 |
| 按下风扇键 | 通风风扇 | 风扇启动/停止切换 | 状态正常切换 | 合格 |
| 按下电机键 | 步进电机 | 电机转动一定角度 | 电机正常转动 | 合格 |
| 按下退出键 | 工作模式 | 返回自动模式 | 模式切换成功 | 合格 |

测试结果表明,手动模式下用户可通过按键灵活控制各执行设备,按键响应灵敏,执行器动作准确可靠。手动模式控制测试如图5-3所示。

图5-3 手动模式控制测试图

5.2.4 OLED显示功能测试

OLED显示功能测试用于验证显示屏能否正确显示工作模式、环境参数及设定阈值,以及按键切换显示界面功能是否正常。系统上电后观察OLED屏幕显示内容,分别按下界面切换按键查看不同页面的显示效果。测试结果表明,OLED屏幕能够清晰显示系统工作模式、实时温度、湿度、土壤湿度、光照强度及CO₂浓度数据。按下界面切换按键后,屏幕能够正确切换至阈值显示页面,显示温度上限、湿度下限、光照下限及CO₂浓度上限等设定值。OLED显示界面如图5-4所示。

图5-4 OLED显示界面图

5.2.5 无线通信功能测试

无线通信功能测试用于验证ESP8266模块能否将环境数据稳定上传至手机APP,以及手机APP能否成功下发控制指令。测试时将ESP8266配置为STA模式连接至无线路由器,手机APP通过MQTT协议与服务器通信。观察手机APP端能否实时显示大棚环境数据,并通过APP发送控制指令查看执行器是否响应。无线通信功能测试数据如表5-4所示。

表5-4 无线通信功能测试表

|------|-------------|-----------|--------|----|
| 测试项目 | 操作内容 | 预期结果 | 实际结果 | 结果 |
| 数据上传 | 传感器采集数据 | APP显示环境参数 | 数据显示正常 | 合格 |
| 模式切换 | APP发送模式切换指令 | 系统模式改变 | 模式切换成功 | 合格 |
| 灯光控制 | APP发送灯光指令 | 灯光状态改变 | 灯光正常响应 | 合格 |
| 水泵控制 | APP发送水泵指令 | 水泵状态改变 | 水泵正常响应 | 合格 |
| 风扇控制 | APP发送风扇指令 | 风扇状态改变 | 风扇正常响应 | 合格 |
| 电机控制 | APP发送电机指令 | 电机转动 | 电机正常响应 | 合格 |

测试结果表明,ESP8266无线模块与手机APP之间的通信稳定可靠,数据上传延迟在可接受范围内,APP端能够实时显示环境数据并下发控制指令。手机APP显示界面如图5-5所示。

图5-5 手机APP显示界面图

5.3 测试结果分析

通过上述各项功能测试,本系统的主要功能均达到了设计预期。传感器采集模块能够准确读取温湿度、土壤湿度、光照强度及CO₂浓度数据,测量误差在允许范围内。自动控制模块能够根据传感器数据与预设阈值的比较结果自动控制灯光、风扇、水泵等执行器,逻辑正确、响应及时。手动控制模块支持用户通过按键直接操作各设备,操作灵活便捷。OLED显示模块能够清晰展示工作模式、环境参数及阈值信息,界面切换功能正常。无线通信模块能够将环境数据实时上传至手机APP,并接收APP端下发的控制指令,实现了远程监控功能。系统整体运行稳定,各模块协同工作良好,满足西瓜大棚智能控制的设计要求。

第六章 总结与展望

6.1 总结

本文围绕西瓜大棚环境智能控制的应用需求,设计并实现了一套基于STM32F103C8T6单片机的西瓜大棚控制系统。该系统由主控模块、传感器采集模块、人机交互模块、执行控制模块及无线通信模块组成。传感器采集模块采用DHT11温湿度传感器、土壤湿度传感器、光敏电阻传感器及MH-Z19B二氧化碳传感器,实时采集大棚内的空气温湿度、土壤湿度、光照强度及CO₂浓度数据。人机交互模块采用OLED显示屏进行本地数据展示,五个独立按键用于模式切换、阈值调整及界面切换。执行控制模块通过继电器控制补光灯、灌溉水泵及通风风扇的启停,通过ULN2003驱动芯片控制步进电机模拟施肥滴灌。无线通信模块采用ESP8266将环境数据同步至手机APP,实现远程监控。系统提供自动与手动两种工作模式,自动模式下根据传感器数据与预设阈值的比较结果自动控制执行器,手动模式下用户可通过按键直接操控设备。经过系统性的软硬件联调与功能测试,结果表明该系统能够稳定采集各项环境参数,控制响应准确可靠,无线通信功能正常,达到了预期的设计目标。本系统结构清晰、成本适中、操作便捷,能够有效减轻西瓜大棚种植户的人工管理负担,具有一定的实用价值和推广意义。

6.2 展望

尽管本系统已经实现了西瓜大棚环境智能控制的基本功能,但在实际应用场景中仍有一些方面可以进一步改进和完善。在传感器方面,本系统采用的土壤湿度传感器为电阻式探头,长期插入土壤中可能会因电极腐蚀导致测量精度下降,后续可考虑更换为电容式土壤湿度传感器以提高长期稳定性。在执行器方面,本系统对水泵和风扇的控制采用了简单的开关控制方式,后续可引入脉冲宽度调制技术实现风扇转速的无级调节和水泵流量的比例控制,使环境调控更加精细。在控制算法方面,目前的自动控制采用的是阈值比较方式,后续可引入模糊控制或PID控制算法,根据环境参数的变化趋势提前进行干预,减少环境波动。在无线通信方面,本系统采用ESP8266连接家庭WiFi网络,在大规模大棚种植场景下可能存在信号覆盖问题,后续可考虑采用LoRa等低功耗广域网技术实现更远距离的数据传输。在能源供应方面,本系统依赖市电供电,后续可结合太阳能光伏发电系统,降低运行成本,使系统更加环保节能。上述改进方向将有助于提升系统的智能化水平和环境适应性,更好地服务于西瓜大棚的精细化种植管理。

参考文献

01 杨明川,刘怀强,孙长平.基于STM32单片机的智能大棚监控系统设计J.自动化应用,2024,65(22):173-176.

02 代国勇.基于STM32单片机温室大棚环境的智能控制系统设计及实现D.石家庄铁道大学,2017.

03 王冬梅,路敬祎.基于单片机的温室大棚智能监控系统设计J.内燃机与配件,2017,(06):6-8.

04 韩力英,杨宜菩,王杨,等.基于单片机的温室大棚智能监控系统设计J.中国农机化学报,2016,37(01):65-68+72.

05 贾海云.基于DS18B20的智能测温系统的设计J.电脑知识与技术,2021,17(09):251-252.

06 郭营营.LCD 1602液晶显示屏J.内江科技,2016,37(07):38+37.

07 董天慧,王晶,王佳铭,等.基于STM32的多功能智能灌溉系统设计J.长治学院学报,2024,41(05):23-30.

08 胡开明,王剑强,王孚贵.基于物联网的智慧农业大棚监控系统J.南方农机,2024,55(22):44-47.

09 李德英,邱扬帆,易涛,等.基于手机App的植物生长环境实时监控系统设计J.吉首大学学报(自然科学版),2021,42(03):21-28.

10 Gedkhaw E, Soodtoetong N. The Solar Power Efficiency to Control Hydro-Organics Intelligence Agriculture System in GreenhouseJ. Energy Engineering, 2025, 122(11):4349-4363.

11 Zhang H, Pan H. Design of Intelligent Agricultural Greenhouse SystemJ. Frontiers in Computing and Intelligent Systems, 2025, 11(2):1-5.

12 Haicheng W, Shanping W, Qifan D, et al. Intelligent Irrigation System for Agricultural Greenhouse Adaptive to Crop Growth LawJ. Journal of Electronic Research and Application, 2025, 9(1):113-120.

致 谢

本论文的顺利完成离不开各位老师、同学和家人的支持与帮助,在此谨向他们致以最诚挚的谢意。首先要感谢我的指导老师,从选题确定到方案设计,从硬件调试到论文撰写,老师始终给予我悉心的指导和耐心的帮助。老师在学术上的严谨态度和渊博学识深深感染了我,使我不仅学到了专业知识,更懂得了做学问的道理。在系统设计遇到困难时,老师总能一针见血地指出问题所在并提出宝贵的改进建议,让我少走了很多弯路。

感谢实验室的同学们,在硬件调试和程序开发过程中,我们一起讨论问题、分享经验、互相鼓励,共同度过了许多难忘的时光。感谢室友们在生活上的关心与照顾,让我能够全身心投入到毕业设计工作中。感谢参考文献中的所有作者,他们的研究成果为本文提供了重要的理论支撑和技术参考。

最后要感谢我的家人,感谢父母多年来的养育之恩和无私付出,是他们的理解与支持让我能够安心完成学业。在未来的工作和学习中,我将继续努力,不断进取,以优异的成绩回报所有关心和帮助过我的人。

相关推荐
西城微科方案开发1 小时前
SIC8P370D2L:高集成低功耗8位通用OTP MCU
单片机·嵌入式硬件
@松2 小时前
STM32F103C8-GPIO—位带操作学习
stm32·嵌入式硬件·学习
鹿屿二向箔3 小时前
keil5.39版本使用AC6编译器不能位域操作的BUG使用STM32U385系列MCU
stm32·单片机·bug
zlinear数据采集卡3 小时前
D223的DDS信号发生器:10000点查找表与4通道16位DAC波形输出
arm开发·嵌入式硬件·fpga开发·开源
捷瑞电子工坊14 小时前
嵌入式秋招面经:5大核心模块高频考题与实战避坑总结
c语言·stm32·嵌入式工程师·rtos·通信协议·嵌入式面试
大爱编程♡15 小时前
GPIO-I2C
stm32·单片机·嵌入式硬件
振南的单片机世界16 小时前
PVD掉电中断——让单片机“咽气前”写完遗书
arm开发·stm32·单片机·嵌入式硬件
续写烂尾19 小时前
SD NAND存储实测:正点原子STM32精英板SDIO读写验证全流程
stm32·单片机·嵌入式硬件
zlinear数据采集卡21 小时前
USB HS 480M高速传输与SRAM记录仪:DABM-D223数据存储系统全解析
arm开发·嵌入式硬件·fpga开发·开源