盛 平,徐錦志,劉曉梅
(1.江蘇大學(xué) 計算機科學(xué)與通信工程學(xué)院,江蘇 鎮(zhèn)江 212013;2.江蘇科茂信息技術(shù)有限公司,江蘇 鎮(zhèn)江 212001)
2012年7月21-22日,北京遭遇61年來最強暴雨及洪澇災(zāi)害[1]。根據(jù)北京市政府發(fā)布的數(shù)據(jù)表明,此次暴雨造成超過160萬人受災(zāi)、1萬余間房屋倒塌,經(jīng)濟損失高達100多億元。為了有效解決城市內(nèi)澇問題,提高城市防洪抗災(zāi)能力,海綿城市建設(shè)迫在眉睫。2012年4月,“海綿城市”概念第一次被提出:海綿城市是指城市能夠像海綿一樣,在適應(yīng)環(huán)境變化和應(yīng)對自然災(zāi)害等方面具有良好的“彈性”,下雨時吸水、蓄水、滲水、凈水,需要時將蓄存的水“釋放”并加以利用,提升城市生態(tài)系統(tǒng)功能,減少城市洪澇災(zāi)害發(fā)生[2-3]。
目前,全國已有多個海綿城市建設(shè)試點城市,但大多從建筑、地形地貌等自然環(huán)境的角度進行設(shè)計,雖然起到一定作用,但無法對相關(guān)參數(shù)進行科學(xué)采集和監(jiān)測。傳統(tǒng)的遠程水雨情監(jiān)測大多采用GPRS技術(shù)[4]。以往基于單片機的自動灌溉系統(tǒng)[5],通過將實時土壤參數(shù)值與已設(shè)定固定值進行比較實現(xiàn)自動灌溉,無法改變設(shè)定值。本文對上述不足進行改進,利用新興的NB-IoT(基于蜂窩的窄帶物聯(lián)網(wǎng),Narrow Band-Internet of Things)技術(shù)[6]對數(shù)據(jù)進行傳輸,相比傳統(tǒng)的GPRS,NB-IoT具有覆蓋廣、連接多、速率低、成本低、功耗低、架構(gòu)優(yōu)等優(yōu)點[7]。系統(tǒng)可通過移動客戶端對參數(shù)進行設(shè)置,操作方便靈活,且能節(jié)約水資源、減少人工成本,提高海綿城市給排水的科學(xué)管理水平。
為了發(fā)揮軟件設(shè)計高內(nèi)聚低耦合的優(yōu)點,避免不同模塊之間的相互影響,系統(tǒng)采用模塊化、結(jié)構(gòu)化的設(shè)計方式。根據(jù)物聯(lián)網(wǎng)分層架構(gòu),系統(tǒng)分為應(yīng)用層、網(wǎng)絡(luò)層、感知層[8](見圖1)。
圖1 系統(tǒng)結(jié)構(gòu)
應(yīng)用層主要由移動客戶端、數(shù)據(jù)庫服務(wù)器、通信服務(wù)器組成。用戶或相關(guān)管理人員通過移動客戶端讀取保存在數(shù)據(jù)庫的歷史數(shù)據(jù),或者實時進行設(shè)備控制。
網(wǎng)絡(luò)層主要包括NB-IoT傳輸模塊以及嵌入式網(wǎng)關(guān)等。NB-IoT傳輸模塊負責數(shù)據(jù)傳輸,嵌入式網(wǎng)關(guān)負責數(shù)據(jù)采集和控制等。
感知層包括土壤溫濕度傳感器、雨量傳感器、水位傳感器、水泵等。
在該系統(tǒng)中,嵌入式網(wǎng)關(guān)通過RS485通信協(xié)議與各傳感器節(jié)點進行通信,讀取各傳感器節(jié)點的數(shù)據(jù),包括實時降雨量、土壤濕度、土壤溫度、蓄水池蓄水水位等,經(jīng)過收集、分析和處理后,通過NB-IoT網(wǎng)絡(luò)將數(shù)據(jù)上傳至數(shù)據(jù)庫服務(wù)器,數(shù)據(jù)庫服務(wù)器將接收到的數(shù)據(jù)保存;通過移動客戶端可以查看歷史數(shù)據(jù),移動客戶端也可以通過通信服務(wù)器和NB-IoT網(wǎng)絡(luò)發(fā)送指令給嵌入式網(wǎng)關(guān),實現(xiàn)對水泵等設(shè)備的控制;通過蓄水水位和蓄水池的建設(shè)形狀計算總儲水量;采用模糊控制算法,嵌入式網(wǎng)關(guān)根據(jù)采集到的土壤溫濕度進行自動灌溉,達到節(jié)約用水目的。
截至2015年底,我國三大運營商的物聯(lián)網(wǎng)使用戶數(shù)已接近一億戶,2016年國內(nèi)物聯(lián)網(wǎng)行業(yè)整體規(guī)模已超過9000億元。近年來,物聯(lián)網(wǎng)技術(shù)滲透制造業(yè)、物流行業(yè)、醫(yī)療保健、消費電子、零售等應(yīng)用行業(yè),且應(yīng)用比例逐年提高。萬物互聯(lián)時代正極其迅速地走進人們的生活。隨著物聯(lián)網(wǎng)設(shè)備不斷增多,網(wǎng)絡(luò)資源需求不斷變化,現(xiàn)有頻帶資源難以滿足日益增長的物聯(lián)網(wǎng)設(shè)備需求。因此,NB-IoT技術(shù)應(yīng)運而生。NB-IoT是物聯(lián)網(wǎng)領(lǐng)域的新興技術(shù),其特點有:①覆蓋廣,比GPRS覆蓋增強20dB+,覆蓋面積擴大100倍;②連接多,比GSM連接數(shù)多50~100倍,每個扇區(qū)支持5萬個以上連接;③功耗低,基于AA電池,使用壽命可超過10年;④速率低,占用帶寬約180kHz;⑤成本低、架構(gòu)優(yōu),可直接部署于GSM網(wǎng)絡(luò)、UMTS網(wǎng)絡(luò)或LTE網(wǎng)絡(luò),以降低部署成本、實現(xiàn)平滑升級[9]。目前,中國移動鎮(zhèn)江公司已在鎮(zhèn)江市主城區(qū)實現(xiàn)NB-IoT網(wǎng)絡(luò)全覆蓋,為NB-IoT的使用提供了方便。
系統(tǒng)硬件設(shè)計主要包括嵌入式網(wǎng)關(guān)設(shè)計、通信模塊設(shè)計、傳感器節(jié)點設(shè)計、控制模塊及供電模塊設(shè)計。系統(tǒng)硬件結(jié)構(gòu)見圖2。
圖2 系統(tǒng)硬件結(jié)構(gòu)
嵌入式網(wǎng)關(guān)包括MCU、晶振電路、I/O模塊、電源管理等。MCU采用基于ARM的32位低功耗STM32F10 3RBT6單片機,其工作溫度范圍是-40℃~85℃,能夠滿足系統(tǒng)在室外安裝使用的需求。
通信模塊采用基于NB-IoT技術(shù)的移遠BC95芯片,替代傳統(tǒng)的GPRS模塊,用于MCU與通信服務(wù)器、數(shù)據(jù)庫服務(wù)器之間進行數(shù)據(jù)存儲和指令轉(zhuǎn)發(fā)。BC95芯片支持多路IP連接,可以實現(xiàn)多個服務(wù)器連接。
系統(tǒng)需要使用雨量、水位、土壤溫濕度傳感器。雨量傳感器采用武漢新普惠公司的PH-YL-1翻斗式雨量計,分辨率為0.1mm,主要由儲水器、上翻斗、匯集漏斗、計量翻斗和干簧管等組成[10]。土壤傳感器采用搜博SM3001土壤溫濕度傳感器,測量精度3%FSD,響應(yīng)時間小于1s。水位傳感器采用星儀CYW11投入式液位變送器液位傳感器,最大量程5m,精度0.5%FS。所有傳感器均遵循標準的RS485通信協(xié)議,具有組網(wǎng)方便、抗干擾能力強、傳輸距離遠等特點。每個傳感器設(shè)置不同的地址,嵌入式網(wǎng)關(guān)根據(jù)傳感器地址發(fā)送指令,相應(yīng)傳感器回復(fù)相應(yīng)的數(shù)據(jù),相互之間不會產(chǎn)生干擾,保證數(shù)據(jù)準確。
在該系統(tǒng)中,控制模塊主要用于自動灌溉,需要根據(jù)土壤濕度的變化對水泵進行控制以實現(xiàn)自動灌溉。
供電模塊主要提供直流12V電壓。為了節(jié)約用電,使用清潔能源,供電模塊采用智能電源管理系統(tǒng),將太陽能供電和市電同時接入[11]。通常情況下用蓄電池將太陽能發(fā)電保存,然后給設(shè)備供電,通過智能電源管理系統(tǒng)實時監(jiān)測蓄電池的電量和狀態(tài),當蓄電池電量大于一定閾值能夠滿足設(shè)備用電需求時,智能電源管理系統(tǒng)將供電切換為蓄電池供電;當蓄電池電量小于一定閾值無法滿足設(shè)備用電需求時,智能電源管理系統(tǒng)自動將蓄電池供電切換為市電,實現(xiàn)無縫切換,保證設(shè)備正常運行[12]。
移動客戶端采用安卓APP將數(shù)據(jù)進行展示,實現(xiàn)對歷史數(shù)據(jù)的查詢、自動控制、手動控制等。安卓APP客戶端采用多線程編程同時連接數(shù)據(jù)庫服務(wù)器和通信服務(wù)器。安卓APP客戶端基于TCP/IP協(xié)議與通信服務(wù)器建立連接[13],向通信服務(wù)器發(fā)送控制指令,通信服務(wù)器向?qū)?yīng)的嵌入式網(wǎng)關(guān)轉(zhuǎn)發(fā)指令,獲取水位、土壤濕度、雨量信息以及水泵的實時運行狀態(tài),并可以實現(xiàn)對設(shè)備控制??蛻舳耸褂胮ost方法向數(shù)據(jù)庫服務(wù)器發(fā)送請求,調(diào)取蓄水池水位、土壤溫濕度、雨量等歷史參數(shù),根據(jù)不同情況,安卓APP可以選擇按小時或者按天查詢歷史數(shù)據(jù),通過折線圖方式將歷史數(shù)據(jù)進行展示。
在該系統(tǒng)中,MCU選用STM32F103RBT6單片機,為了滿足設(shè)計需求,對嵌入式操作系統(tǒng)進行移植。將ucosII v2.91版本移植到STM32F103RBT6單片機上,實現(xiàn)多任務(wù)操作系統(tǒng)。ucosII是一個可以基于ROM運行的可裁剪、搶占式、實時多任務(wù)內(nèi)核,具有高度的可移植性,特別適合微處理器和控制器[14]。在移植的ucosII v2.91版本中,最多支持255個任務(wù),ucosII對其進行調(diào)度管理,使其可以并發(fā)工作,每個任務(wù)互不干擾、獨立運行,通過信號量、郵箱、消息隊列、事件進行任務(wù)間通信[15]。
嵌入式軟件系統(tǒng)流程如圖3所示,先啟動程序,配置NB-IoT模塊,即移遠BC95芯片,然后開啟多個任務(wù)。
圖3 嵌入式軟件系統(tǒng)流程
3.2.1 數(shù)據(jù)采集
通過定時器,嵌入式網(wǎng)關(guān)每隔15min采集一次環(huán)境參數(shù),包括實時降雨量、蓄水池水位、土壤溫濕度,經(jīng)過處理分析后,嵌入式網(wǎng)關(guān)連接到數(shù)據(jù)庫服務(wù)器并把數(shù)據(jù)上傳存儲。由于數(shù)據(jù)上傳是定時上傳,不需要建立長連接,因此數(shù)據(jù)上傳以后可以將連接斷開,然后等待下一次上傳。
3.2.2 掉線檢測
由于系統(tǒng)需要移動客戶端實時發(fā)送指令到嵌入式網(wǎng)關(guān),因此嵌入式網(wǎng)關(guān)與通信服務(wù)器之間需要建立長連接。嵌入式網(wǎng)關(guān)定時向通信服務(wù)器發(fā)送心跳包,通信服務(wù)器接收到心跳包后會給出相應(yīng)回復(fù),嵌入式網(wǎng)關(guān)收到正確回復(fù)后確認本身與通信服務(wù)器的連接未斷開,否則認為連接已斷開,需要重新連接,以此確保嵌入式網(wǎng)關(guān)在線。
3.2.3 實時通信
在實時通信任務(wù)中,移動客戶端向通信服務(wù)器發(fā)送控制指令,通信服務(wù)器將指令實時轉(zhuǎn)發(fā)給嵌入式網(wǎng)關(guān),嵌入式網(wǎng)關(guān)解析指令并執(zhí)行設(shè)備控制或讀取實時環(huán)境數(shù)據(jù),然后將結(jié)果返回。
3.2.4 自動控制
由于噴灌以后土壤濕度變化具有一定滯后性,通過實驗,嵌入式網(wǎng)關(guān)每隔30min進行一次土壤濕度采集,采用模糊控制器實現(xiàn)自動控制,根據(jù)以往城市綠化人工灌溉經(jīng)驗建立模糊邏輯控制表。在系統(tǒng)中所使用的模糊控制器有兩個輸入?yún)?shù),分別為土壤濕度差值和土壤濕度變化率;有一個輸出參數(shù),為灌溉時間[16]。根據(jù)鎮(zhèn)江市海綿公園現(xiàn)場實測數(shù)據(jù),將土壤傳感器埋入測試地點地下30cm深度時,公園綠化的土壤濕度維持在50%以上即可。模糊控制器結(jié)構(gòu)如圖4。
圖4 模糊控制器結(jié)構(gòu)
根據(jù)實際應(yīng)用需求,系統(tǒng)將服務(wù)端劃分為兩個部分:數(shù)據(jù)庫服務(wù)器、通信服務(wù)器。數(shù)據(jù)庫服務(wù)器使用MySQL關(guān)系型數(shù)據(jù)庫,靈活方便,負責相應(yīng)的參數(shù)存儲以及歷史數(shù)據(jù)查詢,數(shù)據(jù)庫服務(wù)器提供數(shù)據(jù)查詢和存儲接口,移動客戶端和嵌入式網(wǎng)關(guān)均通過HTTP協(xié)議對數(shù)據(jù)進行查詢或者存儲。考慮到未來應(yīng)用范圍的擴展,通信服務(wù)器需要支持高并發(fā),通信服務(wù)器采用開源、基于XMPP協(xié)議的Openfire即時通信系統(tǒng),將其部署在騰訊云服務(wù)器上,可以實現(xiàn)移動客戶端與嵌入式網(wǎng)關(guān)之間的實時通信,從而達到移動客戶端對現(xiàn)場設(shè)備控制以及實時參數(shù)獲取。Openfire即時通信系統(tǒng)還支持Web管理,方便管理人員通過Web對嵌入式網(wǎng)關(guān)狀態(tài)進行查詢和管理。兩個服務(wù)器相互獨立,互不影響[17]。
系統(tǒng)自2017年11月20日安裝,在鎮(zhèn)江市海綿公園測試,至2018年2月20日,運行穩(wěn)定。根據(jù)Openfire即時通信服務(wù)器Web管理系統(tǒng)的數(shù)據(jù)統(tǒng)計,嵌入式網(wǎng)關(guān)72h內(nèi)掉線次數(shù)不超過一次,能夠在1min內(nèi)重新連接通信服務(wù)器并保持正常工作。
天氣晴朗時,在手動控制狀態(tài)下,當土壤濕度較低時,通過遠程開啟灌溉,土壤濕度會不斷增加,灌溉停止后,土壤濕度會隨著時間的推移而逐漸降低,土壤濕度變化如圖5所示。系統(tǒng)自動灌溉后,使得土壤濕度能夠最接近綠化植物的生長需求,土壤濕度變化如圖6所示。
圖5 手動狀態(tài)下土壤濕度變化
圖6 自動狀態(tài)下土壤濕度變化
根據(jù)系統(tǒng)監(jiān)測數(shù)據(jù),查詢其中某一天降雨時段的相關(guān)環(huán)境參數(shù)變化,雨量數(shù)據(jù)統(tǒng)計如圖7;蓄水池水位由138cm上升為143cm,數(shù)據(jù)統(tǒng)計如圖8;土壤濕度由最低68%上升為98%,接近飽和狀態(tài),數(shù)據(jù)統(tǒng)計如圖9。
圖7 雨量統(tǒng)計
圖8 水位變化
圖9 土壤濕度變化
本文構(gòu)建了基于NB-IoT的海綿城市水雨情監(jiān)測及自動灌溉系統(tǒng)。采用先進的NB-IoT技術(shù),對降雨量、土壤溫濕度、蓄水池水位數(shù)據(jù)進行采集,實現(xiàn)水雨情的有效監(jiān)測;根據(jù)土壤濕度變化利用降雨時儲存在蓄水池里的雨水對城市綠化進行自動灌溉,實現(xiàn)節(jié)約用水、循環(huán)用水、減少人力成本。相比以往的相關(guān)設(shè)計,本文研究并使用了最新的物聯(lián)網(wǎng)技術(shù)NB-IoT,符合物聯(lián)網(wǎng)發(fā)展趨勢。實驗表明,系統(tǒng)運行穩(wěn)定、響應(yīng)迅速、數(shù)據(jù)準確,達到了預(yù)期效果。