劉宇航
(沈陽化工大學,遼寧 沈陽110142)
隨著現代化建設的大力發(fā)展、生活水平的不斷提高也加劇了地表水環(huán)境的污染,我國當前已將發(fā)展在線水質監(jiān)測作為保障水安全和治理水污染的重要技術方案。而目前的水質質量監(jiān)測工作主要是以實驗室的儀器分析、人工的現場采樣為主。雖然在實驗室中的檢測分析手段完備,但實驗室監(jiān)測存在采樣誤差大、檢測數據分散、監(jiān)測頻次低、不能及時反映水質污染變化情況等缺點,而且無法實現多臺檢測設備遠程在線監(jiān)測的需求,因此本文結合了物聯(lián)網的技術,讓管理者通過瀏覽器的形式實現對水質的遠程在線監(jiān)測。
考慮到系統(tǒng)對遠程監(jiān)測功能的需求,相較于傳統(tǒng)的C/S 模式,需要運行專門的客戶端軟件并且不能跨平臺使用,而本文所選取的B/S 模式- 瀏覽器/服務器模式,可以實現在隨時隨地都可以通過瀏覽器對檢測設備的控制。系統(tǒng)結構如圖1,瀏覽器主要負責用戶與后臺的交互,Web 服務器作為中間事務處理的節(jié)點,既要響應瀏覽器客戶端發(fā)來的訪問請求,又要連接數據庫執(zhí)行相對應的數據請求,并最終將結果返還給客戶端,在瀏覽器頁面上以圖形界面的方式展示出來[1,2]。Web 服務與物聯(lián)網技術的融合,可以將物聯(lián)網中的不同物聯(lián)網對象,比如各種控制系統(tǒng)和各類傳感器節(jié)點,成功的聯(lián)系起來,將Web 服務作為統(tǒng)一的接口,下與水質監(jiān)測設備連接,為采集的數據提供上傳處理的接口,上與應用層相連接,為用戶提供簡單的界面管理操作的接口,最終可實現用戶獲取到不同控制系統(tǒng)設備及應用上層應用所提供的服務[3]。
圖1 系統(tǒng)結構
云平臺采用在Linux 系統(tǒng)下安裝MQTT Broker 并部署Web應用,服務器后臺業(yè)務邏輯基于Tornado 框架完成對下層物聯(lián)網網關上傳的數據進行分析處理。
其中MQTT(消息隊列遙測傳輸協(xié)議),是一種基于發(fā)布/訂閱模式的“輕量級”通訊協(xié)議,該協(xié)議建立在TCP/IP 協(xié)議的基礎之上,能用很少的代碼和有限的帶寬,為檢測設備的遠程連接提供實時可靠的數據交互服務,是一種低帶寬占用、低開銷的即時通訊協(xié)議[4];Tornado 是用Python 語言編寫的一個Web 服務器兼Web 應用框架,它有較為出色的抗負載能力,在處理嚴峻的網絡流量時優(yōu)勢明顯,在創(chuàng)建和編寫時有足夠的輕量級,能夠簡單快速地編寫高速的Web 應用[5,6],十分適用于物聯(lián)網技術中。負責和云平臺通信、維護數據庫,同時完成對多瀏覽器前端的訪問請求響應。后臺程序使用Python 語言編寫,頁面前端利用HTML 和CSS 語言裝載并渲染網頁內容,利用JavaScript來響應用戶輸入,并完成與后端數據庫的交互。以MySQL 數據庫為數據存儲系統(tǒng)。
在前端頁面開發(fā)設計中分兩大模塊,分別是前臺信息展現模塊和后臺管理模塊。前臺信息展現模塊主要功能是展現信息供用戶瀏覽,該模塊頁面渲染在后臺完成,大部分為靜態(tài)文本。對于后臺管理模塊, 主要采用了 MVVM 架構,即Model-View-ViewModel 它將視圖UI 和業(yè)務邏輯分開,使得應用軟件UI 層實現可定制化和細節(jié)化通過angularJS 框架來實現[7]。用戶前端展示頁面則通過Ajax 技術實現頁面異步刷新,簡單來講,Ajax 技術是能夠實現對局部網頁刷新并且不重新加載整個網頁的技術[8,9]。
Ajax 工作原理如圖2 所示。使用Noed.js 作為JavaScript 運行環(huán)境,軟件作為包管理工具,Umi 項目模板作為前端開發(fā)框架。設計時將頁面分為導航欄、內容區(qū)、底欄這三塊,并將網頁功能分為多個組件,包括檢測金屬光源、檢測狀態(tài)、采樣設置,以及濃度/吸光度曲線圖組件、報警表格組件,主要編輯的文件內拆解Ul 組件。
圖2 Ajax 工作原理
在頁面中需要確定各子組件布局及位置,各組件中需嵌套設備數據的相應變化。實時監(jiān)測功能將參數處理成可視化數據,在后端程序可根據檢測需求,采用線性回歸或者擬合方式的算法對數據進行處理,進而發(fā)送到前端界面,通過曲線圖或折線圖等易分析的方式呈現數據的變化,讓管理者直觀的得到是否滿足檢測需求的結果。
元素燈及背景燈后面為單選框,默認為“關”的狀態(tài),當選擇為“開”的狀態(tài)時,立即與下位機檢測設備通訊,對設備的系統(tǒng)燈或背景燈進行操作。
采樣模式為下拉菜單,可分為自動和手動兩種方式。自動模式為首先管理者設置采樣次數,當采樣次數達到設定值,自動計算將所有的采樣值求單次,自動在右側表格生成相應數據,且只需在第一次采樣前按下“采樣”按鈕。手動模式為每次采樣前均需按下“采樣”按鈕,達到采樣次數后需按下“計算”按鈕。
對樣品采樣前,需先建立標樣的濃度/吸光度曲線,可以手動輸入已知標樣的濃度和吸光度,標樣表可以滾動添加行數據,建立曲線方式由下側的擬合方式或回歸方式(下拉菜單)確定。
采樣時,每完成一次采樣,吸光度的最大值就填入采樣表格的相應位置,通過與之前建立好的標樣曲線對比,就會得到水質監(jiān)測的重金屬濃度。
目前傳統(tǒng)的水質檢測過程監(jiān)控一般由現場操作員站技術人員進行現場監(jiān)控[10]。本課題借助于物聯(lián)網技術的發(fā)展及在工業(yè)領域的應用,在傳統(tǒng)現場監(jiān)控系統(tǒng)的基礎上,實現遠程的瀏覽器控制監(jiān)測,賦予其新的功能,解決水質監(jiān)測過程中產生的實時數據的采集、傳輸與存儲、在線展示的問題。從而極大地提高了監(jiān)測過程中的效率同時節(jié)省生產成本和人力。