劉宇航
(沈陽化工大學,遼寧 沈陽110142)
隨著現代化建設的大力發展、生活水平的不斷提高也加劇了地表水環境的污染,我國當前已將發展在線水質監測作為保障水安全和治理水污染的重要技術方案。而目前的水質質量監測工作主要是以實驗室的儀器分析、人工的現場采樣為主。雖然在實驗室中的檢測分析手段完備,但實驗室監測存在采樣誤差大、檢測數據分散、監測頻次低、不能及時反映水質污染變化情況等缺點,而且無法實現多臺檢測設備遠程在線監測的需求,因此本文結合了物聯網的技術,讓管理者通過瀏覽器的形式實現對水質的遠程在線監測。
考慮到系統對遠程監測功能的需求,相較于傳統的C/S 模式,需要運行專門的客戶端軟件并且不能跨平臺使用,而本文所選取的B/S 模式- 瀏覽器/服務器模式,可以實現在隨時隨地都可以通過瀏覽器對檢測設備的控制。系統結構如圖1,瀏覽器主要負責用戶與后臺的交互,Web 服務器作為中間事務處理的節點,既要響應瀏覽器客戶端發來的訪問請求,又要連接數據庫執行相對應的數據請求,并最終將結果返還給客戶端,在瀏覽器頁面上以圖形界面的方式展示出來[1,2]。Web 服務與物聯網技術的融合,可以將物聯網中的不同物聯網對象,比如各種控制系統和各類傳感器節點,成功的聯系起來,將Web 服務作為統一的接口,下與水質監測設備連接,為采集的數據提供上傳處理的接口,上與應用層相連接,為用戶提供簡單的界面管理操作的接口,最終可實現用戶獲取到不同控制系統設備及應用上層應用所提供的服務[3]。

圖1 系統結構
云平臺采用在Linux 系統下安裝MQTT Broker 并部署Web應用,服務器后臺業務邏輯基于Tornado 框架完成對下層物聯網網關上傳的數據進行分析處理。
其中MQTT(消息隊列遙測傳輸協議),是一種基于發布/訂閱模式的“輕量級”通訊協議,該協議建立在TCP/IP 協議的基礎之上,能用很少的代碼和有限的帶寬,為檢測設備的遠程連接提供實時可靠的數據交互服務,是一種低帶寬占用、低開銷的即時通訊協議[4];Tornado 是用Python 語言編寫的一個Web 服務器兼Web 應用框架,它有較為出色的抗負載能力,在處理嚴峻的網絡流量時優勢明顯,在創建和編寫時有足夠的輕量級,能夠簡單快速地編寫高速的Web 應用[5,6],十分適用于物聯網技術中。負責和云平臺通信、維護數據庫,同時完成對多瀏覽器前端的訪問請求響應。后臺程序使用Python 語言編寫,頁面前端利用HTML 和CSS 語言裝載并渲染網頁內容,利用JavaScript來響應用戶輸入,并完成與后端數據庫的交互。以MySQL 數據庫為數據存儲系統。
在前端頁面開發設計中分兩大模塊,分別是前臺信息展現模塊和后臺管理模塊。前臺信息展現模塊主要功能是展現信息供用戶瀏覽,該模塊頁面渲染在后臺完成,大部分為靜態文本。對于后臺管理模塊, 主要采用了 MVVM 架構,即Model-View-ViewModel 它將視圖UI 和業務邏輯分開,使得應用軟件UI 層實現可定制化和細節化通過angularJS 框架來實現[7]。用戶前端展示頁面則通過Ajax 技術實現頁面異步刷新,簡單來講,Ajax 技術是能夠實現對局部網頁刷新并且不重新加載整個網頁的技術[8,9]。
Ajax 工作原理如圖2 所示。使用Noed.js 作為JavaScript 運行環境,軟件作為包管理工具,Umi 項目模板作為前端開發框架。設計時將頁面分為導航欄、內容區、底欄這三塊,并將網頁功能分為多個組件,包括檢測金屬光源、檢測狀態、采樣設置,以及濃度/吸光度曲線圖組件、報警表格組件,主要編輯的文件內拆解Ul 組件。

圖2 Ajax 工作原理
在頁面中需要確定各子組件布局及位置,各組件中需嵌套設備數據的相應變化。實時監測功能將參數處理成可視化數據,在后端程序可根據檢測需求,采用線性回歸或者擬合方式的算法對數據進行處理,進而發送到前端界面,通過曲線圖或折線圖等易分析的方式呈現數據的變化,讓管理者直觀的得到是否滿足檢測需求的結果。
元素燈及背景燈后面為單選框,默認為“關”的狀態,當選擇為“開”的狀態時,立即與下位機檢測設備通訊,對設備的系統燈或背景燈進行操作。
采樣模式為下拉菜單,可分為自動和手動兩種方式。自動模式為首先管理者設置采樣次數,當采樣次數達到設定值,自動計算將所有的采樣值求單次,自動在右側表格生成相應數據,且只需在第一次采樣前按下“采樣”按鈕。手動模式為每次采樣前均需按下“采樣”按鈕,達到采樣次數后需按下“計算”按鈕。
對樣品采樣前,需先建立標樣的濃度/吸光度曲線,可以手動輸入已知標樣的濃度和吸光度,標樣表可以滾動添加行數據,建立曲線方式由下側的擬合方式或回歸方式(下拉菜單)確定。
采樣時,每完成一次采樣,吸光度的最大值就填入采樣表格的相應位置,通過與之前建立好的標樣曲線對比,就會得到水質監測的重金屬濃度。
目前傳統的水質檢測過程監控一般由現場操作員站技術人員進行現場監控[10]。本課題借助于物聯網技術的發展及在工業領域的應用,在傳統現場監控系統的基礎上,實現遠程的瀏覽器控制監測,賦予其新的功能,解決水質監測過程中產生的實時數據的采集、傳輸與存儲、在線展示的問題。從而極大地提高了監測過程中的效率同時節省生產成本和人力。