基于STM32智能农业大棚检测控制系统设计
若该文为原创文章,转载请注明原文出处。
一、引言
(一)研究背景及意义
现代农业正朝着精细化、智能化、自动化的方向发展。传统农业大棚管理高度依赖人工经验,存在劳动强度大、生产效率低、水资源和肥料浪费严重、应对突发天气变化能力差等问题。环境参数如温湿度、光照、二氧化碳浓度等直接影响作物的光合作用、呼吸作用和营养吸收,因此对大棚内环境进行精准监测与智能控制是提升作物产量和品质的关键。
基于STM32的智能农业大棚系统,通过集成多种传感器和执行器,并借助物联网技术,实现了对大棚环境的24小时无人化值守、数据驱动决策和远程精准控制。该系统能显著降低人力成本,优化资源配置(水、电),创造最适合作物生长的环境,从而提高农业生产的效率和效益,是智慧农业领域的重要实践,对推动农业现代化转型升级具有重要意义。
(二)国内外研究现状
目前,智能农业大棚技术已在国内外得到广泛应用和研究:
国外:以色列、荷兰等国家技术领先,拥有高度自动化的温室控制系统,但系统复杂、成本高昂。
国内:涌现出大量基于PLC、单片机(如STM32、Arduino)和物联网平台的解决方案。通信技术多采用ZigBee、LoRa、NB-IoT和Wi-Fi。其中,STM32+ESP8266+云平台的方案因其性能稳定、开发资源丰富、成本可控而成为主流选择之一。
本设计在经典架构基础上,强化了多参数融合决策(如土温土湿协同判断)和双层控制模式(自动+手动),并接入开放云平台,提供了一个功能完善、可扩展性强、实用性高的解决方案。
二、系统总体设计
(一)系统架构
系统采用“感知-传输-平台-应用” 的四层物联网架构。
感知层:由空气温湿度传感器、土壤温湿度传感器、光照传感器、二氧化碳传感器组成,负责全面采集大棚环境数据。
传输层:以STM32为核心控制器,负责数据汇聚、处理和本地控制;ESP8266作为网络模块,将数据上传至云平台。
平台层:采用中国移动OneNET等物联网云平台,负责数据的接收、存储、可视化展示和指令转发。
应用层:手机APP和Web端应用,为用户提供远程监控和控制的界面。
(二)功能模块划分
环境感知模块:空气温湿度、土壤温湿度、光照强度、CO₂浓度采集。
决策控制模块:自动控制逻辑实现、手动指令执行。
执行驱动模块:风扇、水泵、补光灯、通风口控制。
人机交互模块:OLED显示、按键设置、蜂鸣器报警。
通信模块:Wi-Fi数据上报与远程指令接收。
三、硬件设计与实现
(一)系统硬件框架图
系统硬件配置与功能说明表
1. 主控单元
器件名称 | 推荐型号 | 接口 | 功能说明 |
---|---|---|---|
STM32单片机 | STM32F103C8T6 | - | 作为系统核心,负责所有传感器的数据采集、执行复杂的农业逻辑、控制各执行器、以及与WiFi模块通信。 |
2. 传感器与输入单元
器件名称 | 推荐型号/类型 | 接口 | 功能说明 |
---|---|---|---|
空气温湿度传感器 | DHT11 或 AM2301 | 单总线 | 检测大棚内的空气温度和湿度。AM2301精度和量程更高。 |
土壤温度传感器 | DS18B20 | 单总线 | 检测土壤温度。防水封装,可直接插入土壤中。 |
土壤湿度传感器 | 电容式传感器 | ADC | 检测土壤体积含水量(%)。电容式不易腐蚀,寿命长。输出模拟电压信号。 |
光照强度传感器 | BH1750 | I²C | 检测环境光照强度(Lux)。数字输出,精度高,无需校准。 |
二氧化碳传感器 | MH-Z19C | UART | 检测空气中的CO₂浓度(ppm)。提供串口输出,直接输出数字浓度值,稳定可靠。对于植物光合作用至关重要。 |
按键模块 | 轻触开关 | GPIO | 用于切换自动/手动模式、手动控制设备、进入设置模式以调整各参数的上下限阈值。 |
3. 执行器与输出单元
器件名称 | 推荐型号/类型 | 接口 | 功能说明 |
---|---|---|---|
继电器模块 | 5V 4路继电器板 | GPIO | 核心控制单元。STM32通过GPIO输出高/低电平,控制继电器吸合或断开,从而安全地控制220V的风扇、水泵、补光灯、通风口电磁阀等大功率设备。强弱电必须隔离! |
有源蜂鸣器 | 5V有源蜂鸣器 | GPIO | 当任何传感器数据超限时,STM32控制其鸣响,进行现场声光报警,提醒农户。 |
OLED显示屏 | SSD1306 | I²C | 实时显示所有传感器数据(空气温湿度、土壤温湿度、光照、CO₂)和系统状态(各设备开关状态、报警信息、当前模式),提供最直接的人机交互界面。 |
4. 通信单元
器件名称 | 推荐型号 | 接口 | 功能说明 |
---|---|---|---|
WiFi模块 | ESP-01S | UART | STM32通过串口以AT指令与ESP8266通信,将采集到的所有状态数据和报警信息以MQTT协议上传至OneNet云平台,用户可通过手机APP远程实时监控和控制。 |
5. 电源单元
器件名称 | 推荐规格 | 功能说明 |
---|---|---|
电源适配器 | 5V/3A 开关电源 | 为整个控制系统(STM32、传感器、模块)提供稳定的5V电源。 |
强电配电箱 | - | 为各执行器(风扇、水泵、补光灯、电磁阀)提供220V供电,并由继电器控制通断。必须做好绝缘和防护,防止触电和短路。 |
四、软件设计与实现
(一)开发环境搭建
IDE:Keil uVision 5
库:使用HAL库,利用STM32CubeMX进行图形化初始化配置。
云平台:注册中国移动OneNET账号,创建产品和设备,获取设备ID和API Key。
(二)系统软件流程图
(三)系统初始化
(四)传感器数据采集与处理
(五)核心控制逻辑实现
(六)远程通信与控制实现
五、系统测试与优化
(一)测试方案
单元测试:单独测试每个传感器和执行器功能。
集成测试:
自动模式测试:模拟环境变化(用热风枪加热、浇水、遮挡光照、吹入CO2),观察系统是否正确响应并控制设备。
手动模式测试:通过按键和APP控制各执行器,观察响应是否及时。
报警测试:人为使某个参数超限,检查蜂鸣器是否报警。
联网测试:检查OneNET平台数据是否实时更新,APP指令是否能正确下发和执行。
稳定性测试:连续运行至少72小时,观察系统是否出现死机、数据异常、网络断开重连等问题。
(二)测试结果与分析
测试项目 | 预期结果 | 可能遇到的问题 | 解决方案 |
---|---|---|---|
土壤传感器 | 数据准确稳定 | RS485通信受干扰,或传感器地址错误 | 增加CRC校验,检查接线,确认Modbus从机地址 |
多执行器协同 | 逻辑正确,无冲突 | 水泵和风扇同时开启导致电流过大 | 电源功率留足余量,或软件上错开启动时间 |
网络稳定性 | 数据上报成功率高 | 大棚内Wi-Fi信号弱 | 调整路由器位置或增加中继器,增加网络重连机制 |
阈值保存 | 断电不丢失 | Flash读写错误 | 检查Flash驱动,增加写入校验 |
(三)系统优化
软件优化:
看门狗:启用独立看门狗(IWDG)和窗口看门狗(WWDG),提高系统可靠性。
数据滤波:对传感器数据(特别是模拟量)进行软件滤波(如卡尔曼滤波、滑动平均),减少噪声干扰。
断网续传:在网络断开时,将重要数据暂存于Flash,待网络恢复后重传。
功能优化:
定时任务:增加定时灌溉、定时通风功能,与自动模式互补。
历史数据:在OneNET平台利用其数据可视化功能,绘制参数历史曲线,便于分析作物生长环境。
多级报警:区分预警和严重报警,并通过APP推送通知。
六、关键设计注意事项
安全性设计:
强弱电隔离: 控制220V设备的电路必须使用继电器模块进行彻底隔离,布线规范,防止高压窜入低压电路。
防潮设计: 大棚内环境潮湿,所有电路板应喷涂三防漆并安装在防水盒中。
防止执行器频繁动作:
在软件中应加入回差控制(Hysteresis Control)。例如,温度高于28度开风扇,但要等到低于26度才关风扇,避免在27度附近反复启停,保护设备。
传感器校准与放置:
CO₂传感器(MH-Z19C): 需要定期进行手动校准以保证精度。
土壤传感器: 需插入土壤中有代表性的深度和位置,避免直接靠近灌溉喷头。
云平台配置:
需要在OneNet上创建产品、设备,定义数据流模板(如:
Temperature
,Soil_Moisture
)和命令(如:FAN_Switch
),才能使STM32与云平台正确通信。
如有侵权,或需要完整代码,请及时联系博主。