楊智顯,胡安杰,劉東
(西南科技大學土木工程與建筑學院,四川綿陽 621010)
隨著社會發展和生活水平的提高,人們對人體舒適度的要求也越來越高。而體感溫度又是人體舒適度中的重要一環[1],但在具體應用時,計算方法卻不盡相同,沒有統一的指標[2]。為此,提出了一種房間內平均溫度作為體感溫度的控制方法,實現對兩聯供系統的控制。采用熱敏電阻器NTC(10 kΩ)測溫[3],再通過處理器自帶的AD 轉換將采集到的模擬量轉換為單片機能夠處理的數字量[4-6]。整個系統以STM32F103C8T6 單片機為核心來完成數據的采集、處理、傳輸和監控[7],采用RS485 完成主控器與溫控器之間的通信[8],完成了對風機盤管、地暖的溫度控制,風機盤管的風速控制,地暖的進水控制以及露點溫度檢測和三通合流閥混水溫度的調控等功能。
基于STM32 的冷暖兩聯供控制系統總體設計如圖1 所示,溫控器和主控器的相同設計部分包括完成控制與信號處理的STM32 單片機模塊、為系統供電的電源模塊、進行溫度測量的溫度探頭模塊、完成相應空調末端啟停控制的繼電器模塊以及兩者之間進行數據交互的RS485 通信模塊。兩塊控制器的不同設計模塊分別是溫控器包含對溫度、功能模式進行設置的按鍵模塊以及進行溫濕度檢測的溫濕度檢測模塊。主控器包含對地暖管水溫調控的三通閥模塊。系統的主要工作流程:系統在供電狀態下,使用者根據需求通過獨立按鍵對單片機發送指令,溫控器根據按鍵所對應的工作模式,判斷當前實際溫度是否在設定溫度內,假設不在設定溫度范圍內,則STM32 發送指令控制實現對風機盤管和地暖這兩個空調末端的繼電器工作,實現溫度調控、功能顯示、房間內溫濕度的檢測以及通過對繼電器的控制實現對風機盤管的風速調控。主控器的功能:一是根據溫控器的啟停狀態去控制主機啟停,二是根據露點溫度必須低于水溫1~2 ℃的條件,控制三通合流閥的開度大小實現對水溫的控制。最后采用RS485 完成兩者間的數據交互、功能聯動。

圖1 系統總體設計框圖
主控芯片采用STM32F103C8T6 單片機,STM32系列單片機具有高性能、高速率、低成本、低功耗、高集成度、工具易用、可實現產品量產化等優點而得到廣泛使用[9],且具有ADC、串口通信、PWM 輸出和按鍵檢測功能,支持外圍設備DMA、溫度傳感器等[10],能夠滿足設計需求。
電源模塊的功能是為整個控制系統進行供電。供電部分的輸入使用的市電220 V,因此為滿足繼電器的12 V 供電與三通閥的24 V 供電,采用了HLK-10M12 和HLK-20M24 將電壓穩定在12 V 和24 V。其余模塊以及控制芯片STM32 所需的5 V 和3.3 V 電壓采用了MP1584[11]和AMS1117-3.3V 穩壓器,可將市電降壓后的12 V 與24 V 電壓穩定在5 V 及3.3 V,且保證了電流輸出。MP1584 的輸出電壓關系如式(1)所示。
其中,Vout為5 V 的輸出電壓,VFB為0.8 V,R16、R20為分壓電阻,阻值分別為210、40.2 kΩ。
因此,根據整個電路的供電需求,電源模塊電路設計如圖2 所示。

圖2 電源模塊設計原理圖
溫度探頭主要功能是用于測量水管中的水溫以及確定體感溫度,采用的是NTC 熱敏溫度傳感器探頭。測溫原理如下,NTC 熱敏電阻[3](P1 座子外接)和精密電阻R29組成一個串聯分壓電路,通過分壓公式(2)可以計算得出溫度探頭當前ADC通道電壓值。
其中,VADC為ADC 通道的電壓值,Vcc為溫度探頭的供電電壓,取值為3.3 V,R29為分壓電阻,阻值為4.7 kΩ,R探頭為溫度探頭對應的阻值。
再使用STM32 單片機內部自帶的12 位精度的高速ADC[10]進行數據采集,可以得到當前通道的ADC 值,根據式(3)可以得到溫度探頭在此刻的電阻值。
其中,X為當前單片機采集到的ADC 值,C為12位單片機對應的滿量程ADC 值,C=212=4 096,R為分壓電阻,取值為4.7 kΩ,R探頭為溫度探頭對應的阻值。
計算得出溫度探頭的阻值之后,根據NTC 數據手冊的阻溫(R-T)映射表,可以得出當前阻值對應的空氣溫度,在該系統中,采用Matlab 對R-T表中的阻值-溫度關系進行函數擬合,得到阻值與溫度的函數關系如式(4)所示。
其中,T為當前溫度探頭測到的空氣溫度,R為當前溫度探頭的電阻值,由式(3)計算得出。
以上是一個溫度探頭的測溫原理,在冷暖兩聯供控制系統中采用的體感溫度即通過兩個溫度探頭在房間內部不同點(如屋頂與墻面)測得不同的溫度之后,通過式(5)求出兩個溫度探頭的平均溫度,以此體感溫度作為房間的控制溫度,不再直接采用單個溫度傳感器測得的空氣溫度作為控制溫度,這是該系統相較于傳統空調控制系統的一種改變。
其中,T為體感溫度,T1為溫度探頭1 測得的空氣溫度,T2為溫度探頭2 測得的空氣溫度。
溫度探頭模塊電路設計如圖3 所示。

