(1.西安科技大學 通信與信息工程學院, 西安 710054; 2.西安科技大學 電氣與控制工程學院,西安 710054;3.句容市博遠電子有限公司,江蘇 鎮江 212400)
隨著城市化進程的加速,城市覆蓋面積不斷擴大,井蓋的數量與日俱增。井蓋不僅數量多,而且屬于不同的部門監管,造成市政部門監管難度大。井蓋被盜以及爆炸等安全事故時有發生,直接威脅行人和車輛通行安全,影響城市道路平整和市容環境[1]。目前,城市井蓋的巡查基本都需要人力,井蓋出現故障后,需要巡視人員或者市民上報,所以維修人員不能及時到達現場來解決問題,使市民的安全性大大降低。因此,加強城市井蓋的維護和安全管理工作,已成為當前市政部門重視和解決的現實問題。
隨著物聯網技術的發展,低功耗廣域網(LPWAN)技術明顯優于傳統的物聯網技術[2]。目前主流的低功耗廣域網有NB-IoT、LoRa和Sigfox等。2017年6月《關于全面推進移動物聯網(NB-IoT)建設發展》的發布,物聯網行業尤其是NB-IoT產業得到了國家政策的大力支持。NB-IoT工作在授權頻段,相較于LoRa和Sigfox具有干擾性強、安全性高、實時性好的優點。并且,在相同的頻段下,基于NB-IoT的窄帶物聯網技術,增益超過20dB,形成深度覆蓋、海量連接的優良架構[3]。通過NB-IoT與傳感器連接,解決了城市井蓋下傳感器信號回傳以及信號質量的問題。
史瑞剛等[4]采用ZigBee無線通信技術設計了一種道路井蓋監測系統,終端傳感器采集到的數據通過ZigBee組網傳輸至協調器,然后再通過RS485總線與上位機進行通信,從而實現了對窨井蓋的遠程監測。趙士鵬等[5-6]利用無線通信技術和無線傳感技術,設計了一款基于ZigBee和GPRS的智能井蓋監控系統,提高了對城市井蓋的管理效率。雖然基于ZigBee和GPRS的井蓋監測系統在某種程度上實現了對城市井蓋的集中管理,但在后期維護和系統穩定性方面存在一定的缺陷。因此,本文結合NB-IoT技術設計了一種智慧井蓋監測系統,管理人員和維修人員可在地圖和列表上清楚地掌握井蓋的分布以及在線狀態,對故障井蓋進行自動報警、精確定位,使井蓋管理智能化、故障檢修便捷化,以減少城市井蓋安全事故的發生。
以往的城市井蓋管理存在很多問題,例如井蓋巡查、維護基本要人力;井蓋發生故障時,維修人員無法確定井蓋的精確位置;井蓋的種類分為燃氣、電力、通信等,屬于不同的部門,管理方式不同導致管理不善、工作效率低下[7]。針對以上問題,本文設計的智慧井蓋監測系統有以下幾個功能:
1)井蓋故障自動報警,精確定位,可從平臺web界面以及手機App界面顯示故障信息和實現定位;
2)每個井蓋都有屬于自己的ID,可從平臺和APP隨時查看井蓋的運行狀態和在線狀態;
3)井蓋的工作記錄,歷史查詢。
本文所設計的智慧井蓋監控系統是由數據采集層、通信層、應用服務層和用戶層組成的,系統的總體架構如圖1所示。

圖1 系統總體架構圖
數據采集層主要對井蓋的壓力、位移和井下的甲烷濃度和水位進行在線監測和異常情況上報,完成井蓋相關信息的采集;通信層主要是采集終端通過NB-IoT模塊將采集到的數據上傳到至NB-IoT基站,進而上傳到服務器;應用服務層主要負責將采集到的數據進行處理、存儲和發布;用戶層主要通過PC端或者手機端從服務器獲取數據,進行顯示、異常報警等。
智能井蓋監測終端設計是系統硬件設計的重要組成部分,其設計影響整個系統的高效性和可靠性。監測終端硬件設計包括3個部分分別是:主控制模塊、通信模塊、傳感器模塊。以一個監測節點為例進行介紹,系統的硬件結構如圖2所示。智慧井蓋監測終端主控制器與傳感器模塊、NB-IoT模塊之間均采用UART通信方式。同時使用鋰電池給監測終端提供8 V直流電源。采集終端開機完成初始化后,主控芯片STM32進入待機模式等待定時器喚醒,同時BC26模塊在設定時間內無任何操作,會自動進入PSM模式。定時器時間到達后,主控芯片STM32退出待機模式,開始采集井蓋的位移和壓力以及井下水位和甲烷濃度,然后將這些數據發送給NB-IoT模塊,此時STM32再次進入待機模式,NB-IoT模塊收到數據后退出PSM模式,主控芯片發送AT指令將數據經射頻天線發送給NB-IoT基站,然后再與服務器建立連接傳輸數據。

