李 裴,劉 慧,李滿堂,朱 莉,王換換
(1.徐州醫科大學附屬醫院 信息處,江蘇 徐州 221002; 2 徐州醫科大學,江蘇 徐州 221000)
醫療水平的快速發展使得人們對醫院整體環境質量提出了更高要求,尤其是病房區的條件配置,是影響病患病情恢復的重要因素。而溫濕度等作為病房環境重要組成因素,如何對其進行有效控制,并減少溫控系統資源浪費,是當前病房溫控系統建設面臨的主要問題。
據調研,相似氣候條件下,與發達國家相比,我國單位面積建筑所消耗的熱量要高出1~2倍。據研究,在國內供暖系統中,大型供暖系統的節能潛力平均約為12.5%,造成能源浪費的主要原因包括建筑保溫性能差、熱計量方法不合理,室溫調節機制不完善等[1-2]。
對于溫控系統的設計,科研人員已經開展了多項研究。并根據溫度控制目標的不同,分為動態溫度跟蹤與恒值溫度控制,在工業化工生產、農業生產以及室溫控制等方面均有涉及[3-5]。在已開展的各項研究中,研究人員提出的PID控制算法[6-7]、智能溫度控制法[8-9]、基于模糊邏輯描述的控制算法、模糊PID溫度控制技術[10-11]等常用于工業化工生產、農業生產以及數學模型構建等,對于醫院病房溫度控制的研究相對較少。同時由于現有部分病房溫控系統分辨率與精度低、管理人員水平有限、系統智能化程度不足,導致病房溫控效果并不理想。
在國外,學者對溫控系統及室內溫控裝置進行了較多研究,Monetti等使用Energ- yPlus[12]軟件對某住宅使用散熱器溫控閥使供暖能耗進行動態仿真模擬,使節能效果提升2%~10%;Tahersima[13]等利用散熱器溫控閥的基礎上提高了維護結構保溫性能,供暖能耗下降50%;Baek[14]等設計了一種基于模糊目標溫差的水利地板輻射采暖自適應室外復位控制系統,該系統能夠確定熱量供應時間和開關時間,且系統具有有效性。
在國內,宋春寧[15]等提出了基于ADHDP的PEMFC溫度控制方法,利用Matlab/ Simulink仿真平臺設計溫度控制器,使電堆溫度超調量僅為0.59%,小于HDP的0.94%;竇子文等[16]設計了基于前饋-反饋符合控制的光學晶體溫度調節器,通過引入雙閉環控制的前饋補償控制,并基于ARM+FPGA架構的TEC驅動模塊,實現高頻、高精度的PWM驅動控制,使系統的精度可控制的寬溫范圍在-30 ℃~130 ℃;宋佳良等[17]對一種具有室溫居里點的新型PTC材料PID控溫性能展開研究,降低了溫度超調,提高了控溫精度。
學者對溫控系統的設計開展了較多研究,但適用于病房的溫控系統卻少有研究,因此該文設計了一種基于STC單片機[10]的智能化病房溫控系統。該系統利用溫濕度傳感器以及CO2濃度傳感器對病房溫濕度及CO2濃度進行實時檢測,通過LCD1602顯示屏顯示。在病房溫度調整過程中,可通過PID算法[11]的參數調整,實現病房溫度的自控制,也可利用下位機通過UART串口通信將數據傳輸至PC上位機系統中,管理員根據醫院需要更改病房溫度閾值,調整病房區域溫度,病患也可通過室內控制器進行調整,確保溫控系統的靈活性。該系統的研究與設計對于提高溫控調節器靈活性、降低醫院資源消耗、提升病患入院診療滿意度具有重要幫助。
該系統由軟件部分和硬件部分組成,具體執行流程如下:
溫濕度傳感器DHT11對病房實際溫濕度進行監測,CO2傳感器、CO傳感器等獲取病房內各種氣體濃度,數據通過接口及時上傳至單片機中。
單片機對收到的溫濕度、一氧化碳、二氧化碳等數據后,進行分析與處理;同時對溫度、濕度的具體值以及CO和CO2的濃度進行分析,并通過LCD1602顯示屏展示當前溫濕度等的值。
對于所監測的各項參數,通過單片機中獨立的鍵盤模塊,對溫濕度的閾值進行設置,當溫濕度及各類氣體監測值超過限值時,蜂鳴器模擬的報警系統將發出警報。警報出現后,模擬的控溫系統、加濕系統以及通風系統將根據報警值自動調節,直到數值恢復到正常范圍。
在上述過程中,單片機通過UART串口通信將傳感器監測到的溫濕度數據發送至PC端,上位機將數據保存至數據庫中,并通過相關技術繪制溫濕度的實時曲線。
系統設計中需首先保證相關參數的設計要求,及相關硬件的使用要求,參數具體范圍如表1所示。

