劉世兵,劉成印
(山東工商學院 信息與電子工程學院,山東 煙臺 264003)
水質監測是水環境狀態分析、污染防護、資源利用的基本環節,國家出臺了多項政策加強水污染防治,取得了一定成效[1]。但是近年來發生的多起跨界水污染事件中,出現了發覺時間滯后,流域內水污染程度無法準確評估的問題[2-5]。其原因是傳統水質監測站成本過高、布線復雜,不利于大范圍設置監測點,使跨界水污染事件的取證缺乏技術支持。因此,設計一種適合大范圍覆蓋的水質監測系統很有必要。
目前最適合這種監測場景的通信技術是窄帶物聯網(Narrow Band Internet of Things, NB-IoT)[6]。但是要實現窄帶物聯網的接入需要完成NB-IoT模塊與通信基站的穩定連接,以及設計應用層協議等準備工作。有人云平臺提供的通信終端與云端服務能很好地解決接入問題,縮短應用系統的研發周期,讓開發者專注于終端數據采集的開發和數據展示及應用。因此,將通信及數據解析的任務交由有人云平臺處理。
本文提出了一種基于有人云的水質在線監測系統,并設計了基于Web和微信小程序的監控軟件,可在手機端和電腦端實時查看流域的水質情況。系統可方便、快速地實現跨界河流湖泊的大范圍水質監測,當跨界水污染事件出現時,系統會及時發出預警信息,并提供監測范圍內河流湖泊的水質信息用于水污染程度分析。
基于有人云的水質在線監測系統包括水質監測終端、NB-IoT通信模塊、有人云平臺、微信小程序和Web端軟件。系統總體結構如圖1所示,其中水質監測終端包括核心控制器、電導率型傳感器、pH值傳感器、溫度傳感器、濁度傳感器、GPS模塊、存儲模塊、電源模塊及I/O模塊。工作流程:水質監測終端采集水環境的狀態參數信息及終端位置,NB-IoT通信模塊將采集的水質信息和位置信息一同發送到有人云平臺進行數據處理,有人云平臺經配置設計后可提供水質超限報警、微信小程序實時數據顯示、有人云網站實時數據顯示、提供二次接口等功能。如果所有用戶登錄有人云網站進行水質監測,配置易被無關人員修改,存在風險,故利用有人云平臺提供的API接口進行Web軟件開發,提供數據監測、歷史數據查詢等功能,弱化配置設計等功能,以提升數據展示的安全性。

圖1 系統總體結構
監測終端硬件結構如圖2所示。采用STM32F103VET6作為核心控制器系統芯片,采用多種接口分別與對應的傳感器相連接,獲取相關水質信息[7]。在傳感器電路中加入GPS模塊,用于獲取終端位置信息。STM32核心系統將獲取的數據信息推送到顯示模塊,可供本地實時查看水質狀態數據。STM32核心系統將數據信息發送到NB-IoT模塊,通過運營商基站將數據轉發到有人云平臺進行處理。

圖2 監測終端結構
串口總線接入的傳感器選用RMD-ISEC2型電導率傳感器和RMD-HB型pH值傳感器。兩種傳感器皆有RS 485接口,用1個RS 485總線連接2個傳感器[8-9]。STM32核心系統通過發送不同的功能碼獲取不同傳感器采集的參數值。其中,RMD-ISEC2型電導率傳感器還可采集水質的TDS值、鹽度值、溫度值參數,具有多功能性。
溫度傳感器采用防水型不銹鋼封裝的DS18B20傳感器,該傳感器應用廣泛,采集的水溫值精準可靠[10]。
濁度傳感器采用TS-300B。該型號的濁度傳感器采用5 V電壓供電,可輸出0~5 V模擬信號。STM32內置的ADC測量范圍為0~3.3 V,故設計信號調理電路,以滿足STM32電壓測量范圍。濁度傳感器的輸出電壓經LM324組成的一倍放大電路后,電壓輸出更穩定,不易受后續電路阻抗影響。再經分壓電阻電路后接入STM32內部ADC電路,可精準測量水質的渾濁度。
NB-IoT通信模塊采用有人WH-NB-75模塊,該模塊能與有人云平臺很好的銜接。該模塊提供配套配置軟件,初始化設置后,只需通過串口發送數據到該模塊,即可將數據轉發至有人云平臺。
發往NB-IoT通信模塊的數據需要滿足有人云的數據幀格式,具體見表1、表2所列。當有人云平臺收到NB-IoT模塊發送的數據并校驗正確后,會向該模塊發送響應信息,表示成功接收數據。