圖3 溫度探頭模塊設計原理圖
該模塊電路設計的目的是實現對進入地暖管的混合水的溫度進行控制,以保證混合水溫度始終高于露點溫度1~2 ℃。該模塊采用了兩種控制方法,一是通過PWM 改變占空比的方式控制輸出電壓,單片機的輸出電壓是0~3.3 V,在經過運算放大電路后,將電壓放大三倍,最終控制電壓為0~10 V,這是電壓控制方式。另外還有電流控制方式,通過采用線性度比較好的精密電流輸出變送器XTR111,輸出4~20 mA 電流控制,在調試過程中受三通閥硬件限制,最終采用的是電壓控制方式,三通閥模塊電路設計如圖4 所示。

圖4 三通閥模塊設計原理圖
為了實現人機交互功能,選用OLED12864 液晶顯示屏作為顯示器件。OLED12864 液晶顯示屏具有自發光功能且不需要背光源。OLED 顯示模塊具有4 種接口方式,可通過配置該模塊的BS1/BS2 選擇相應的接口方式,包括6800、8080的并行接口方式,4線的SPI 和IIC 的串行接口方式。該系統選擇IIC 串行接口,即配置BS1 為1,BS2 為0[12]。其溫控器顯示電路設計與主控器顯示電路設計一致,因此整個系統顯示模塊電路設計如圖5 所示。

圖5 OLED顯示模塊設計原理圖
其中溫控器的顯示內容主要包括工作模式(制熱、制冷、地暖、制熱+地暖、制冷+地冷)、設定溫度、體感溫度(兩個溫度探頭計算得出的平均溫度)、地暖模式(高效、正常、節能)以及風速的顯示。主控器的主要顯示內容包括主機狀態、露點溫度、水溫以及三通閥中進水管、回水管和混合水管中各自的水溫。
繼電器是一種具有隔離功能的自動開關元器件,大量運用于通信、電力系統、自動控制等電子設備中,是重要的電子控制元器件之一[13]。其主要特性是以小電流控制大電流,通過不同電子元器件和繼電器的組合設計,并結合軟件程序的控制,可以實現對繼電器的通斷控制[14]。
該系統使用的繼電器采用δ路達林頓晶體管(ULN2803A)驅動,在繼電器電路設計中,ULN2803A的COM 端和繼電器(HK4100F)的VCC 端連接在一起,是為了利用ULN2803A 內部的續流保護二極管與繼電器內部線圈并聯起來,消除繼電器閉合時產生的感應電壓,實現保護。溫控器模塊中的繼電器模塊采用4 個輸出回路實現對5 個控制對象的控制,根據按鍵模塊切換對應功能,結合單片機控制實現對繼電器I/O 口的高低電平進行變換,最終完成對控制對象的功能控制。其電路設計如圖6所示。

圖6 繼電器模塊電路設計原理圖
RS485通信模塊采用的通信芯片是MAX485ESA,作用是將RS485差分信號轉換為單片機可識別的TTL電平信號。RO和DI分別為接收器的輸出和驅動器的輸入端,和DE 分別為接收和發送的使能端。為邏輯0時,選通RO,輸出有效,器件處于接收狀態;當DE為邏輯1時,選通DI數據輸入有效[15]。為了方便控制,通常將、DE 兩腳連在一起。高電平時,DI 腳的輸入數據有效;低電平時,RO腳的輸出數據有效,從而實現RS485通信[16]。其電路原理圖如圖7所示。

圖7 RS485通信模塊電路設計原理圖
系統軟件實現部分使用Keil Uvision5 MDK 軟件來編寫C 語言程序代碼,將編寫生成的代碼產生的.hex 文件通過ST-LINK 燒錄到單片機中,以實現對整個電路板的控制[17]。冷暖兩聯供控制系統主要實現以下功能:溫度探頭溫度的讀取與處理,溫濕度傳感器數據讀取與處理,風機盤管、地暖與主機的繼電器通斷控制,OLED 液晶顯示屏數據的處理以及三通閥開度大小控制等。其溫控器主程序流程圖如圖8所示。

圖8 溫控器主程序流程圖
圖8 所示的整個控制流程如下:系統在通電之后,首先進行系統初始化(包括ADC、串口、485 通信、DHT11、IIC、繼電器以及OLED 顯示屏初始化),初始化之后單片機首先檢測按鍵返回值,有返回值表明有按鍵按下,無返回值表示無按鍵按下。在檢測到按鍵返回值之后,確定按鍵對應的功能。按鍵確定任務之后,STM32 單片機通過自帶的高速ADC采集溫度探頭測到的數據,再通過換算將測得的ADC 值轉換為溫度值,得到溫度值之后根據工作模式,判斷是否執行相應功能的控制程序。最后單片機將獲取到的相關數據處理轉換后,驅動OLED 液晶屏在對應位置上顯示相關數據并執行相應工作任務直至任務完成。
針對空調空氣溫度控制時舒適度不高的問題,基于STM32 設計了體感溫度控制的冷暖兩聯供控制系統。主要對系統的軟硬件進行了設計,實現了對風機盤管、地暖這兩個空調末端的智能控制。測試結果表明,該控制系統各功能模塊能夠成功運行,溫度采集迅速、處理準確,能夠完成對整個系統的控制。
綜上所述,該控制器實現了設計目標的智能化控制,提高了空調末端的溫控水平,具有一定的實際應用價值。