表1 單片機相關參數參考范圍
為確?;赟TC單片機的智能化病房溫控系統能夠實時監測病房溫濕度,檢測病房CO2等氣體濃度,靈活控制病房溫濕度,保證病患住院舒適度,該溫控系統的設計需實現以下幾點目標。
1)實時性:由于病房存在長時間不通風狀態,尤其是較為寒冷的冬季,會導致室內有害氣體濃度上升,對室內人員造成危害;同時為確保病患舒適度提高疾病恢復速度,需控制室內溫度在設定閾值范圍內,因此,該溫控系統的設計需具備實時性。
2)高分辨率、高精度:長時間不通風狀態下易產生CO2氣體,對病房人員造成不良影響。對此,需要具有高分辨力和高精確度的檢測設備來實現對有害氣體的檢測和記錄,當濃度接近閾值時,下位機產生預警信息,通過無線傳輸至上位機系統,蜂鳴器警報,確保病患安全。
3)靈活性:通常病房溫濕度的控制由醫院溫控系統統一管理,但由于病房類型和病患需求的不同,要求溫控系統具有一定的靈活性,保證病患或病區醫生能夠自主設定溫濕度閾值,加快病患病情恢復速度。
為實現該溫控系統的預期設計目標,在該病房溫控系統的設計中需實現以下功能:
1)系統各功能模塊獨立運行,當模塊出現錯誤時,上位機控制端具備錯誤追蹤能力,能夠快速定位錯誤點,加快系統恢復進程,降低系統故障影響。
2)對于病房的溫濕度等環境參數,系統具備對病房溫濕度的實時監測功能,同時能夠滿足病患和管理人員的靈活自調整需求。
3)當病房溫濕度及有害氣體超出設定的溫濕度與氣體濃度限值時,系統具備報警功能,當出現問題時,能夠及時提醒管理員進行調整,提升醫護人員處理速度,提高病患入院診療滿意度。
該文設計的基于STC單片機[18]的智能病房溫控系統采用模塊化的設計原則,將系統分為主控模塊、數據采集模塊、數據處理展示模塊、串口通信模塊以及自動控制模塊,各模塊功能如下。
1)主控模塊:該模塊負責系統的整體運行,提供下位機終端設備與各傳感器的控制功能,并通過中央處理器CPU、程序存儲器RAM、數據存儲器ROM、多種I/O口和終止系統、定時器/計數器以及UART串口通信與各模塊進行通信,保證硬件系統穩定運行。
2)數據采集模塊:數據采集模塊包含溫濕度采集板塊和氣體監測模塊,由DHT11傳感器、CJMCU-MiCS-6814傳感器以及T6713-5K傳感器組成,可利用主控模塊將傳感器和A/D轉換器將傳輸的電壓信號轉化為數字信號,然后在LCD屏顯示。
3)串口通信模塊:該模塊是單片機將檢測到的數據值發送到PC端的重要通道。
4)自動控制模塊:該模塊是當溫濕度和相關氣體濃度超過既定閾值,蜂鳴器開啟報警,溫控板塊、加濕板塊以及通風板塊自動工作調節溫濕度至正常范圍。

