李澥,方子昂,陳弘諾,陳文榮,于尚智
(廣州大學華軟軟件學院,廣東廣州 510990)
目前,我國城市井蓋數量龐大,如何對其進行實時安全監控已成為管理部門的一道難題。為了更好地保障公共設施安全,迫切需要采用新技術、新模式來加強針對井蓋的安全管理[1]。井蓋監控管理系統需要解決3 個主要問題:1)通信問題;2)功耗高問題;3)后期維護成本高問題。
在通信模塊方面,現有的智能井蓋系統大部分是基于NB-IoT 技術的設計。NB-IoT 技術的低功耗、低成本、廣覆蓋以及支持超大連接等優點,對傳統的物聯網通信模式有極大的提升和優化,得到業內的廣泛支持,已成為當前物聯網的主流技術[2-3]。
在微控制器方面,現有的智能井蓋系統多采用STM32F1 或STM32L1 系列,尚未考慮系統供電問題和電池年自放電率問題[4-5]。這類微控制器和STM8L051 相比,其功耗與成本都相對較高。其中STM32F1C8 的運行模式功耗達到STM8L051F3 的2.07 倍,STM32L152R8 的成本更是達到STM8L051F3的4.34 倍。
針對以上問題進行探討,設計了一套低成本、低功耗和易維護的智能井蓋系統。
以往的井蓋管理系統有著不少亟待解決的問題。例如,不能及時處理井蓋故障,無法確定井蓋具體位置信息,設備壽命短和維護困難等。智能井蓋系統重點需要解決以下問題:
1)系統響應時間。當井蓋出現異常情況時,通信模塊能夠及時將數據上報至服務端,系統自動確認警情后,服務端可立即發送消息給離案發地最近的維護人員;
2)系統可靠性。系統井蓋配置電源的使用時間一般為3~5 年。當井蓋配置電源的電量不足時,系統可及時通知維護人員進行更換,減輕維護工作人員的工作量;另外,撬井檢測功能可區分是否為維護人員正常操作,避免異常信息誤報。
文中所設計的智能井蓋管理系統分為設備層、云端層和用戶層,其系統拓撲圖如圖1 所示。其中,設備層主要負責傳感器數據的采集和傳輸;云端層負責對數據信息進行接收、分析、整理、存儲和分發;用戶層將現場信息呈現在網頁端,輔助現場管理人員開展工作,及時發送相應消息至維護人員的手機,提示維護人員需要處理的問題。

圖1 系統拓撲圖
智能井蓋系統的設備層由多個智能井蓋終端節點構成。每個終端節點由電池供電;微控制器和傳感器之間通過IIC 協議進行采集與控制,并與通信模塊通過UART 協議封裝的AT 指令進行數據的發送與接收;終端節點和電源之間通過ADC 采集電源剩余電壓。終端節點設計圖如圖2 所示。

圖2 智能井蓋終端節點設計圖
微控制器作為設備層的控制核心,主要功能是對數據的采集和發送。選型時主要考慮其功耗問題。只有微安級別的功耗才能維持3 至5 年的使用時間。選擇意法半導體STM8L051 系列的原因是,其最低功耗模式僅為0.35 μA,動態運行模式也僅為180 μA;支持1.8~3.6 V 的寬電壓,功耗低且功能滿足要求[6-7]。STM8L051 電路圖如圖3 所示。

圖3 微控制器STM8L051電路圖
在電路設計上,在每個VDD之間添加去耦電容以降低噪聲,并在VDD與VSS之間添加了磁珠以抑制高頻噪聲、尖峰干擾和吸收靜電脈沖。ADXL345 三軸加速度計芯片通過IIC 協議與STM8 進行通信。NBIoT 模塊與主控器通過UART 實現了控制指令及數據的收發,D2 可以防止電流倒流到通信模塊,降低了MCU 的功耗,ENT0 接收通信模塊的中斷信號,控制與GPIO1 相連三極管的導通狀態并可以對通信模塊進行復位。
鋰亞硫酰氯電池的放電電壓為3.65 V,放電曲線平穩,是目前一次性鋰電池中放電電壓最高的電池,其具有工作溫度范圍寬、年自放電率不大于2%、貯存壽命可達10~15 年等特性,且成本低廉[8]。這些特點較適合在智能井蓋系統中使用。
如圖4 所示,由電池的正極引出3 條線,一條VADC接到微控制器以檢測電池電壓,一條連接低壓差線性穩壓器輸出3.3 V 給通信模塊供電,一條連接低壓差線性穩壓器輸出2.5 V 給微控制器和傳感器供電。

圖4 電源電路設計圖
ADXL345 是一款小而薄的超低功耗三軸加速度計,其分辨率最高為13 位,測量模式下功耗可低至23 μA,電壓范圍為2.0~3.6 V。ADXL345 可以在井蓋的傾斜檢測中測量靜態重力加速度,通過比較任意軸上的加速度與用戶設置的閾值,檢測有無運動發生。低功耗模式支持基于運動的智能電源管理,能以極低的功耗進行閾值感測和運動加速度測量[9]。ADXL345 電路如圖5 所示。

