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