圖1 系統電路圖
病房溫控系統由主控模塊、數據采集模塊、數據處理與顯示模塊、串口通信模塊以及自動控制模塊組成。整體系統硬件架構如圖2所示。

圖2 系統硬件架構圖
主控模塊作為下位機核心單元,需保證下位機端各模塊穩定運行,設計中采用基于8位單片機處理芯片STC89C51RC系統的STC89C51單片機,該單片機基于51核心板,作為8051核的ISP可編程芯片,最高時鐘頻率為80 MHz,內含4 k Bytes的可反復擦寫一千次,Flash只讀程序存儲器,兼容標準MCS-51指令系統及80C51引腳結構,芯片集成通用8位中央處理器、ISP Flash存儲單元以及MAX810專用復位電路(外部20 M以下時,可省外部復位電路)。
CPU結構采用流水線和簡化的指令集和,工作電壓為5 V,時鐘頻率為0~35兆赫茲,正常工作時電壓為48兆赫茲,應用程序存儲空間為12 k、10 k、8 k、6 k、4 k、2 k Byte,隨機存取存儲器為512字節,EEPROM以512字節為一個扇區,起始地址為Flash+1(0×2 000),有23或27個通用I/O口,電壓幅為之后準雙向口可設置成準雙向口/弱上拉、推挽/強上拉、僅為輸入/高阻以及開漏4種模式,內部集成MAX810專用復位電路,當外部晶體晶振低于20兆赫茲,外部復位電路省略不用。時鐘源部分,外部有高精度晶體,內部采用R/C振蕩器。常溫下內部R/C振蕩器頻率為5.2~6.8兆赫茲。
本次設計中,單片機選用PDIP封裝方式,引腳部分P0口由8個相同結構引腳組成;P1口通常用作通用I/O端口,可用作按拉尋址處理;P2口可作為普通輸入輸出口,也可以在系統外部擴展存儲器,輸出高8位地址;RST為復位端口,ALE/PROG輸出1/6角頻率的方波;PSEN作為外部程序存儲器選通訊號;EA/VPP作為訪問外部程序存儲器的控制信號,XTAL1是振蕩器逆變放大器和內部時鐘發生器電路的輸入端,XTAL2是XTAL1的輸出端。
數據采集模塊包括溫濕度信號采集板塊、CO氣體濃度采集板塊、CO2氣體濃度檢測模塊。
溫濕度傳感器選用DHT11傳感器,包含3個引腳,P1(GND),接地,電源負極;P2(DATA),船型數據,單總線,接單片機IO口;P3(VCC),電源引腳。數據由8 bit濕度整數數據+8 bit濕度小數數據+8 bit溫度整數數據+8bit溫度小數數據+8 bit校驗位;微處理器(M0)與DHT11通信約定,其中M0作為主機,DHT11為從機。具體過程M0通知相應信息準備接收數據,DHT發送信號準備結束內部信號,DHT的測試環境的溫濕度數據和記錄數據的開始信號為下次M0。整個過程中,DHT輸出80 μs低電平作為應答信號,輸出80 μs高電平,作為通知微處理器準備接收數據的通知。
CO傳感器采用CJMCU-MiCS-6814,該傳感器除可檢測CO濃度外,還可對NH3、NO2等氣體進行監測。該傳感器具有體積小、適應能力強、功耗低、檢測靈敏度高、監測范圍廣等優勢,傳感器的5個引腳分別對應CO、NH3、NO2、GND、+5 V。具體參數配置如表2所示。