表1 NB-IoT模塊通信幀請求結構

表2 NB-IoT模塊通信幀響應結構
存儲模塊采用SD卡,用于保持數據的連續穩定傳輸。當發送數據到通信模塊后,如果收不到響應,則判定通信失去連接,將采集的數據保存到存儲模塊。待通信恢復后將本地保存的數據重新上傳到云端。每條數據都有時間信息,云端據此識別該條數據是否為重發數據。
監測終端功耗低、運行穩定,無需現場布線,可快速大量布置于河流湖泊之中,實現監測點位廣覆蓋。
有人云平臺具有設備接入、設備模板、報警設置及監控界面設計等功能。具體配置設計步驟如下:
(1)登錄有人云首頁,注冊有人云賬號,進入設備管理界面,選擇添加設備,將通信模塊的SN值和IMEI值填入對應的方框則可完成設備接入。
(2)進入設備管理界面,選擇設備模塊,新建設備模板。在變量列表中對數據幀進行解析。變量的數據類型設置要與數據幀上傳格式相匹配。
(3)在變量列表中,對變量設置報警閾值,當平臺收到的監測數據超過閾值時,可選擇通過短信、郵件、微信文本或微信語音報警。
(4)進入組態設計界面,進行云組態數據展示設計。該設計界面通過拖動控件與圖畫組成個性的展示界面,快速便捷。該展示界面可由Web端軟件調用。
(5)進入組態設計界面,進行微信小程序端數據展示設計。在該界面設計的展示界面可在微信小程序中調用。
有人云經以上配置設計后可與監測終端通信模塊形成通信連接,實現數據的穩定傳輸以及對終端通信設備的管理。
有人云提供用戶、設備、數據、組態、項目分組、子用戶等API接口。向API的服務端地址發送HTTPS/HTTP GET或POST請求,并按照API接口說明,在請求中加入相應請求參數來調用API。有人云平臺根據請求的處理情況返回處理結果。Web端軟件框架如圖3所示。監控中心包括設備列表、實時數據、歷史數據、組態界面。“設備列表”將所有接入有人云的設備進行展示,并顯示設備在線狀態,選擇設備進行對應設備數據查看。“實時數據”列表顯示最近接收的數據。“歷史數據”可根據選擇的時間段查詢歷史水質數據。“組態界面”顯示有人云平臺設計的組態界面,直觀展示水質數據。后臺管理包括添加設備模塊、項目分組模塊、用戶管理模塊、用戶信息模塊。

圖3 軟件設計框架
Web端軟件只需對數據進行應用操作,數據解析設置等任務交由有人云完成,實現數據設置與應用的分離,保證系統穩定運行。
有人云平臺提供MQTT服務器用于數據中轉服務,微信小程序通過WebSocket協議與其連接,數據采用Json格式交互。微信小程序設計框架如圖4所示。用戶登錄微信小程序后,設置“首頁”“管理”“通知”“我的”4個頁面功能選項。“首頁”用于實時數據顯示,此部分界面調用在有人云設計的展示界面。“管理”用于展示設備列表以及查看設備狀態,可實時掌握設備運行情況。“通知”用于顯示報警信息。“我的”用于顯示個人賬戶信息和退出登錄。

圖4 微信小程序設計框架
微信小程序使用方便,在微信內即可打開,便于監測人員隨時查看水質信息、接收報警信息以及設備狀態。
把監測終端布置于河水之中,監測終端采集河水的溫度、pH值、電導率、TDS值、渾濁度和鹽度值信息,并將從GPS模塊獲得的位置和時間信息一同發往NB-IoT通信模塊。NB-IoT通信模塊將數據轉發到有人云進行分析和存儲,Web端軟件和微信小程序通過有人云服務器獲取數據并顯示。Web端軟件顯示界面如圖5所示,微信小程序顯示界面如圖6所示。

圖5 Web端軟件顯示界面

圖6 微信小程序顯示界面
經過測試,Web端軟件和微信小程序都可正常顯示有人云設計的數據展示界面。基于有人云的在線水質監測系統滿足了設計要求,可以實時查看監測點水質數據。
本文設計的基于有人云的水質在線監測系統,將監測終端投放于需要監測的河流湖泊之中,即可將水質信息及該點位置信息發送到有人云平臺,經平臺處理后,可在微信小程序和PC機上直接觀測水質狀態。基于有人云平臺API接口開發的Web端軟件具有歷史數據查詢、實時數據顯示等功能。系統運行穩定,可應用于需要大量水質監測站點的場景,為跨界水污染事件提供水質數據,便于分析流域水污染情況。