(1.西安科技大學(xué) 通信與信息工程學(xué)院, 西安 710054; 2.西安科技大學(xué) 電氣與控制工程學(xué)院,西安 710054;3.句容市博遠(yuǎn)電子有限公司,江蘇 鎮(zhèn)江 212400)
隨著城市化進(jìn)程的加速,城市覆蓋面積不斷擴(kuò)大,井蓋的數(shù)量與日俱增。井蓋不僅數(shù)量多,而且屬于不同的部門監(jiān)管,造成市政部門監(jiān)管難度大。井蓋被盜以及爆炸等安全事故時(shí)有發(fā)生,直接威脅行人和車輛通行安全,影響城市道路平整和市容環(huán)境[1]。目前,城市井蓋的巡查基本都需要人力,井蓋出現(xiàn)故障后,需要巡視人員或者市民上報(bào),所以維修人員不能及時(shí)到達(dá)現(xiàn)場來解決問題,使市民的安全性大大降低。因此,加強(qiáng)城市井蓋的維護(hù)和安全管理工作,已成為當(dāng)前市政部門重視和解決的現(xiàn)實(shí)問題。
隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,低功耗廣域網(wǎng)(LPWAN)技術(shù)明顯優(yōu)于傳統(tǒng)的物聯(lián)網(wǎng)技術(shù)[2]。目前主流的低功耗廣域網(wǎng)有NB-IoT、LoRa和Sigfox等。2017年6月《關(guān)于全面推進(jìn)移動(dòng)物聯(lián)網(wǎng)(NB-IoT)建設(shè)發(fā)展》的發(fā)布,物聯(lián)網(wǎng)行業(yè)尤其是NB-IoT產(chǎn)業(yè)得到了國家政策的大力支持。NB-IoT工作在授權(quán)頻段,相較于LoRa和Sigfox具有干擾性強(qiáng)、安全性高、實(shí)時(shí)性好的優(yōu)點(diǎn)。并且,在相同的頻段下,基于NB-IoT的窄帶物聯(lián)網(wǎng)技術(shù),增益超過20dB,形成深度覆蓋、海量連接的優(yōu)良架構(gòu)[3]。通過NB-IoT與傳感器連接,解決了城市井蓋下傳感器信號(hào)回傳以及信號(hào)質(zhì)量的問題。
史瑞剛等[4]采用ZigBee無線通信技術(shù)設(shè)計(jì)了一種道路井蓋監(jiān)測系統(tǒng),終端傳感器采集到的數(shù)據(jù)通過ZigBee組網(wǎng)傳輸至協(xié)調(diào)器,然后再通過RS485總線與上位機(jī)進(jìn)行通信,從而實(shí)現(xiàn)了對(duì)窨井蓋的遠(yuǎn)程監(jiān)測。趙士鵬等[5-6]利用無線通信技術(shù)和無線傳感技術(shù),設(shè)計(jì)了一款基于ZigBee和GPRS的智能井蓋監(jiān)控系統(tǒng),提高了對(duì)城市井蓋的管理效率。雖然基于ZigBee和GPRS的井蓋監(jiān)測系統(tǒng)在某種程度上實(shí)現(xiàn)了對(duì)城市井蓋的集中管理,但在后期維護(hù)和系統(tǒng)穩(wěn)定性方面存在一定的缺陷。因此,本文結(jié)合NB-IoT技術(shù)設(shè)計(jì)了一種智慧井蓋監(jiān)測系統(tǒng),管理人員和維修人員可在地圖和列表上清楚地掌握井蓋的分布以及在線狀態(tài),對(duì)故障井蓋進(jìn)行自動(dòng)報(bào)警、精確定位,使井蓋管理智能化、故障檢修便捷化,以減少城市井蓋安全事故的發(fā)生。
以往的城市井蓋管理存在很多問題,例如井蓋巡查、維護(hù)基本要人力;井蓋發(fā)生故障時(shí),維修人員無法確定井蓋的精確位置;井蓋的種類分為燃?xì)?、電力、通信等,屬于不同的部門,管理方式不同導(dǎo)致管理不善、工作效率低下[7]。針對(duì)以上問題,本文設(shè)計(jì)的智慧井蓋監(jiān)測系統(tǒng)有以下幾個(gè)功能:
1)井蓋故障自動(dòng)報(bào)警,精確定位,可從平臺(tái)web界面以及手機(jī)App界面顯示故障信息和實(shí)現(xiàn)定位;
2)每個(gè)井蓋都有屬于自己的ID,可從平臺(tái)和APP隨時(shí)查看井蓋的運(yùn)行狀態(tài)和在線狀態(tài);
3)井蓋的工作記錄,歷史查詢。
本文所設(shè)計(jì)的智慧井蓋監(jiān)控系統(tǒng)是由數(shù)據(jù)采集層、通信層、應(yīng)用服務(wù)層和用戶層組成的,系統(tǒng)的總體架構(gòu)如圖1所示。
圖1 系統(tǒng)總體架構(gòu)圖
數(shù)據(jù)采集層主要對(duì)井蓋的壓力、位移和井下的甲烷濃度和水位進(jìn)行在線監(jiān)測和異常情況上報(bào),完成井蓋相關(guān)信息的采集;通信層主要是采集終端通過NB-IoT模塊將采集到的數(shù)據(jù)上傳到至NB-IoT基站,進(jìn)而上傳到服務(wù)器;應(yīng)用服務(wù)層主要負(fù)責(zé)將采集到的數(shù)據(jù)進(jìn)行處理、存儲(chǔ)和發(fā)布;用戶層主要通過PC端或者手機(jī)端從服務(wù)器獲取數(shù)據(jù),進(jìn)行顯示、異常報(bào)警等。
智能井蓋監(jiān)測終端設(shè)計(jì)是系統(tǒng)硬件設(shè)計(jì)的重要組成部分,其設(shè)計(jì)影響整個(gè)系統(tǒng)的高效性和可靠性。監(jiān)測終端硬件設(shè)計(jì)包括3個(gè)部分分別是:主控制模塊、通信模塊、傳感器模塊。以一個(gè)監(jiān)測節(jié)點(diǎn)為例進(jìn)行介紹,系統(tǒng)的硬件結(jié)構(gòu)如圖2所示。智慧井蓋監(jiān)測終端主控制器與傳感器模塊、NB-IoT模塊之間均采用UART通信方式。同時(shí)使用鋰電池給監(jiān)測終端提供8 V直流電源。采集終端開機(jī)完成初始化后,主控芯片STM32進(jìn)入待機(jī)模式等待定時(shí)器喚醒,同時(shí)BC26模塊在設(shè)定時(shí)間內(nèi)無任何操作,會(huì)自動(dòng)進(jìn)入PSM模式。定時(shí)器時(shí)間到達(dá)后,主控芯片STM32退出待機(jī)模式,開始采集井蓋的位移和壓力以及井下水位和甲烷濃度,然后將這些數(shù)據(jù)發(fā)送給NB-IoT模塊,此時(shí)STM32再次進(jìn)入待機(jī)模式,NB-IoT模塊收到數(shù)據(jù)后退出PSM模式,主控芯片發(fā)送AT指令將數(shù)據(jù)經(jīng)射頻天線發(fā)送給NB-IoT基站,然后再與服務(wù)器建立連接傳輸數(shù)據(jù)。
圖2 系統(tǒng)硬件組成框圖
考慮到STM32與傳感器可方便地進(jìn)行數(shù)據(jù)傳輸,并且能滿足系統(tǒng)功能的要求,故選用STM32F103C8T6單片機(jī)作為該系統(tǒng)的主控制器。STM32F103C8T6工作頻率最高達(dá)到72 MHz,內(nèi)核使用的是高性能的ARM CortexTM-M3 32位的RISC內(nèi)核,內(nèi)置高速存儲(chǔ)器(高達(dá)512 K字節(jié)的閃存和64 K字節(jié)的SRAM),具有豐富的I/O端口和聯(lián)接到兩條APB總線的外設(shè)。STM32F103C8T6包含2個(gè)PWM定時(shí)器、3個(gè)12位的ADC和4個(gè)通用16位定時(shí)器,還包含標(biāo)準(zhǔn)和先進(jìn)的通信接口:多達(dá)2個(gè)I2C接口和SPI接口、3個(gè)USART接口、一個(gè)USB接口和一個(gè)CAN接口[8]。該芯片工作溫度范圍為-40~+105 ℃,以及它的省電模式也完全符合本系統(tǒng)的設(shè)計(jì)需要。
以STM32F103C8T6為核心的智慧井蓋監(jiān)測終端主要完成以下功能:
1)數(shù)據(jù)的采集:利用甲烷傳感器監(jiān)測井下是否有燃?xì)庑孤┈F(xiàn)象;液位傳感器用來監(jiān)測井下水位是否超標(biāo);壓力和位移傳感器用來監(jiān)測井蓋是否被移動(dòng)或被盜取。
2)數(shù)據(jù)的傳輸:主控制器負(fù)責(zé)將傳感器采集到的數(shù)據(jù)打包發(fā)送給通信模塊,BC26模組接收到主控芯片的指令退出PSM狀態(tài),進(jìn)入連接狀態(tài),NB-IoT卡立即將數(shù)據(jù)通過射頻天線將井蓋的數(shù)據(jù)經(jīng)NB-IoT核心網(wǎng)發(fā)送到服務(wù)器。
NB-IoT無線通信模塊是由BC26模組以及NB卡卡座、串口電路、濾波天線、復(fù)位電路組成,由電源模塊供電。BC26模塊硬件電路如圖3所示。
圖3 BC26模塊電路圖
在設(shè)計(jì)方面,兼容移遠(yuǎn)通信GSM/GPRS系列的M26模組采用LCC封裝,便于2 G客戶快捷地切換到NB-IoT網(wǎng)絡(luò)。BC26模塊與STM32單片機(jī)采用串口通信,STM32通過向BC26模塊發(fā)送AT指令,完成對(duì)BC26的設(shè)置和相關(guān)信息的發(fā)布。BC26工作電壓范圍在3.1~4.2 V之間,該模組具有3種工作模式:CONNECT、IDLE和PSM,根據(jù)實(shí)際需求切換工作模式極大地降低了系統(tǒng)的功耗。IDLE狀態(tài)下電流為6 mA,PSM狀態(tài)下電流僅為5 μA,這種模式更適合NB-IoT技術(shù)的應(yīng)用場景。
為了降低功耗,當(dāng)STM32進(jìn)入待機(jī)模式時(shí),單片機(jī)會(huì)給無線通信模塊發(fā)送關(guān)機(jī)脈沖,關(guān)閉無線通信模塊[9]。當(dāng)定時(shí)器到達(dá)時(shí)間或者某一傳感器給單片機(jī)發(fā)出喚醒信號(hào)需要上傳信息時(shí),單片機(jī)喚醒后給BC26模塊發(fā)送開啟指令使其退出PSM模式,然后將接受到的數(shù)據(jù)發(fā)送至服務(wù)器。過一段時(shí)間后仍未收到主控芯片發(fā)來的指令,BC26模塊會(huì)自動(dòng)進(jìn)入休眠模式,等待下一次喚醒。
本設(shè)計(jì)對(duì)傳感器進(jìn)行選擇和電路設(shè)計(jì)均依據(jù)低功耗和安全穩(wěn)定原則。
本系統(tǒng)液位傳感器采用的是壓差式液位傳感器AS-136,當(dāng)傳感器檢測到井下水位發(fā)生變化時(shí),會(huì)產(chǎn)生一個(gè)電壓差,根據(jù)此變化來監(jiān)測水位的變化。
由于井蓋承受的壓力具有一定的限度,故當(dāng)井蓋長期被重物掩埋時(shí),會(huì)對(duì)井蓋造成傷害,影響井蓋的使用壽命,故需要對(duì)井蓋壓力進(jìn)行檢測。壓力檢測模塊主要由兩個(gè)部分組成:壓力傳感器模塊和數(shù)據(jù)轉(zhuǎn)換模塊。壓力傳感器(HL-8)經(jīng)過數(shù)據(jù)轉(zhuǎn)換模塊(HX711)連接至STM32處理器,STM32通過I2C通信方式讀取數(shù)據(jù)轉(zhuǎn)換模塊中的數(shù)據(jù)。
本設(shè)計(jì)選用甲烷傳感器MQ-4對(duì)窨井下甲烷氣體是否泄漏進(jìn)行監(jiān)測。該傳感器工作方式為當(dāng)檢測到甲烷氣體時(shí),產(chǎn)生相應(yīng)的電壓值,由模擬信號(hào)輸出端口(AO)輸出,甲烷濃度增大時(shí),輸出端口的電壓值成比例增長。由STM32端口內(nèi)置A/D轉(zhuǎn)換進(jìn)行對(duì)AO出輸出的電壓值檢測,測定甲烷氣體濃度。
為防范“井蓋吃人”或被惡意盜取,本設(shè)計(jì)采用ADLX345三軸加速度傳感器來監(jiān)測井蓋是否發(fā)生偏移。ADXL345功耗低,具有閾值可調(diào)的睡眠和喚醒工作模式。當(dāng)監(jiān)測終端處于待機(jī)狀態(tài)時(shí),安裝在井蓋上的加速度傳感器發(fā)生偏移并且監(jiān)測到的值大于閾值,ADLX345傳感器會(huì)主動(dòng)喚醒單片機(jī)使其進(jìn)入工作模式,此時(shí)傳感器測量20次的加速度值并發(fā)送給STM32內(nèi)部。在單片機(jī)內(nèi)部計(jì)算20次的平均值,如果平均值大于閾值,則立即將報(bào)警信息上傳到服務(wù)器;如果平均值小于閾值,單片機(jī)和加速度傳感器都進(jìn)入待機(jī)模式,等待下一次被喚醒。因此,選用ADLX345三軸加速度傳感器來監(jiān)測井蓋是否發(fā)生偏移。該傳感器靈敏度高,可以起到實(shí)時(shí)動(dòng)態(tài)監(jiān)測井蓋位移的功能。
上述4個(gè)傳感器在數(shù)據(jù)采集時(shí)經(jīng)過與STM32處理器通信后,完成對(duì)數(shù)據(jù)的原始采集,但需要對(duì)數(shù)據(jù)進(jìn)行二次處理,對(duì)于液位傳感器與甲烷傳感器,由于其使用了STM32內(nèi)置的12位AD轉(zhuǎn)換模塊,故采用均值濾波的方式來保持?jǐn)?shù)據(jù)的穩(wěn)定準(zhǔn)確性。而對(duì)于HX711模塊與ADLX345傳感器,其內(nèi)置芯片完成了相應(yīng)數(shù)據(jù)的運(yùn)算,故STM32通過傳感器采集的數(shù)據(jù)可以直接進(jìn)行使用。
智慧井蓋監(jiān)控系統(tǒng)軟件設(shè)計(jì)主要包括井蓋控制終端主控制器的軟件設(shè)計(jì)、智慧井蓋管理平臺(tái)以及手機(jī)終端軟件設(shè)計(jì)。
井蓋監(jiān)控終端軟件設(shè)計(jì)主要包括:主程序、終端服務(wù)程序、串口接收服務(wù)程序。主程序流程圖如4所示。主程序首先對(duì)STM32串口以及定時(shí)器進(jìn)行初始化,然后對(duì)NB-IoT模塊進(jìn)行初始化,初始化完成后STM32和NB-IoT模塊都進(jìn)入休眠模式。定時(shí)器設(shè)定的時(shí)間到達(dá)后,向采集端發(fā)送運(yùn)行狀態(tài)查詢命令,完成井蓋狀態(tài)參數(shù)的定時(shí)采集,并按規(guī)定的協(xié)議將井蓋狀態(tài)數(shù)據(jù)上傳至服務(wù)器。
圖4 主程序流程圖
智慧井蓋管理系統(tǒng)軟件采用B/S(瀏覽器/服務(wù)器)模式進(jìn)行設(shè)計(jì),數(shù)據(jù)庫采用MySQL,系統(tǒng)服務(wù)端采用J2EE技術(shù)架構(gòu)。管理軟件在整個(gè)智慧井蓋管理系統(tǒng)中起著承前啟后的作用,一方面管理軟件采用MQTT協(xié)議與服務(wù)器進(jìn)行數(shù)據(jù)傳輸,管理軟件接收到來自服務(wù)端的數(shù)據(jù),解析數(shù)據(jù)并存儲(chǔ)在數(shù)據(jù)庫中;另一方面,管理軟件從MySQL數(shù)據(jù)庫中獲取數(shù)據(jù)。智慧井蓋管理系統(tǒng)分為:智能井蓋管理模塊、區(qū)域與巡檢員管理模塊、智能井蓋日志、APP消息模塊、平臺(tái)參數(shù)管理模塊和系統(tǒng)權(quán)限管理模塊。智慧井蓋管理系統(tǒng)軟件設(shè)計(jì)流程圖如圖5所示。
圖5 智慧井蓋管理系統(tǒng)軟件設(shè)計(jì)流程圖
系統(tǒng)的手機(jī)終端主要針對(duì)巡檢員而設(shè)計(jì),采用Android系統(tǒng)開發(fā),實(shí)現(xiàn)了對(duì)異常信息的接收并實(shí)現(xiàn)了和服務(wù)器端數(shù)據(jù)交互。在井蓋發(fā)生異常時(shí),實(shí)現(xiàn)定位及導(dǎo)航功能。具體的手機(jī)終端軟件設(shè)計(jì)流程圖如圖6所示。
圖6 手機(jī)終端軟件設(shè)計(jì)流程圖
該系統(tǒng)已經(jīng)進(jìn)行了現(xiàn)場測試,通過多次長時(shí)間測試運(yùn)行結(jié)果表明該系統(tǒng)穩(wěn)定可靠,達(dá)到了很好的預(yù)期效果。由圖7中可以直觀地掌握各個(gè)區(qū)域井蓋數(shù)量以及在線狀態(tài)。在列表方式中,以列表的方式顯示每個(gè)井蓋的具體信息,包括井蓋的ID(每個(gè)井蓋的唯一識(shí)別號(hào))、名稱、地址、藍(lán)牙密碼(新增井蓋初始化應(yīng)用)、水位、壓力、燃?xì)鉂舛?、位移等信息,并且可以?duì)井蓋進(jìn)行啟/停(廢棄井蓋或者啟用井蓋)操作,在操作欄中可以對(duì)井蓋信息修改、刪除與修改藍(lán)牙密碼,在搜索欄里面可以查詢?nèi)我庖粋€(gè)井蓋信息。在地圖方式中,以更加直觀的形式顯示了每個(gè)區(qū)的井蓋數(shù)、離線數(shù)、異常數(shù)。通過放大地圖則會(huì)顯示出每個(gè)地方井蓋的具體信息。
圖7 智能井蓋管理系統(tǒng)主界面
圖8 手機(jī)終端主界面
圖8左圖表明在手機(jī)終端可以在地圖模式下清楚地查看各個(gè)井蓋的分布以及井蓋的具體信息;右圖表明手機(jī)終端在列表模式下,顯示了每個(gè)井蓋的基本信息,包括ID號(hào)、名稱、位移、濃度、水位、壓力等。當(dāng)有異常情況發(fā)生時(shí),管理平臺(tái)和手機(jī)終端都會(huì)收到報(bào)警信息,減少了人工巡檢和維護(hù)的成本,通過手機(jī)精確定位故障點(diǎn),以減少故障檢修的時(shí)間。
針對(duì)城市井蓋所出現(xiàn)的管理弊端和安全問題,本文結(jié)合嵌入式技術(shù)、窄帶物聯(lián)網(wǎng)技術(shù)和數(shù)據(jù)庫技術(shù),提出并實(shí)現(xiàn)了基于NB-IoT的智慧井蓋監(jiān)測系統(tǒng)的設(shè)計(jì)。實(shí)現(xiàn)了對(duì)城市井蓋的智能化管理,降低了管理人員和檢修人員的勞動(dòng)壓力,并且一定程度上預(yù)防了安全事故的發(fā)生。該系統(tǒng)為智慧市政做出了貢獻(xiàn),推動(dòng)了智慧城市的發(fā)展[10]。長時(shí)間的數(shù)據(jù)收集為大數(shù)據(jù)建立了基礎(chǔ),為建立智能決策系統(tǒng)提供了條件。