基于 STM32 的储粮智能通风控制系统设计

#智能硬件#STM32#物联网

摘要

针对粮食储藏过程中粮堆发热霉变的问题,本文设计并实现了一种基于 STM32 的储粮智能通风控制系统。系统以 STM32F103C8T6 为控制核心,DS18B20 不锈钢探头埋入粮堆内部测量粮温,DHT11 测量环境温湿度,按目标温差分档(量化比例控制)驱动 TB6612FNG 驱动的直流风扇通风降温;环境湿度不低于 75%RH 时自动闭锁通风,防止湿空气进入粮堆引起吸湿结露。系统支持储粮/环境两种测温模式、自动/手动两种运行模式,8 条定时通风计划与运行记录均持久化于 W25Q64 外部 Flash;ESP12F 提供 HTTP 接口与 NTP 对时,配套 React Native 手机 App 在局域网内直连设备,完成控制、计划、数据曲线与设置四类功能。测试表明,系统分档响应准确、滞回有效、湿度闭锁可靠,满足储粮通风的应用需求。

关键词:STM32;储粮通风;温差分档;DS18B20;湿度闭锁;React Native

1 引言

粮食在储藏期间,粮堆内部因呼吸作用与微生物活动会不断积热。粮堆热容大、导热差,内部温度可比气温高出 5~10℃,只测室温完全反映不了粮情,若不及时通风散热极易引发霉变。机械通风降温是粮食行业的通行做法,而传统通风设备的启停多依赖人工经验,缺乏对"粮温—气温—湿度"的综合判断。

本文的设计思路是:以粮堆内部温度为判定主变量,用目标温差分档代替连续调节——温差越大通风档位越高,降到目标附近即停转,这与粮堆大热容慢对象的特性天然匹配;同时引入湿度闭锁规则,从"温控风扇"升级为多参数决策系统。系统还通过 ESP12F 与手机 App 实现局域网内的远程监测与控制,不依赖云平台,断网环境同样可用。

2 系统总体设计

2.1 功能需求分析

系统需要实现以下功能:

  1. 双传感器测温:储粮模式以 DS18B20(埋入粮堆)温度为判定变量;环境模式以 DHT11 室温为判定变量,两种模式可随时切换;
  2. 温差分档通风:ΔT = 实际温度 − 目标温度(目标 15~40℃ 按键可调),按分档表输出 0/25%/50%/100% 四档 PWM,降档阈值下移 2℃ 形成滞回;
  3. 湿度闭锁:储粮模式下环境湿度 ≥ 75%RH 强制停机并提示,防止通风带入湿空气;
  4. 定时通风:8 条计划持久化存储,到点强制 3 档通风 N 分钟,不受温差与湿度闭锁约束;
  5. 本地交互与远程控制:OLED 中文菜单 + 4 按键本地操作;手机 App 经 ESP12F 的 HTTP 接口远程控制并查看运行数据曲线。

2.2 系统总体架构

系统由 STM32F103C8T6 主控、传感(DS18B20、DHT11、DS3231 时钟)、执行(TB6612FNG + 直流风扇)、存储(W25Q64)、显示交互(OLED + 4 按键)与通信(ESP12F)六部分组成。主循环每 2 秒执行一轮"采样—判定—输出",ESP12F 独立运行固件,向上为 App 提供 HTTP API,向下经串口 @ 协议与 STM32 交互并完成 NTP 对时。

2.3 元器件选型

模块型号关键参数作用
主控STM32F103C8T6Cortex-M3 / 72 MHz / 64 KB Flash控制核心
粮堆测温DS18B20±0.5℃,单总线,不锈钢探头埋入粮堆内部测温
环境温湿度DHT11±2℃,±5%RH环境模式判定 + 湿度闭锁
电机驱动TB6612FNG双 H 桥,PWM 调速风扇驱动
时钟DS3231I2C,带温补晶振定时通风走时
存储W25Q648 MB SPI Flash字库、计划与运行记录
通信ESP-12F802.11 b/g/nHTTP API + NTP 对时
显示OLED 0.96"128×64,SSD1306中文状态显示

3 硬件系统设计

3.1 引脚资源分配

功能引脚配置
风扇 PWMPA0TIM2_CH1,1 kHz
电机方向 AIN1/AIN2PA1 / PA2推挽输出
DS18B20PB1单总线,4.7 kΩ 上拉
DHT11PA8开漏 + 上拉
W25Q64PA4~PA7SPI1
OLEDPB8 / PB9软件 I2C
按键 ×4PA3、PB5~PB7外部中断,300 ms 消抖
调试串口PB10 / PB11USART3,IDLE+DMA
ESP12FPA9 / PA10USART1,IDLE+DMA

系统采用自制 PCB 集成上述电路(STM32 核心板座 + TB6612FNG + ESP-12F + OLED + 4 按键 + AMS1117-3.3 供电),实物如图 3-1 所示。

系统实物图
图 3-1 系统实物图

4 软件系统设计

4.1 主循环与两段式温度采样

