夏青 石明鈞 金文婷 陳亞琦



摘要:隨著物聯網技術的蓬勃發展,加速了城市現代化的進程。而城市供水智能化監測系統還處于發展階段,因此如何把物聯網技術運用到城市供水管網監測系統上成為一個新的研究方向?;谶@個研究方向文章提出以窄帶物聯網通信技術為傳輸媒介,結合性價比較高的ARM主控芯片,來控制傳感器采集信息,并上傳數據庫進行保存,最后從數據庫中提取數據到Android客戶端,并通過軟件進行管理與展示。測試表明該監測系統能夠完成對供水管網數據的遠程接收、控制、預測等功能。
關鍵詞:供水管網;窄帶物聯網;ARM;傳感器;數據庫;客戶端
中圖分類號:TP399? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)21-0099-03
開放科學(資源服務)標識碼(OSID):
1 引言
城市供水管網[1]監測的發展分為兩個階段。第一個發展階段就是傳統的人工監測,在這一階段人工成本高,工作效率低,不能及時地對供水管網突發事件做出反應。
隨著通信技術與傳感器的結合,遠程監測得到了飛速的發展,加速了數據的采集,降低了人工成本。城市供水監測也隨之來到了第二個階段。目前對供水管網的遠程數據采集一般采用GPRS網絡或者是ZigBee技術。而GPRS網絡存在可接入設備量少,地下信號傳播能力差,功耗較高等缺點。張一凡,崔建國[2]等使用ZigBee技術來實現城市管網漏損控制系統的網絡層設計。然而由于ZigBee有效傳輸距離短,因此需要架設更多的基站,當城市大面積使用時往往成本過高。通過綜合考慮決定采用信號穿透能力強、覆蓋區域更加廣大,低功耗運行、可連接設備多的窄帶物聯網技術。NB-IOT能夠較好地解決了監測設備的信號弱,網絡端口接入量少,電池容量有限等問題。
2 系統的物聯網體系
本文采用物聯網的三層結構體系來設計供水管網[3]監測系統。
2.1 感知層
感知層設備由三部分構成。
(1) 傳感器是屬于感知層的信息采集設備,負責把環境信息轉換成MCU可以識別的數據。供水監測系統的感知層[4]是流量傳感器。通過監測系統中的流量計進行數據采集,這樣就可以實時地掌握水務系統中各節點的運行狀態。管理人員通過對采集的數據進行分析處理,就可以知曉供水系統的實際運行狀態。
(2) 主控芯片它是整個感知層的大腦,負責協調感知層各個組件間的數據交互與處理。常用的芯片一般基于MIPS、ARM、RISC-V等架構設計,本文所有的主控芯片就是基于ARM的STM32F103芯片。
(3) 通信模組是MCU對外數據傳輸接口設備,也是物與物相連的重要組件。通信模塊的主要功能是實現設備接入網絡,讓感知層中斷與云端實現數據通信。常見的通信模組種類有很多,如3G、4G、窄帶物聯網等,本文的通信模組用的就是窄帶物聯網。
2.2 網絡層
網絡層是物聯網體系[5]的中間層。它可分為三種傳輸方式,分別是局域網、無線網絡、有線網絡。
(1) 有線網絡可以通過雙絞線,光纖等傳輸介質與國家通信網絡相互連接,從而進行數據的交互。
(2) 無線網絡的種類有很多,現在常見的主要是4G網絡、5G網絡、NB-IOT等。在當前的物聯網環境中應用較多的網絡是NB-IOT、增強機械類通信。NB-IOT適用于低速率上報類場景中,如環境監測、市政物聯(路燈,井蓋等)、智慧停車等。增強機械類通信適用于中低速、實時控制類應用場景中,如移動支付,物流追蹤等。
(3) 局域網絡是我們比較常用的,比如說Wi-Fi,藍牙。它們是由我們自己搭建的短距離通信網絡。其本身不能夠直接和因特網相連接進行數據轉發,需要特定的路由器或者網關來對數據進行分組轉發。從而和因特網進行數據交互。
本文系統所采用的通信網絡就是窄帶物聯網,它的優勢可以很好地滿足城市供水管網監測系統數據傳輸的需要。
2.3 應用層
應用層的首要功能是滿足用戶界面和平臺之間的交互需求。平臺實現對物聯網終端設備的管理和維護以及數據的存儲與轉發。平臺具有場景化,可視化的用戶界面,便于用戶管理及查看設備,幫助實現設備與云端的連接。平臺一般可以分成三個類別:負責設備管理操作的設備管理平臺、負責通信管理的連接管理平臺、應用使能平臺。
3系統硬件設計
供水管網監測系統的硬件部分有STM32F控制芯片、電源模塊、串口模塊、NB-IOT模塊、采集設備(流量計)。系統硬件的工作流程為:系統把采集到的信息通過窄帶物聯網發送到物聯網平臺上進行數據的分析與處理。系統硬件結構圖如圖1所示。
3.1主控芯片設計
在綜合考慮系統的低功耗、外設端口及成本之后,本系統決定采用STM32F103VET6芯片作為主控芯片來對采集數據進行處理以及對通信部分的收發管理。芯片使用ARM? Cortex?-M3內核, 高達80個I/O口,多種低功耗工作方式?;緷M足水務監測系統的性能需求。我們通過在單片機外接兩個晶振分別是32.768kHz、8MHz。為了能夠在用戶閃存啟動程序,一般的操作方法是在BOOT0引腳這里加一個100kΩ電阻。
3.2 流量傳感器
流量計選用的是渦輪流量傳感器[6]。它的工作原理是當水流流過渦輪時,會沖擊渦輪扇片,從而帶動渦輪扇片的轉動。扇片的轉動速度與水流的流度是成正相關,于是通過測量一定時間內渦輪扇片的轉動速度,來計算得出水的流動速度,從而得出一定時間內供水管網的流量。使用集成傳感器芯片AH183對渦輪扇片的轉動速度進行測量。在扇片上添加磁性物質,當扇片轉動到AH183時,AH183的輸出就會變成低電平,當扇片偏離AH183時,AH183的輸出信號就會變成高電平。重復操作,隨著扇片的轉動,輸出信號就形成了脈沖信號。傳感器的輸出信號通過電壓跟隨器輸出,在電壓跟隨器的輸出端并聯一個50pF的電容進行濾波,可以有效防止其他信號的干擾。而使用電壓跟隨器的作用是為了提高對脈沖信號的驅動能力,最后對輸出的脈沖信號進行計數。
3.3電源模塊
電源模塊如圖2所示,這里選用TLV6265,它是一款高效率降壓型DC/DC轉換器。輸出電壓為2.7~5.5v,輸出電壓可調范圍為0.6v~vin,輸出電流可以達到1.5A。
3.4串口轉換電路
由于STM32的數據接口協議與計算機的數據接口協議不能夠匹配,因此二者之間不能夠直接進行數據傳遞。對于這個問題我們可以使用一個電平轉換器,來解決二者之間通信問題。我們選用CH340CG芯片來作為電平轉換器。CH340CG內部集成了晶振的功能,它可以輕松實現 USB 電平與TTL 電平之間的轉換。串口轉換電路如圖3所示。
3.5 NB-IoT 模塊電路
本文使用的窄帶物聯網模塊是移遠的BC35-G模塊,支持UDP/TCP/MQTT等多種協議,滿足系統對于通信的設計要求。
4嵌入式軟件設計
4.1軟件設計
在設備進行通電之后首先要去使MCU初始化,讓其達到一個確定的初始狀態。然后再去對通信模塊即對BC35-G進行參數配置,只有先保證BC35-G模塊能夠正常工作之后才能與互聯網進行相連。最后我們還需要在程序中新建立四個任務,分別是看門狗,數據采集,實時通信,掉線檢測。
4.1.1 看門狗
添加看門狗的主要目的就是為了保證程序可以正常地去運行,如果發生異常的警報比如說死機或者一直沒有去喂狗(即按時清除計時器)。就會導致計時器溢出,產生一個RESET電信號。于是微控制器的程序重新啟動,系統也就不會一直處于死機狀態。
4.1.2 掉線監測
由于實時通信功能的需要,當要執行實時通信任務時,必須要先保證服務器與網關之間能夠建立了長連接。所以我們可以采取向服務器發送心跳包的方式來確定是否已經建立連接。例如當服務器收到網關發出的心跳包之后,會給網關發送確認信息。如果網關收到的是正確信息就證明了此時服務器與網關是建立了連接;反之它們此刻就沒有完成通信連接的建立,于是需要重新建立起二者之間的通信連接。這樣就可以完成客戶端對采集設備的實時監測的功能。
4.1.3 數據采集
對于數據的采集,本系統利用STM32自帶的定時器去預先設置一個采集時間周期。本實驗的采集周期定為每隔一小時通過 RS485 接口發送相應的指令采集數據,待所有數據采集完成。經過MCU處理之后發送給數據庫并存儲在數據庫里面。系統本著低功耗的要求,當數據上傳到數據庫之后就會斷開連接,其他硬件設施處于休眠狀態,直到下一個采集時間到來之前提前數分鐘進行喚醒操作,留下足夠的時間好讓硬件部分的程序充分啟動,整個硬件電路系統達到一個確定的運行狀態。
4.1.4 實時通信
此部分的功能是STM32F103單片機通過 BC35-G傳輸模塊保持與通信服務器的連接,Android客戶端通過服務器來發送相應的指令給網關,然后MCU執行相關的指令。執行完任務之后MCU把執行的結果返回給Android客戶端,這樣便實現了實時通信的功能。
5 系統應用層設計
系統應用層主要實現人機交互[7]功能。供水管網監測系統應用層可以劃分成三個部分分別是數據庫模塊、服務器模塊、Android 客戶端模塊。其中 Android 客戶端是面向用戶的,需要向管理人員展示出系統的應用界面,以便操作人員監測系統運行狀況,實現環境數據查詢、歷史環境數據查詢等功能。數據庫服務器[8]和通信服務器都分別搭在阿里云服務器端。使用云服務器的好處就是數據不再隨著存儲硬盤的損壞而丟失數據,保證了數據庫存儲的水流量數據安全;同時也方便了用戶在安裝客戶端的情況下隨時查看歷史數據、分析數據。
5.1 Android 客戶端設計
當今社會使用最多的電子產品應該就是手機了。從一開始只能夠打電話發信息的小靈通,到演變成擁有拍照、打游戲等等復雜的智能機。究竟是什么給手機帶來了這么大的進步,我認為操作系統應該是手機進化的巨大推力之一。正是因為有IOS、Android等手機操作系統才給我們帶來了智能機。所以我們如果想要在手機上開發App就應該基于IOS、Android這兩個操作系統其中之一進行開發。從實際出發綜合考慮之后決定使用 Android 系統來設計客戶端。它主要的優點在于用戶基數更大,代碼是開源的。這些都會極大地方便了我們后期對App的維護和使用。
系統的軟件開發使用MVP (Model View Presenter)架構[9]。在MVP架構中:View 是一種視圖層,相當于Android 模塊中的 Activity,主要功能為展示動態的頁面,對模型進行演示,提供一個與供水管網監測系統項目管理人員交互的界面。Model 是一種數據模型,它可以跟數據庫直接相連,主要功能包括數據庫的讀和寫,網絡數據的請求等。Presenter 相當于一座橋梁,把View和Model 連接起來。與傳統的 MVC 架構相比較, View 與Model這兩個模塊層是分離開的,它們兩個之間是不直接進行數據傳輸。所以當View想要獲得數據時,首先要讓Presenter 從 Model這里獲得數據然后經過加工處理后再交給 View。這樣就完成了兩層之間的信息交互。
5.2 客戶端通信實現
供水管網監測系統客戶端的通信功能由實時通信和歷史數據查詢兩部分組成。實時通信主要是查看環境數據,查看設備實時的運行狀態,如果發生爆管等突發狀況可以及時通知管理人員進行人工的干預。進而挽回突發狀況所引發的經濟損失和減少水資源的浪費,這對于構建節約型社會至關重要??萍嫉陌l展就是為了造福社會,技術的廣泛使用就是為了方便所有人。客戶端在與通信服務器建立連接之后,由通信服務器訪問窄帶物聯網網關,從而實現與網關的實時通信。用戶人員還可以通過移動客戶端去訪問數據庫,查詢數據庫里面關于供水管網的歷史數據,并對數據進行適當的處理和操作。
5.3 云服務器設計
依照供水管網的設計需求來看,可以把系統的服務端劃分為兩個部分第一部分是數據庫。數據庫使用MySQL,之所以選擇使用它主要有以下幾個原因:第一就是它本身是開源的這樣極大地方便了我們對它進行操作。第二就是它支持多種操作系統可移植性強,操作簡單。第三就是它可以多線程運行,這樣更好地利用CPU資源。最后一條是最重要的就是它可以獨自應用在客戶端服務器,這樣我們就可以在服務器中很便捷地使用它。用戶只要通過 HTTP 協議就可以輕松對數據庫存儲的數據進行查詢等合理操作。第二部分是通信服務器:本系統所采用的是Openfire 通信系統,為了實現移動端與網關的通信,本文選擇將它與在阿里云服務器相結合。
6結論
管理人員通過城市供水監測系統可以隨時訪問采集的數據,實時觀測現場設備的運行情況。通過對歷史數據的分析與處理得到水資源調度[10]的規律。這樣極大地方便了供水公司人員去管理整個供水管網,把相關的供水管理人員從繁勞的工作中解放出來。本系統還存在一些不足之處就是可以多加一些采集裝置,如壓力傳感器、定位裝置。希望在以后可以對系統進行升級,做出更加功能全面的監測系統。
參考文獻:
[1] 李開源.住宅小區供水管網管理的地理信息系統研究與開發[D].成都:西南交通大學,2004.
[2] 張一凡,崔建國,張峰,等.物聯網和云計算下的城市供水管網漏損控制系統設計[J].華僑大學學報(自然科學版),2019,40(1):34-40.
[3] 吳培金,張瑞林,賴思恩.基于B/S模式的供水管網壓力監測系統的設計與實現[J].工業控制計算機,2013,26(4):84-85.
[4] 俞文杰,童英華,田立勤.物聯網監測系統的可靠性保障機制與量化分析[J].物聯網技術,2018,8(7):42-47.
[5] 楊剩金.淺談物聯網中移動通信技術的應用[J].中國新通信,2017,19(18):30.
[6] 楊亞楓,王國濤.流量自動控制的設計與實現[J].石油儀器,2002(3):9-11,61.
[7] 王東華,孫擴,白羽.基于工作研究的信息系統人機交互設計研究[J].軟件工程師,2010,13(9):57-59.
[8] 徐錦志.基于物聯網的海綿城市水雨情測控系統的設計與實現[D].鎮江:江蘇大學,2018.
[9] 李玉.基于SIP的Android視頻問診客戶端的設計與實現[J].醫療衛生裝備,2019,40(7):31-34.
[10] 方勇,王艷嬌,劉忠華,等.不確定性用水情景下的黃驊港水資源調度優化[J].給水排水,2020,56(9):133-136.
【通聯編輯:梁書】