陳致宇 周志偉
?
基于STM32的樓宇熱水供應(yīng)監(jiān)測系統(tǒng)
陳致宇 周志偉
為了解決樓宇熱水供應(yīng)技術(shù)自動化水平較低的問題,本文設(shè)計了一套熱水供應(yīng)監(jiān)測系統(tǒng)。該系統(tǒng)利用STM32系列微處理器作為系統(tǒng)的主控制器,同時結(jié)合現(xiàn)代傳感器技術(shù)和信號處理方法設(shè)計了系統(tǒng)的硬件部分。利用VC++6.0開發(fā)的上位機軟件功能強大,可以實現(xiàn)顯示實時水溫與液位動態(tài)曲線,再現(xiàn)歷史信息,設(shè)置初始數(shù)據(jù)等功能。
我國大部分地區(qū)的樓宇熱水供應(yīng)系統(tǒng)的自動化程度還不高,不少區(qū)域的系統(tǒng)監(jiān)控和維護對人工的依賴性還很強。隨著無線通訊技術(shù)的發(fā)展,無線通信功能已經(jīng)廣泛應(yīng)用在在樓宇熱水供應(yīng)系統(tǒng)上,無線通信功能所具有的遠距離通信能力與傳統(tǒng)的人工操作與維護相比使得系統(tǒng)在穩(wěn)定性與可靠性方面上了一個臺階,遠距離通信的能力在系統(tǒng)工作在惡劣環(huán)境時,優(yōu)勢顯得越發(fā)明顯。
下位機監(jiān)測部分、遙控終端連同上位機軟件一起組成了樓宇熱水供應(yīng)監(jiān)測系統(tǒng)。下位機部分可以采集監(jiān)測系統(tǒng)的各種數(shù)據(jù)參數(shù)(液位、溫度、壓力),如果發(fā)現(xiàn)哪種數(shù)據(jù)參數(shù)超出了設(shè)定范圍可以通過相應(yīng)的控制單元使得對應(yīng)的參數(shù)回歸到預定的范圍內(nèi),與此同時通過遙控終端部分向上位機監(jiān)測軟件發(fā)送警報信息,采集到的數(shù)據(jù)信息還可以通過遙控終端的RF模塊發(fā)送到上位機監(jiān)測軟件上進行實時顯示。下位機部分主要由溫度與液位傳感器、壓力傳感器、加熱器、供水罐、補水泵、加壓泵等組成。遙控部分的主要作用是接收下位機傳輸?shù)男畔⑵涠〞r存儲并顯示。上位機軟件主要負責以圖形化的形式實時讀取并顯示存儲在遙控部分的系統(tǒng)運行數(shù)據(jù),此外還可以修改系統(tǒng)的運行參數(shù)。
本系統(tǒng)硬件主要包括下位機部分模塊和遙控部分模塊兩個部分,下位機部分包括STM32F100C8主控芯片、壓力傳感器、溫度與液位傳感器、信號轉(zhuǎn)換電路、nRF905無線模塊、壓力控制機構(gòu)以及溫度與液位控制機構(gòu)。交流調(diào)功模塊的輸入采用D/A轉(zhuǎn)換電路的輸出電壓,加熱器兩端電壓由調(diào)功模塊依據(jù)其輸入電壓的大小進行調(diào)節(jié),從而實現(xiàn)對加熱功率的控制,進而穩(wěn)定溫度;變頻器的輸入采用D/A轉(zhuǎn)換電路的輸出電壓,補水泵的轉(zhuǎn)速依據(jù)輸入電壓的大小來進行調(diào)節(jié),進而達到穩(wěn)定液位的目的;系統(tǒng)壓力穩(wěn)定的維持則采用簡單的加壓泵啟停方式。由STM32F100C8主控芯片、nRF905無線模塊、RS232接口電路、AT24C128存儲芯片、DS1302電路、LCD1602接口電路、聲光報警電路、調(diào)節(jié)按鍵電路等部分構(gòu)成了遙控終端。
系統(tǒng)軟件設(shè)計包括下位機采集終端軟件設(shè)計、遙控部分軟件設(shè)計以及上位機監(jiān)測軟件三個部分。
圖1 系統(tǒng)總體結(jié)構(gòu)
圖2 監(jiān)測節(jié)點硬件結(jié)構(gòu)
采集終端軟件設(shè)計
采集終端軟件流程圖如圖3所示。下位機采集模塊上電后,進行各模塊的初始化程序。然后檢測遙控終端部分傳送來的數(shù)據(jù)信號是否被接收到,如果接收到了,則進入數(shù)據(jù)接收子程序接收數(shù)據(jù)信息;如果遙控終端部分傳送過來的數(shù)據(jù)沒有被接收到,那么看定時時間有沒有到,STM32F100C8單片機在預設(shè)時間結(jié)束時采集相應(yīng)的數(shù)據(jù)信息,之后通過數(shù)據(jù)發(fā)送子程序?qū)⑥D(zhuǎn)換后的數(shù)據(jù)發(fā)送給遙控終端,考慮到壓力變化的速度相較于溫度和液位的變化速度快的特點,對采樣時間進行區(qū)別對待,如果數(shù)據(jù)沒有采樣十次,則繼續(xù)采樣壓力數(shù)據(jù),直到壓力數(shù)據(jù)采樣十次時才采樣溫度數(shù)據(jù)與壓力數(shù)據(jù),如果定時時間沒到,則繼續(xù)等待。采集到的溫度、液位和壓力數(shù)據(jù)分別進入不同的控制程序中進行處理。
圖3 采集終端軟件流程圖
圖4 遙控部分軟件設(shè)計
遙控部分軟件設(shè)計
遙控終端軟件流程圖如圖4所示。遙控終端上電之后,進行系統(tǒng)的初始化,如果下位機傳送古來的數(shù)據(jù)被讀取,則運行串行通信程序并讀取當前時間,刷新顯示之后如果確實有接收數(shù)據(jù),那么接收數(shù)據(jù)并存儲,如果是錯誤信息則進行聲光報警;如果沒有接收數(shù)據(jù),檢測是否有按鍵按下,如果有按鍵按下,進行系統(tǒng)參數(shù)調(diào)整,接著進行時間調(diào)整和運行向下位機發(fā)送數(shù)據(jù)的程序。當遙控終端部分與上位機部分進行連接時,主控芯片STM32F100C8會依據(jù)接收到的命令類型執(zhí)行與其相對應(yīng)的相關(guān)子程序。
圖5 上位機監(jiān)測軟件運行界面
上位機監(jiān)測軟件
本文采用VC++6.0設(shè)計了上位機部分的監(jiān)測軟件,采用ActiveX控件方式的串口操作方式。以二進制方式檢取單片機串口的數(shù)據(jù),其一幀數(shù)據(jù)包括1位起始位,8位數(shù)據(jù)位和1位停止位,在VC++6.0軟件中寫相應(yīng)程序時,需要匹配STM32F100C8單片機的設(shè)置和串口通信控件的設(shè)置,根據(jù)實際需要將相關(guān)函數(shù)的參數(shù)配置成m_ ComPort.SetSettings (“9600,n,8,1”)。使用者可以根據(jù)實際需求在上位機監(jiān)測軟件的相應(yīng)程序中對液位與溫度參數(shù)進行修改,當用戶對系統(tǒng)運行參數(shù)進行設(shè)置時寫串口操作被看做激發(fā)事件產(chǎn)生,讀取控制端存儲芯片數(shù)據(jù)操作則由點擊歷史信息按鈕時激發(fā)。
本文采用強大的VCL圖表組件TeeChart進行數(shù)據(jù)圖形化顯示,當上位機軟件通過串口通信程序接收下位機終端部分傳送過來的參數(shù)信息時,程序接收到的信息將被TeeChart控件所讀取,讀取到的溫度和液位參數(shù)信息將在上位機監(jiān)測軟件上以實時曲線的形式繪制出來,上位機監(jiān)測軟件在某段時間內(nèi)的運行界面如圖5所示。
該樓宇熱水供應(yīng)監(jiān)測系統(tǒng)可以對溫度、壓力以及液位等參數(shù)信息進行實時采集、傳輸和處理,能保存并顯示歷史數(shù)據(jù)信息,能快速準確、可靠的提供樓宇供水的動態(tài)變化信息,具有一定的應(yīng)用前景。
陳致宇 周志偉
湖南機電職業(yè)技術(shù)學院
陳致宇(1987-)男,湖南機電職業(yè)技術(shù)學院教師,主要研究方向:智能監(jiān)測與控制; 周志偉(1989-)男,湖南機電職業(yè)技術(shù)學院教師,主要研究方向:智能檢測與信息融合。
10.3969/j.issn.1001-8972.2016.10.021