表2 CJMCU-MiCS-6814參數表
CO2傳感器選用T6713-5K氣體傳感器,傳感器大小為30 mm×15.6 mm×8.6 mm,準確率的范圍為400~5 000 ppm+/-30 ppm±3% 到400~2 000 ppm+/-25 ppm±3%之間,溫度依賴性為每攝氏度5 ppm或每攝氏度讀數的0.5%,以較大者為準,壓力一輛為每毫米汞柱讀數0.13%,90%的躍階變化響應時間<3分鐘,信號每5秒更新一次,傳感器本身的存儲條件在-30~70攝氏度之間。該傳感器融合了體積小、精度高、可靠性強、功耗小、測量范圍大、響應時間短等優勢,相關參數如表3所示。

表3 T6713-5K參數表
設計中選擇的各種傳感器所需滿足的各種工作條件互不排斥,且均具有較高的精確度,能夠在復雜環境中穩定運行,保證了溫控系統整體的可靠性。
采用LCD1602液晶顯示屏,雙行顯示,每行16字符,工作電壓為4.5~5.5 V,工作電流為在5 V電壓下為2毫安,字符尺長為2.95×4.35(長×寬)毫米,顯示屏中包含16個引腳,第2引腳為VCC接V電壓,第3引腳VL為液晶屏顯示對比度調節端口,第4腳RS選擇寄存器,RS=0,選擇數據寄存器,RS=1,選擇指令寄存器,第6引腳E為Enable,高電平轉低電平時,表示可用,能實現命令,第7~14引腳,D0~D7是8位雙向數據線。另外LCD1602中關鍵性指令設置了清屏指令、設置模式指令、顯示開關控制指令、功能設定指令等。
預警模塊主要負責對超出預警值的監測信息進行報警,確保病房環境安全。具體硬件設計如下。
預警模塊由蜂鳴器、發光二極管以及LED組成。電子蜂鳴器作為集成結構,選用直流穩壓電源,應用場景廣泛,設計中通過設置不同的頻率使蜂鳴器發出不同聲音,作為不同監測值的報警信息。設計中使用有源蜂鳴器,在其兩端加載5V的直流電壓,當單片機P1^5輸出一個低電平時,蜂鳴器響,實現報警。
發光二極管由含鎵(Ga)、砷(As)、磷(P)、氮(N)等化合物制成,由于LED體積小,常作為電路指示燈。該文設計中使用紅色發光二極管作為自動控制模塊中的一部分,當蜂鳴器報警時,LED模擬加濕系統,調節病房濕度,控溫系統調節病房溫度,通風系統調節病房空氣質量。
該系統對硬件系統按鍵模塊的設計中采用獨立鍵盤的方式,一個按鍵對應單片機的一個I/O口引腳。設計的總份額從K1到K3,共有3個按鍵式開關,K1、K2、K3分別連接單片機P3^1、P3^0以及P3的2個I/O口,用來改變溫濕度的上下限閾值。鍵盤模塊為低電平,按鍵未按下時,上拉電阻確保單片機I/O口具有一定的高電平,當某個按鍵按下時,I/O口變成低電平。
系統的軟件設計主要分為上位機和下位機兩部分,軟件部分采用STC89C51系統進行C語言的編輯,Keil C51提供了完整的開發方案,本次設計在Win10環境下運行。
主程序控制各模塊,負責接收溫濕度傳感器的溫濕度數據、接收CO傳感器和CO2傳感器檢測的氣體數據,并向PC端傳送串口數據、LCD液晶屏顯示溫濕度,進行按鍵檢測調節溫濕度上下限。主程序設計如下:
void main()
{
uchar i:
UsartInit( ); // 串口初始化
LcdInit( ); // 液晶功能初始化
LcdShowInit ); // 顯示功能初始化
Flengshan = 0;
AlarmTL = EEPROM_Read(0x2000);
//從EEPROM的0x2000位置讀取溫度的報警下限
AlarmTH = EEPROM_Read(0x2001);
AlarmHL = EEPROM_Read(0x2002);
AlarmHH = EEPROM_Read(0x2003);
while(1)
{
sendSeriaPortMessage();//串口傳輸
Datapros();//接收CO2數據
ReadDhtData(); //檢測溫濕度數據
LcdGotoXY(1,2);//光標定位溫度處
LcdPrintNum(temp); //顯示溫度值
LcdGotoXY(1,11); // 定位濕度處
LcdPrintNum(humi); //顯示濕度值
AlarmJudge(); // 判斷報警信息
for(i=0;i<25;i++)
{
KeyScanf(); // 按鍵掃描
DelayMs(20); // 延時
}
}
}
DHT11能夠讀取5個字節,連續讀40 bit。當遇到低電平時,是while(低電平),等待;為高電平時,就延時30 μs,然后讀電平,若讀到低電平,說明已經到達第二個bit,而之前那個bit是0,返回(1);如果是高電平,說明我們還在這個bit,bit是1,則while(高電平)等待,等轉換到bit的低電平,返回(1),具體程序設計如下。

