修偉通 李娟 王如龍
1. 北京信息科技大學自動化學院,北京 100192;2. 中熱智能(北京)工程技術有限公司,北京 100192
隨著城市化進程的加快,供熱需求也增長迅速?;趥鹘y人工控制的供熱熱網也逐步被自動化設備取代[1],人們對自動化控制的數據要求也越來越高,從基本的熱網熱源控制參數發展到管網控制參數,進而發展到換熱站控制參數[2-4]。眾多數據的引入使我國的集中供熱逐漸向智慧化的方向轉變。近些年,供熱公司和高校逐漸把目光轉向處于供熱末端的供熱用戶身上,用戶室內的溫度是供熱效果最為直接可靠的體現[5]。因此,以采集用戶室內溫度為目的的測溫終端被廣泛部署,這種終端設備可以代替傳統的人工上報手段,使獲得的數據更加具有實時性和參考性。近年來,隨著物聯網技術、無線通信技術和云計算的迅速發展,開發基于B/S(Browser/Server)架構的室溫遠程監控系統已成為新的組網形式[6]。用戶僅需要通過瀏覽器就可以實時查詢各個供熱區域內的供熱情況,對實時了解供熱情況,合理分配供熱資源具有重要意義。
本文提出一種基于B/S架構的室溫監控平臺,該平臺使用Django框架作為Web開發,前端采用Bootstrap、CSS、JavaScript和HTML5對數據進行可視化展現,后端則使用Python語言完成數據交互,MySQL作為云端數據庫,引用GIS系統展現區域熱力圖。進而實現系統與現場測溫終端進行GPRS無線通信,實現室溫的遠程監控。
室溫監控平臺選用的網絡架構模式是B/S體系[7-8]。這種架構體系是基于瀏覽器和服務器之間的一種信息交互模式,是一種伴隨Web技術一同發展起來的新型架構體系。這種架構體系將數據庫作為服務器,瀏覽器作為客戶端,通過HTTP協議進行通信,用戶界面通過瀏覽器進行展示。與傳統的C/S(Client/Server)體系相比,新的架構體系更能減少系統的開發和維護成本,同時為用戶的使用提供便利。
系統總體設計如圖1所示,可分成3大部分:應用層、網絡傳輸層和設備層。

應用層即為向用戶展示的監控平臺,采用Django框架搭建,用戶可以通過瀏覽器登錄系統,直觀查看供熱數據以及供熱熱力圖;網絡傳輸層主要是通過Socket監聽,將測溫設備上傳的數據解析并存儲到MySQL數據庫中;設備層則是當前已經安裝的測溫設備,數據通過GPRS以Socket的形式進行上傳。
MySQL是目前最為流行的關系型數據控管理系統。該數據庫管理系統具有軟件體積小、數據處理速度快和代碼開源開發成本低的特點。同時,MySQL數據庫可以兼容Django框架,通過Django框架設計數據模型后,通過Django數據庫遷移功能即可完成數據庫的搭建工作,同時針對SQL語言,Python設計了更為方便的數據包——pymysql,可以使開發人員更加方便的管理和操作數據庫。因此,將MySQL作為服務器的數據庫,對于存儲大量設備信息、用戶信息和歷史溫度數據,提供快捷高效的邏輯運算和數據分析起到了十分重要的作用。
本文提出的室溫監測系統基于B/S(Brower/Server)架構,使用Django框架進行開發。Django框架是在傳統MVC的基礎上用模板代替控制器發展而成的新模式——MTV設計模式,即模型(Model)、模板(Template)、視圖(View)[9]。其中,模型層是數據存儲層,通過創建表單、字段與數據庫進行同步管理,提供通用的數據輸入輸出接口,當應用更換不同類型數據庫時,不需要重新建立數據庫模型,利用現有的表單模型即可生成新的數據庫文件;模板層是數據渲染層,決定瀏覽器內容呈現的樣式,從而決定了數據的可視化形式;視圖層是業務邏輯層,后端接收前端用戶業務請求,數據的預處理分析以及查詢工作和邏輯功能的實現都是在視圖層進行完成,是連接模板與模型的橋梁,Django框架如圖2所示。

地理信息系統(geographic information system,GIS)是基于計算機軟硬件系統的以數據采集、存儲、管理、分析和描述整個或部分地區表面資源的技術系統[10]。該系統可以將地物的地理空間位置和與其相關的其他屬性數據進行結合展示,使信息更為直觀地展現出來。同時,也可以為用戶提供分析、查詢以及檢索等相關功能?;贕IS系統設計的熱力圖可以更加直觀地反映區域供熱情況。本次平臺設計選用百度地圖作為GIS系統模板,前端調用百度地圖預留的API接口,可以在百度地圖原有的地圖系統中直接繪制區域熱力圖。
系統硬件基于目前中熱智能(北京)工程技術有限公司已經研發的室內溫度采集終端,采用單片機STM32F103C8T6作為主控MCU,無線通信技術選用GPRS技術,使用通行模塊型號為M26,外圍電路包括測溫電路、存儲電路、實時時鐘電路和GPRS通信電路,硬件模塊的結構組成如圖3所示。該測溫終端可以將采集到的數據通過GPRS模塊以Socket嵌套字的形式上傳至服務器進行解析處理。

