基於 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《儲糧機械通風操作規程》的行業門檻值進一步對齊。