圖3 相關參數監測流程圖
void ReadDhtData()
{
uchar HumiHig; //分別設置溫濕度的限值
uchar HumiLow;
uchar TemHig;
uchar TemLow;
uchar check;
DHT11_P = 0;
DelayMs(20);
DHT11_P = 1;
Delay10us( );
Delay10us( );
Delay10us( );
while(!DHT11_P); //等待
while(DHT11_P); //將測量數據賦予定義好的變量
HumiHig = DhtReadByte( );
HumiLow = DhtReadByte( );
TemHig = DhtReadByte( );
TemLow = DhtReadByte( );
Check = DhtReadByte( );
DHT11_P = 1;
if(check HumiHig+HumiLow+TemHig+TemLow)
{
Temp = TemHig;
Humi = HumiHig;
}
}
接收串口數據前首先對串口進行初始化操作,注冊串口驅動程序,在初始化過程中,先取出相應的UART_Port,然后對其初始化,獲取虛擬機地址,獲取終端號,復位FIFO;接著添加UART_Port-UART_add _one_Port,創建屬性文件,最后初始化動態頻率調節,關鍵代碼如下。
SerialPort1 = newSerialPort (“COM5”, 4800, Parity.None, 8, StopBits.One); //初始化串口設置
Public delegate void Displaydelegate (byte[] InputBuf);
Byte[] OutputBuf = new Byte[128];
public Displaydelegate disp_delegate;
string str;
Public From1()
{
disp_delegate =new Displaydelegate (DispUI);
serialPort.DeataReceived += new;
SerialDataReceivedEventHandler(Comm_DataReceived);
InitializeComponent( );
}
該部分的設計為實現溫濕度的實時監測,并實現溫濕度的可視化,便于管理員實時監測溫濕度變化趨勢,進行相應的限值調整,具體設計如下。
private void timer1_Tick(object sender, Event args e)
{
timer1.Interval = 500;
Double newX, newY, newZ;
newX = i;
newY = Convert.Todouble(temp);
newZ = Convert.ToDouble(humi);
Chart1.Series[0].Points.AddXY(newX, newY);
Chart1.Series[1].Points.AddXY(newX, newZ);
i++;
if(chart1.Series[0].Points.Count > 10)//繪畫坐標點超過100個時,更新X時間坐標
{
Chart1.ChartAreas[“ChartAreal”].AxisX.Minimum = i-10;//設置Y軸最小值
Chart1.ChartAreas[“ChartAreal”].AxisX.Maximum = i+10;//設置Y軸最大值
Chart1.ChartAreas[“ChartAreal”].AxisX.Interval = 2; //設置每個刻度的跨度
}
}
此外,為實現病房溫控系統的智能化,系統設計中使用PID算法[19-21],通過PID算法中的參數調整,智能調節病房溫度。