圖2 系統硬件組成框圖
考慮到STM32與傳感器可方便地進行數據傳輸,并且能滿足系統功能的要求,故選用STM32F103C8T6單片機作為該系統的主控制器。STM32F103C8T6工作頻率最高達到72 MHz,內核使用的是高性能的ARM CortexTM-M3 32位的RISC內核,內置高速存儲器(高達512 K字節的閃存和64 K字節的SRAM),具有豐富的I/O端口和聯接到兩條APB總線的外設。STM32F103C8T6包含2個PWM定時器、3個12位的ADC和4個通用16位定時器,還包含標準和先進的通信接口:多達2個I2C接口和SPI接口、3個USART接口、一個USB接口和一個CAN接口[8]。該芯片工作溫度范圍為-40~+105 ℃,以及它的省電模式也完全符合本系統的設計需要。
以STM32F103C8T6為核心的智慧井蓋監測終端主要完成以下功能:
1)數據的采集:利用甲烷傳感器監測井下是否有燃氣泄漏現象;液位傳感器用來監測井下水位是否超標;壓力和位移傳感器用來監測井蓋是否被移動或被盜取。
2)數據的傳輸:主控制器負責將傳感器采集到的數據打包發送給通信模塊,BC26模組接收到主控芯片的指令退出PSM狀態,進入連接狀態,NB-IoT卡立即將數據通過射頻天線將井蓋的數據經NB-IoT核心網發送到服務器。
NB-IoT無線通信模塊是由BC26模組以及NB卡卡座、串口電路、濾波天線、復位電路組成,由電源模塊供電。BC26模塊硬件電路如圖3所示。

圖3 BC26模塊電路圖
在設計方面,兼容移遠通信GSM/GPRS系列的M26模組采用LCC封裝,便于2 G客戶快捷地切換到NB-IoT網絡。BC26模塊與STM32單片機采用串口通信,STM32通過向BC26模塊發送AT指令,完成對BC26的設置和相關信息的發布。BC26工作電壓范圍在3.1~4.2 V之間,該模組具有3種工作模式:CONNECT、IDLE和PSM,根據實際需求切換工作模式極大地降低了系統的功耗。IDLE狀態下電流為6 mA,PSM狀態下電流僅為5 μA,這種模式更適合NB-IoT技術的應用場景。
為了降低功耗,當STM32進入待機模式時,單片機會給無線通信模塊發送關機脈沖,關閉無線通信模塊[9]。當定時器到達時間或者某一傳感器給單片機發出喚醒信號需要上傳信息時,單片機喚醒后給BC26模塊發送開啟指令使其退出PSM模式,然后將接受到的數據發送至服務器。過一段時間后仍未收到主控芯片發來的指令,BC26模塊會自動進入休眠模式,等待下一次喚醒。
本設計對傳感器進行選擇和電路設計均依據低功耗和安全穩定原則。
本系統液位傳感器采用的是壓差式液位傳感器AS-136,當傳感器檢測到井下水位發生變化時,會產生一個電壓差,根據此變化來監測水位的變化。
由于井蓋承受的壓力具有一定的限度,故當井蓋長期被重物掩埋時,會對井蓋造成傷害,影響井蓋的使用壽命,故需要對井蓋壓力進行檢測。壓力檢測模塊主要由兩個部分組成:壓力傳感器模塊和數據轉換模塊。壓力傳感器(HL-8)經過數據轉換模塊(HX711)連接至STM32處理器,STM32通過I2C通信方式讀取數據轉換模塊中的數據。
本設計選用甲烷傳感器MQ-4對窨井下甲烷氣體是否泄漏進行監測。該傳感器工作方式為當檢測到甲烷氣體時,產生相應的電壓值,由模擬信號輸出端口(AO)輸出,甲烷濃度增大時,輸出端口的電壓值成比例增長。由STM32端口內置A/D轉換進行對AO出輸出的電壓值檢測,測定甲烷氣體濃度。
為防范“井蓋吃人”或被惡意盜取,本設計采用ADLX345三軸加速度傳感器來監測井蓋是否發生偏移。ADXL345功耗低,具有閾值可調的睡眠和喚醒工作模式。當監測終端處于待機狀態時,安裝在井蓋上的加速度傳感器發生偏移并且監測到的值大于閾值,ADLX345傳感器會主動喚醒單片機使其進入工作模式,此時傳感器測量20次的加速度值并發送給STM32內部。在單片機內部計算20次的平均值,如果平均值大于閾值,則立即將報警信息上傳到服務器;如果平均值小于閾值,單片機和加速度傳感器都進入待機模式,等待下一次被喚醒。因此,選用ADLX345三軸加速度傳感器來監測井蓋是否發生偏移。該傳感器靈敏度高,可以起到實時動態監測井蓋位移的功能。
上述4個傳感器在數據采集時經過與STM32處理器通信后,完成對數據的原始采集,但需要對數據進行二次處理,對于液位傳感器與甲烷傳感器,由于其使用了STM32內置的12位AD轉換模塊,故采用均值濾波的方式來保持數據的穩定準確性。而對于HX711模塊與ADLX345傳感器,其內置芯片完成了相應數據的運算,故STM32通過傳感器采集的數據可以直接進行使用。
智慧井蓋監控系統軟件設計主要包括井蓋控制終端主控制器的軟件設計、智慧井蓋管理平臺以及手機終端軟件設計。
井蓋監控終端軟件設計主要包括:主程序、終端服務程序、串口接收服務程序。主程序流程圖如4所示。主程序首先對STM32串口以及定時器進行初始化,然后對NB-IoT模塊進行初始化,初始化完成后STM32和NB-IoT模塊都進入休眠模式。定時器設定的時間到達后,向采集端發送運行狀態查詢命令,完成井蓋狀態參數的定時采集,并按規定的協議將井蓋狀態數據上傳至服務器。

