劉世兵,劉成印
(山東工商學院 信息與電子工程學院,山東 煙臺 264003)
水質(zhì)監(jiān)測是水環(huán)境狀態(tài)分析、污染防護、資源利用的基本環(huán)節(jié),國家出臺了多項政策加強水污染防治,取得了一定成效[1]。但是近年來發(fā)生的多起跨界水污染事件中,出現(xiàn)了發(fā)覺時間滯后,流域內(nèi)水污染程度無法準確評估的問題[2-5]。其原因是傳統(tǒng)水質(zhì)監(jiān)測站成本過高、布線復雜,不利于大范圍設置監(jiān)測點,使跨界水污染事件的取證缺乏技術(shù)支持。因此,設計一種適合大范圍覆蓋的水質(zhì)監(jiān)測系統(tǒng)很有必要。
目前最適合這種監(jiān)測場景的通信技術(shù)是窄帶物聯(lián)網(wǎng)(Narrow Band Internet of Things, NB-IoT)[6]。但是要實現(xiàn)窄帶物聯(lián)網(wǎng)的接入需要完成NB-IoT模塊與通信基站的穩(wěn)定連接,以及設計應用層協(xié)議等準備工作。有人云平臺提供的通信終端與云端服務能很好地解決接入問題,縮短應用系統(tǒng)的研發(fā)周期,讓開發(fā)者專注于終端數(shù)據(jù)采集的開發(fā)和數(shù)據(jù)展示及應用。因此,將通信及數(shù)據(jù)解析的任務交由有人云平臺處理。
本文提出了一種基于有人云的水質(zhì)在線監(jiān)測系統(tǒng),并設計了基于Web和微信小程序的監(jiān)控軟件,可在手機端和電腦端實時查看流域的水質(zhì)情況。系統(tǒng)可方便、快速地實現(xiàn)跨界河流湖泊的大范圍水質(zhì)監(jiān)測,當跨界水污染事件出現(xiàn)時,系統(tǒng)會及時發(fā)出預警信息,并提供監(jiān)測范圍內(nèi)河流湖泊的水質(zhì)信息用于水污染程度分析。
基于有人云的水質(zhì)在線監(jiān)測系統(tǒng)包括水質(zhì)監(jiān)測終端、NB-IoT通信模塊、有人云平臺、微信小程序和Web端軟件。系統(tǒng)總體結(jié)構(gòu)如圖1所示,其中水質(zhì)監(jiān)測終端包括核心控制器、電導率型傳感器、pH值傳感器、溫度傳感器、濁度傳感器、GPS模塊、存儲模塊、電源模塊及I/O模塊。工作流程:水質(zhì)監(jiān)測終端采集水環(huán)境的狀態(tài)參數(shù)信息及終端位置,NB-IoT通信模塊將采集的水質(zhì)信息和位置信息一同發(fā)送到有人云平臺進行數(shù)據(jù)處理,有人云平臺經(jīng)配置設計后可提供水質(zhì)超限報警、微信小程序?qū)崟r數(shù)據(jù)顯示、有人云網(wǎng)站實時數(shù)據(jù)顯示、提供二次接口等功能。如果所有用戶登錄有人云網(wǎng)站進行水質(zhì)監(jiān)測,配置易被無關人員修改,存在風險,故利用有人云平臺提供的API接口進行Web軟件開發(fā),提供數(shù)據(jù)監(jiān)測、歷史數(shù)據(jù)查詢等功能,弱化配置設計等功能,以提升數(shù)據(jù)展示的安全性。
圖1 系統(tǒng)總體結(jié)構(gòu)
監(jiān)測終端硬件結(jié)構(gòu)如圖2所示。采用STM32F103VET6作為核心控制器系統(tǒng)芯片,采用多種接口分別與對應的傳感器相連接,獲取相關水質(zhì)信息[7]。在傳感器電路中加入GPS模塊,用于獲取終端位置信息。STM32核心系統(tǒng)將獲取的數(shù)據(jù)信息推送到顯示模塊,可供本地實時查看水質(zhì)狀態(tài)數(shù)據(jù)。STM32核心系統(tǒng)將數(shù)據(jù)信息發(fā)送到NB-IoT模塊,通過運營商基站將數(shù)據(jù)轉(zhuǎn)發(fā)到有人云平臺進行處理。
圖2 監(jiān)測終端結(jié)構(gòu)
串口總線接入的傳感器選用RMD-ISEC2型電導率傳感器和RMD-HB型pH值傳感器。兩種傳感器皆有RS 485接口,用1個RS 485總線連接2個傳感器[8-9]。STM32核心系統(tǒng)通過發(fā)送不同的功能碼獲取不同傳感器采集的參數(shù)值。其中,RMD-ISEC2型電導率傳感器還可采集水質(zhì)的TDS值、鹽度值、溫度值參數(shù),具有多功能性。
溫度傳感器采用防水型不銹鋼封裝的DS18B20傳感器,該傳感器應用廣泛,采集的水溫值精準可靠[10]。
濁度傳感器采用TS-300B。該型號的濁度傳感器采用5 V電壓供電,可輸出0~5 V模擬信號。STM32內(nèi)置的ADC測量范圍為0~3.3 V,故設計信號調(diào)理電路,以滿足STM32電壓測量范圍。濁度傳感器的輸出電壓經(jīng)LM324組成的一倍放大電路后,電壓輸出更穩(wěn)定,不易受后續(xù)電路阻抗影響。再經(jīng)分壓電阻電路后接入STM32內(nèi)部ADC電路,可精準測量水質(zhì)的渾濁度。
NB-IoT通信模塊采用有人WH-NB-75模塊,該模塊能與有人云平臺很好的銜接。該模塊提供配套配置軟件,初始化設置后,只需通過串口發(fā)送數(shù)據(jù)到該模塊,即可將數(shù)據(jù)轉(zhuǎn)發(fā)至有人云平臺。
發(fā)往NB-IoT通信模塊的數(shù)據(jù)需要滿足有人云的數(shù)據(jù)幀格式,具體見表1、表2所列。當有人云平臺收到NB-IoT模塊發(fā)送的數(shù)據(jù)并校驗正確后,會向該模塊發(fā)送響應信息,表示成功接收數(shù)據(jù)。
表1 NB-IoT模塊通信幀請求結(jié)構(gòu)
表2 NB-IoT模塊通信幀響應結(jié)構(gòu)
存儲模塊采用SD卡,用于保持數(shù)據(jù)的連續(xù)穩(wěn)定傳輸。當發(fā)送數(shù)據(jù)到通信模塊后,如果收不到響應,則判定通信失去連接,將采集的數(shù)據(jù)保存到存儲模塊。待通信恢復后將本地保存的數(shù)據(jù)重新上傳到云端。每條數(shù)據(jù)都有時間信息,云端據(jù)此識別該條數(shù)據(jù)是否為重發(fā)數(shù)據(jù)。
監(jiān)測終端功耗低、運行穩(wěn)定,無需現(xiàn)場布線,可快速大量布置于河流湖泊之中,實現(xiàn)監(jiān)測點位廣覆蓋。
有人云平臺具有設備接入、設備模板、報警設置及監(jiān)控界面設計等功能。具體配置設計步驟如下:
(1)登錄有人云首頁,注冊有人云賬號,進入設備管理界面,選擇添加設備,將通信模塊的SN值和IMEI值填入對應的方框則可完成設備接入。
(2)進入設備管理界面,選擇設備模塊,新建設備模板。在變量列表中對數(shù)據(jù)幀進行解析。變量的數(shù)據(jù)類型設置要與數(shù)據(jù)幀上傳格式相匹配。
(3)在變量列表中,對變量設置報警閾值,當平臺收到的監(jiān)測數(shù)據(jù)超過閾值時,可選擇通過短信、郵件、微信文本或微信語音報警。
(4)進入組態(tài)設計界面,進行云組態(tài)數(shù)據(jù)展示設計。該設計界面通過拖動控件與圖畫組成個性的展示界面,快速便捷。該展示界面可由Web端軟件調(diào)用。
(5)進入組態(tài)設計界面,進行微信小程序端數(shù)據(jù)展示設計。在該界面設計的展示界面可在微信小程序中調(diào)用。
有人云經(jīng)以上配置設計后可與監(jiān)測終端通信模塊形成通信連接,實現(xiàn)數(shù)據(jù)的穩(wěn)定傳輸以及對終端通信設備的管理。
有人云提供用戶、設備、數(shù)據(jù)、組態(tài)、項目分組、子用戶等API接口。向API的服務端地址發(fā)送HTTPS/HTTP GET或POST請求,并按照API接口說明,在請求中加入相應請求參數(shù)來調(diào)用API。有人云平臺根據(jù)請求的處理情況返回處理結(jié)果。Web端軟件框架如圖3所示。監(jiān)控中心包括設備列表、實時數(shù)據(jù)、歷史數(shù)據(jù)、組態(tài)界面?!霸O備列表”將所有接入有人云的設備進行展示,并顯示設備在線狀態(tài),選擇設備進行對應設備數(shù)據(jù)查看。“實時數(shù)據(jù)”列表顯示最近接收的數(shù)據(jù)?!皻v史數(shù)據(jù)”可根據(jù)選擇的時間段查詢歷史水質(zhì)數(shù)據(jù)?!敖M態(tài)界面”顯示有人云平臺設計的組態(tài)界面,直觀展示水質(zhì)數(shù)據(jù)。后臺管理包括添加設備模塊、項目分組模塊、用戶管理模塊、用戶信息模塊。
圖3 軟件設計框架
Web端軟件只需對數(shù)據(jù)進行應用操作,數(shù)據(jù)解析設置等任務交由有人云完成,實現(xiàn)數(shù)據(jù)設置與應用的分離,保證系統(tǒng)穩(wěn)定運行。
有人云平臺提供MQTT服務器用于數(shù)據(jù)中轉(zhuǎn)服務,微信小程序通過WebSocket協(xié)議與其連接,數(shù)據(jù)采用Json格式交互。微信小程序設計框架如圖4所示。用戶登錄微信小程序后,設置“首頁”“管理”“通知”“我的”4個頁面功能選項?!笆醉摗庇糜趯崟r數(shù)據(jù)顯示,此部分界面調(diào)用在有人云設計的展示界面?!肮芾怼庇糜谡故驹O備列表以及查看設備狀態(tài),可實時掌握設備運行情況?!巴ㄖ庇糜陲@示報警信息?!拔业摹庇糜陲@示個人賬戶信息和退出登錄。
圖4 微信小程序設計框架
微信小程序使用方便,在微信內(nèi)即可打開,便于監(jiān)測人員隨時查看水質(zhì)信息、接收報警信息以及設備狀態(tài)。
把監(jiān)測終端布置于河水之中,監(jiān)測終端采集河水的溫度、pH值、電導率、TDS值、渾濁度和鹽度值信息,并將從GPS模塊獲得的位置和時間信息一同發(fā)往NB-IoT通信模塊。NB-IoT通信模塊將數(shù)據(jù)轉(zhuǎn)發(fā)到有人云進行分析和存儲,Web端軟件和微信小程序通過有人云服務器獲取數(shù)據(jù)并顯示。Web端軟件顯示界面如圖5所示,微信小程序顯示界面如圖6所示。
圖5 Web端軟件顯示界面
圖6 微信小程序顯示界面
經(jīng)過測試,Web端軟件和微信小程序都可正常顯示有人云設計的數(shù)據(jù)展示界面。基于有人云的在線水質(zhì)監(jiān)測系統(tǒng)滿足了設計要求,可以實時查看監(jiān)測點水質(zhì)數(shù)據(jù)。
本文設計的基于有人云的水質(zhì)在線監(jiān)測系統(tǒng),將監(jiān)測終端投放于需要監(jiān)測的河流湖泊之中,即可將水質(zhì)信息及該點位置信息發(fā)送到有人云平臺,經(jīng)平臺處理后,可在微信小程序和PC機上直接觀測水質(zhì)狀態(tài)?;谟腥嗽破脚_API接口開發(fā)的Web端軟件具有歷史數(shù)據(jù)查詢、實時數(shù)據(jù)顯示等功能。系統(tǒng)運行穩(wěn)定,可應用于需要大量水質(zhì)監(jiān)測站點的場景,為跨界水污染事件提供水質(zhì)數(shù)據(jù),便于分析流域水污染情況。