圖4 PID算法框架圖
PID是比例、積分與微分的簡稱,該算法的關鍵是控制參數KP、KI、KD的設置。作為比例控制參數KP,其能夠提高系統的動態響應速度,迅速反應誤差,從而減少誤差,但不能消除誤差,即KP值越大越快,KP值越小越慢;KI為積分控制作用,一般用于消除靜態誤差,靜態誤差指系統穩定后輸入輸出之間存在的差值,當系統存在誤差,積分作用便會導致誤差不斷疊加,便需要輸出控制量來消除誤差,當誤差為零時,積分停止;KD則是對偏差的變化趨勢做出反應,根據偏差的變化趨勢實現超前調節,提高反應速度。PID算法數學表達如下。
設定一個目標溫度值,設為yp(t),實際溫度是y(t),則偏差值為:
err(t)=yp(t)-y(t)
(1)
由圖6知,得出偏差值err(t)后,根據PID算法的比例、積分和微分運算,得到控制量u(t),其表達式如下:

圖6 溫濕度范圍設置測試
(2)
其中:u(t)為控制器輸出值,KP為比例系數,TI為積分時間常數,TD為微分時間常數。
積分項KI可以化簡為:
(3)
微分項KD可以化簡為:
(4)
綜上,控制量u(t)公式化簡為:
KD*[err(k)-err(k-1)]
(5)
算法執行過程如下:

圖5 算法執行流程圖
系統設計完成后,為確保系統各模塊能夠正常運行,將病房溫控系統設計的軟件、硬件、網絡等板塊相結合,開展現實環境中的實踐測試,以便及早發現潛在問題并進行處理。本次實驗主要針對硬件系統是否正常運行、溫濕度的限值設置、溫濕度的實時曲線顯示,結果如下。
該部分對電源模塊、主控模塊、液晶顯示模塊以及DHT11傳感器是否正常工作進行檢驗,首先接通電源查看電源指示燈是否正常亮起,其次檢測DHT11傳感器是否正常監測溫度,以及LCD1602顯示屏是否正常開啟,并能顯示溫濕度傳感器上傳的溫濕度數值,最后檢測單片機按鍵模塊是否能調整溫濕度的限值,經檢驗一切正常。
本次實驗針對冬季病房溫度閾值進行設置,考慮病患舒適度與病患病情恢復速度等因素,決定將溫度范圍設置為20~25 ℃,濕度為40%RH~55%RH,結果如下。
為更好地觀察病房內溫濕度的變化過程,以及全天病房溫濕度變化趨勢,系統設計中在上位機部分設置了溫濕度實時變化曲線監測功能,橫坐標為時間變化,縱坐標為溫濕度范圍,具體結果如下。

圖7 溫濕度實時曲線
經檢驗,該文設計的溫控系統各部分能夠正常運行,溫濕度傳感器、一氧化碳和二氧化碳等氣體傳感器能夠正常監測環境溫濕度以及其中氣體濃度,并能通過接口將數據上傳至單片機中,LCD顯示屏對數值進行顯示,之后通過UART串口將數據上傳至PC上位機端,實現溫濕度曲線的實時繪制,實驗結果達到預期目標。
目前,構建智能化的病房溫控系統是解決或緩解醫院病房溫控資源浪費的重要手段,其中通過精密有效的測量方式與儀器形成的軟硬件系統則是智能化病房溫控系統建設的重點。該文利用STC系列,基于51核心板的8051核ISP可編程芯片,設計基于PID算法的智能病房溫控系統,通過溫濕度傳感器實時監測病房溫濕度變化趨勢,期間單片機通過轉換器接收傳感器上傳的溫濕度等數據,利用UART串口將數據上傳至上位機端進行可視化。通過設置溫濕度限值,使用蜂鳴器建立預警系統,對超出限值的項進行報警,管理員通過操作軟件系統或硬件系統按鍵模塊,實現對病房溫濕度的范圍控制,確保病房整體環境質量,為病患提供更良好的病房環境,有助于病患疾病的恢復。另外,所選用的各類儀器能夠在低功耗下,長時間穩定運行,且能保證精確度,有效降低了管理人員的管理難度。針對該文設計的系統存在的不足,下一階段研究中,將不斷完善該溫控系統的智能化建設,并通過引入深度學習算法,實現系統的高效自管理。