圖4 主程序流程圖
智慧井蓋管理系統軟件采用B/S(瀏覽器/服務器)模式進行設計,數據庫采用MySQL,系統服務端采用J2EE技術架構。管理軟件在整個智慧井蓋管理系統中起著承前啟后的作用,一方面管理軟件采用MQTT協議與服務器進行數據傳輸,管理軟件接收到來自服務端的數據,解析數據并存儲在數據庫中;另一方面,管理軟件從MySQL數據庫中獲取數據。智慧井蓋管理系統分為:智能井蓋管理模塊、區域與巡檢員管理模塊、智能井蓋日志、APP消息模塊、平臺參數管理模塊和系統權限管理模塊。智慧井蓋管理系統軟件設計流程圖如圖5所示。

圖5 智慧井蓋管理系統軟件設計流程圖
系統的手機終端主要針對巡檢員而設計,采用Android系統開發,實現了對異常信息的接收并實現了和服務器端數據交互。在井蓋發生異常時,實現定位及導航功能。具體的手機終端軟件設計流程圖如圖6所示。

圖6 手機終端軟件設計流程圖
該系統已經進行了現場測試,通過多次長時間測試運行結果表明該系統穩定可靠,達到了很好的預期效果。由圖7中可以直觀地掌握各個區域井蓋數量以及在線狀態。在列表方式中,以列表的方式顯示每個井蓋的具體信息,包括井蓋的ID(每個井蓋的唯一識別號)、名稱、地址、藍牙密碼(新增井蓋初始化應用)、水位、壓力、燃氣濃度、位移等信息,并且可以對井蓋進行啟/停(廢棄井蓋或者啟用井蓋)操作,在操作欄中可以對井蓋信息修改、刪除與修改藍牙密碼,在搜索欄里面可以查詢任意一個井蓋信息。在地圖方式中,以更加直觀的形式顯示了每個區的井蓋數、離線數、異常數。通過放大地圖則會顯示出每個地方井蓋的具體信息。

圖7 智能井蓋管理系統主界面

圖8 手機終端主界面
圖8左圖表明在手機終端可以在地圖模式下清楚地查看各個井蓋的分布以及井蓋的具體信息;右圖表明手機終端在列表模式下,顯示了每個井蓋的基本信息,包括ID號、名稱、位移、濃度、水位、壓力等。當有異常情況發生時,管理平臺和手機終端都會收到報警信息,減少了人工巡檢和維護的成本,通過手機精確定位故障點,以減少故障檢修的時間。
針對城市井蓋所出現的管理弊端和安全問題,本文結合嵌入式技術、窄帶物聯網技術和數據庫技術,提出并實現了基于NB-IoT的智慧井蓋監測系統的設計。實現了對城市井蓋的智能化管理,降低了管理人員和檢修人員的勞動壓力,并且一定程度上預防了安全事故的發生。該系統為智慧市政做出了貢獻,推動了智慧城市的發展[10]。長時間的數據收集為大數據建立了基礎,為建立智能決策系統提供了條件。