主循环以 100 × 20 ms 的轮询结构每 2 秒完成一轮控制,并约定单轮内任何阻塞不得超过 ESP 命令超时(400 ms)。最容易超时的是 DS18B20 的 12 位温度转换(最长 750 ms),因此采用非阻塞两段式采样:本轮读出上一轮发起的转换结果,随即立刻发起下一轮转换,单轮阻塞仅约 2 ms,既保证了采样节拍,又不会导致 App 轮询撞上"STM32 无应答"。

4.2 目标温差分档控制

分档判定变量为 ΔT = 实际温度 − 目标温度。升档及时响应(无滞回),降档阈值整体下移 2℃(GEAR_HYST),避免 ΔT 在临界点附近反复跳档:

/* 升档看升档阈值;降档看下移 2°C 的降档阈值 */
static uint8_t Gear_Calc(float dt)
{
    uint8_t up = 0;
    if      (dt >= GEAR_UP_3) up = 3;
    else if (dt >= GEAR_UP_2) up = 2;
    else if (dt >= GEAR_UP_1) up = 1;
    if (up > g_fan_gear) return up;      /* 需要升档:立即执行 */

    uint8_t down = 0;                    /* 降档:带滞回 */
    if      (dt >= GEAR_UP_3 - GEAR_HYST) down = 3;
    else if (dt >= GEAR_UP_2 - GEAR_HYST) down = 2;
    else if (dt >= GEAR_UP_1 - GEAR_HYST) down = 1;
    return down;
}
ΔT档位PWM
ΔT < 2℃0 档0
2 ≤ ΔT < 5℃1 档25%
5 ≤ ΔT < 8℃2 档50%
ΔT ≥ 8℃3 档100%

1 档 25% 已越过电机约 15% 的启动死区(驱动层另有 Motor_EnforceMinPwm() 死区补偿兜底),保证低速档可靠启动。

4.3 湿度闭锁与定时通风

储粮模式下,DHT11 湿度 ≥ 75%RH 时强制 0 档并显示 HUM LOCK,湿度回落后自动解除——DHT11 湿度无小数位,天然形成滞回。定时通风计划存于 W25Q64 的 0x7E0000 扇区,每条含星期掩码、触发时刻与持续分钟数;到点后无视温差与湿度闭锁强制 3 档通风 N 分钟,到时自动恢复原模式。走时由 DS3231 提供本地时钟,ESP12F 定期 NTP 对时纠偏。

4.4 运行记录

系统每 10 分钟向 W25Q64(0x7D0000 起)追加一条 16 字节运行记录,内容涵盖周期采样、定时通风起止、手动开关与档位变化等事件类型,供 App 端绘制曲线与统计。

5 手机 App 设计

App 采用 React Native(Expo)开发,局域网 HTTP 直连 ESP12F,不依赖云平台,答辩与断网环境同样可用。App 分为四个页面:

  • 控制:实际温度大卡片、目标温度 ± 调整、档位可视化、自动/手动切换与手动直控(图 5-1);
  • 计划:定时通风计划的新增、启用与删除(图 5-2);
  • 数据:读取设备 Flash 中的运行记录,按 1 小时/6 小时/24 小时绘制粮温、室温、湿度曲线并统计最值与均值(图 5-3);
  • 设置:设备 IP 配置与连接测试、测温模式切换、设备时间与 NTP 状态(图 5-4)。
控制页
图 5-1 控制页
计划页
图 5-2 定时通风计划页
数据页
图 5-3 运行数据页
设置页
图 5-4 设置页

6 系统测试与结果分析

测试项目测试方法测试结果
温差分档加热使 ΔT 依次越过 2/5/8℃档位按 1/2/3 档正确递升,PWM 输出 25%/50%/100%
降档滞回ΔT 在临界点附近波动降档阈值下移 2℃ 生效,无反复跳档
湿度闭锁对湿度传感器哈气加湿至 ≥75%RH立即强制 0 档并显示 HUM LOCK,回落自动解除
定时通风设置到点计划到点强制 3 档通风设定时长,断电重启计划不丢失
双模式切换菜单与 App 切换储粮/环境、自动/手动切换瞬间停扇清状态,新周期按新模式重新分档
App 远程控制局域网内四页功能遍历控制即时生效,曲线与统计与串口遥测一致

结果分析:温差分档配合滞回在"及时响应"与"防止频繁启停"之间取得了预期平衡;湿度闭锁与定时通风使系统从单一温控升级为多参数决策;主循环两段式采样保证了 App 轮询期间设备始终在线应答。

7 结论与展望

本文设计并实现了基于 STM32 的储粮智能通风控制系统,完成了双传感器测温、目标温差分档、湿度闭锁、定时通风、运行记录与手机 App 远程控制等全部功能,并采用自制 PCB 完成整机集成。系统控制策略与粮堆热特性相匹配,工程实现完整、成本低廉。

后续可在两个方向完善:一是增加多点粮温检测(多颗 DS18B20 布点)以反映粮堆内部温度场分布;二是引入通风效果反馈(通风后 ΔT 下降速率)自适应调整分档阈值,并向 LS/T 1202《储粮机械通风操作规程》的行业阈值进一步对齐。