圖5 傳感器ADXL345電路設計圖
在電源與地之間增加濾波電容,以去除干擾和噪聲,在SCL 和SDA 線增加上拉電阻與微控制器,實現IIC 通信。在CS 端接入高電平設備使能,在ALT ADDRESS 端接地,進行設備的備用地址選擇,設備通過兩路INT 中斷信號接入微控制器。
NB-IoT 模塊采用的是移遠的BC28,它是一款高性能、低功耗、超寬工作溫度范圍的多頻段NB-IoT 無線通信模塊。結合NB-IoT的PSM 模式在參考信號接收功率為-128 dBm以下,假設模塊每年重新上電一次,每天發送一次200 字節數據,且每天發起一次跟蹤區的更新流程,則一年的總功耗僅為432.638 mAh[10-11]。
其中,PSM 模式的原理是允許設備在空閑態一段時間后,關閉信號的收發和接入層相關功能,使設備處于休眠模式,相當于部分關機,從而減少天線、射頻和信令處理等的功耗消耗。在PSM 模式,設備不再監聽尋呼,但還保持注冊在網絡中,因此,再發送數據時不需重新建立PDN 連接。
如圖6 所示,VDD_EXT 實現了對于外部I/O 端口弱上拉的功能,并并聯了一個旁路電容。在USIM接口使用了瞬態二級管進行靜電保護,并串聯了22 Ω的電阻來抑制電磁干擾。在VBAT電源前添加了47 uF的鉭電容,以及100 nF、100 pF 和22 pF 的濾波電容,還增加了一個瞬態二極管來防止浪涌電壓。

圖6 通信模塊電路設計圖
智能井蓋管理系統設備層的軟件功能主要包括模塊初始化、數據采集與發送、低功耗模式和異常處理等。設備層軟件工作流程圖如圖7 所示。

圖7 設備層軟件工作流程圖
軟件設計的關鍵點在于:
1)對微控制器選用適當的工作頻率,以低頻率為主。具體場景在提供的6 種工作模式(運行、低功耗運行、低功耗等待、等待、活躍停止和停止)間切換,關閉暫時不需要的外圍時鐘、外設和FLASH,將沒用的GPIO 設為浮空輸入禁止中斷模式,減少ADC測試次數,以便降低功耗。系統還可以通過EEPROM 保存設備參數和設置RTC 來實現一天一次的自動喚醒[12]。
2)對傳感器設置較低的輸出速率來降低功耗,且不影響系統運行(如12.5 Hz剛好可以在1 s內檢測10 次數值),并采用自動休眠模式,設置靜止和活動檢測的加速度閾值和靜止檢測時需小于的加速度時間量。當井蓋發生傾斜時,可以通過中斷引腳來喚醒微控制器。將采集到的X、Y、Z軸加速度轉換為傾斜角度問題,其中主要利用了基本三角恒等式計算,如式(1)~(3)所示。傾斜角度檢測示意圖如圖8所示。

圖8 傾斜角度檢測示意圖

式中,α和β分別表示水平面與加速度計x軸和y軸之間的夾角,γ表示重力矢量與z軸之間的夾角,x.out、y.out 和z.out 分別表示X軸、Y軸和Z軸的檢測量[13-14]。
3)通信模塊工作過程如下:啟動模塊→搜索網絡→成功連接到網絡→數據傳輸→進入eDRX 模式→進入PSM,如圖9 所示。PSM 的主要目的是降低模塊功耗,延長電池的供電時間,所以設置PSM 中的TAU 值(T312)較為關鍵。設置PSM 模式為12 h 喚醒一次,激活保持在線時間為4 min。

圖9 通信模塊PSM模式示意圖
系統使用阿里物聯網云平臺和云服務器所組成的云端層,作為設備和用戶層的中間件[15-16]。系統云端層如圖10 所示。

圖10 系統云端層設計圖
設備層采用MQTT 協議與阿里物聯網云平臺進行消息通信。云服務器和阿里物聯網云平臺之間可以通過阿里云推送來主動接收設備上報的消息,并可以通過調用阿里云API 來控制設備層。在云服務器內部會有Python 編寫的數據處理腳本對收到的設備消息進行解析并存入Mysql 數據庫。如果是告警消息,則會調用短信服務來通知運維人員。網頁服務器Tomcat和負載均衡Nginx將為用戶提供圖形化管理。
系統用戶層通過網頁來實現對用戶與設備的圖形化管理[17]。系統用戶層流程圖如圖11 所示。

圖11 系統用戶層流程圖
前端采用HTML、CSS 和Javascript 語言開發,使用了主流的Bootstrap 框架;后端采用Java 語言開發,使用了主流的Spring+SpringMVC+Mybatis 框架來實現用戶數據的交互。
網頁端主界面接入了百度地圖,并在地圖上標記每一個井蓋所處的位置,根據井蓋的狀態改變標記點的顏色。當用戶點擊井蓋標記點時,將以彈框的形式顯示井蓋的詳細信息,并在下方顯示井蓋的歷史記錄和報警等信息。
經計算,所設計的整套硬件設備的成本最低不到45元,一年的平均功耗為688.31 mAh,一節4 000 mAh的電池可以用5.8 年,可基本滿足智能井蓋低功耗和低成本的需求。
測試結果表明,系統具有超低功耗、工作穩定、組網簡單、實時性響應良好等特點,井蓋的智能化、網絡化和可視化管理可在一定程度上解決井蓋監控管理和保障市民出行安全、提高管理人員的工作效率等問題,可對智慧城市建設起到積極的作用。