系統軟件可以分為服務器軟件設計和數據通信軟件設計。其中,服務器部分可以根據Django框架分為模型設計、模板設計和視圖設計。
室溫監控平臺界面的整體功能包括用戶的登錄與注冊、設備信息管理、溫度報警、實時熱力圖和歷史溫度數據查詢等功能。
3.1.1 模型設計
使用Pycharm軟件建立Django項目后,可以在models.py文件中建立數據模型,模型建立后可以使用指令python manage.py makemigratetions和指令python manage.py migrate通過該模型在MySQL數據庫中建立對應表單用于后續的數據存儲工作。
本文設計的監控平臺共建立3個數據模型,即User(用戶模型)、UserItom(設備模型)和ItomDetail(設備信息模型)。3個表單均為一對多關系,各個模型之間可以通過關鍵詞ForeignKey建立外部聯系,模型關系結構和具體ForeignKey如圖4所示。
模型User用于用戶信息表單建立,涉及用戶賬號、密碼、地址區域等信息;模型UserItom用于設備信息表單建立,涉及設備ID、設備地址、經緯度等信息的存儲;模型ItomDetail主要用于設備采集溫度表單建立,其功能主要為保存測溫終端上傳的溫度數據和采集時間。
3.1.2 視圖設計
Django框架中視圖設計包含2個內容:路由(URL)設置和視圖函數設計。
路由是根據用戶請求的URL連接來判斷對應的處理程序,同時返回處理結果,即Django框架通過URL來將用戶請求與視圖函數建立映射關系。Django路由使用正則表達式在urls.py中進行配置,urls.py中的每一條配置對應響應的處理方法。本文設計的系統路由配置如圖5所示。
3.1.3 模板設計
Django框架中的模板語言是一種將HTML語言與邏輯控制代碼相結合的新型語言,可以在服務端后端的數據變量嵌入到HTML文件中進行渲染后,返回給瀏覽器來達到前后端代碼分離、頁面動態顯示的目的。Django模板語言的優勢主要展現在母版繼承和include組件嵌套。


母版繼承以減少網頁公用頁面區域重復使用造成的代碼冗余,通過在母版定義block塊,子版繼承母版后僅需編寫塊中內容即可實現網頁的快速編寫,例如圖6中的base.html文件為用戶登錄后的系統樣式文件,子版繼承后就可在此基礎上實現其余功能,如圖7所示,紅色區域內為子版繼承后編寫的block塊。
Include組件嵌套則可以方便對HTML中需要的CSS和JavaScript代碼進行整合形成公共組件,其他代碼則可以通過標簽{% include %}進行調用。
熱力圖的設計是以百度地圖為基礎,在HTML文件中通過script標簽接入百度地圖的API接口,使用JavaScript完成地圖創建,確定地圖中心坐標和其余地圖設置。
熱力圖數據可以在后端以json格式通過render函數傳遞給前端的JavaScript函數,json數據中要包含建立熱力點所需要的設備經緯度信息和溫度等級信息,溫度等級范圍是0~100,可以根據實際使用的溫度范圍進行自定義劃分,不同等級在圖中展示的顏色也會不同。百度地圖提供的heatmapOverlay.setDateSet()可以根據提供的熱力信息完成熱力圖制作,熱力圖如圖8所示。
測溫終端作為客戶端,使用綁定的服務器IP地址和預留端口號,利用GPRS實現對服務器的連接和訪問。服務端則利用Python Socket編寫腳本用以偵聽GPRS發送的TCP/IP請求。當終端GPRS模塊與服務端監聽程序設置的IP地址及端口一致時,就可以建立兩者通信。之后,通過建立MySQL數據庫游標將終端上傳的數據存儲到數據庫中,通信流程如圖9所示。





在熱力圖顯示界面,為方便用戶更加詳細地了解實時數據情況,引入實時數據展示功能。該功能可以將各個設備的最新溫度數據進行滾動式循環顯示,同時,使用JavaScript編寫腳本函數用不同顏色區分各個溫度區域:溫度數據低于10 ℃或高于27 ℃標記為異常溫度,用紅色進行標識;溫度處于10~18 ℃之間標記低溫,用藍色進行標識;溫度處于18~23 ℃之間標記為正常溫度,用綠色進行標識;溫度處于23~27 ℃之間標記為高溫,用黃色進行標識。此外,可以使用HTML編寫鼠標懸停功能,當鼠標懸停于某個數據上時,該數據會變為白色標記,同時顯示該數據的采集時間,方便用戶查詢,實時數據功能如圖10所示。
服務器使用Python Socket腳本對端口進行偵聽,接收來自測溫終端的連接請求和數據,并將接收的數據存入MySQL數據庫中。用戶注冊、登錄系統后,可以看到已經綁定的設備信息以及已經上傳的歷史溫度數據和實時熱力圖。系統部分功能界面如圖11所示。
本文結合物聯網和GPRS無線通信技術設計了室溫監控平臺。平臺設計基于Django框架,給出了詳細的軟件設計流程以及具體工具的使用方法,經過測試,該平臺可以穩定接收終端數據,方便用戶遠程管理設備,通過熱力圖直觀展現區域供熱分布情況。本系統與傳統的室溫統計方法相比,在極大減少人力成本的同時提高了數據的實時性,從而為智慧供熱整體控制提供更為可靠的數據支持。
