李宇航,秦紅星,史苗紅,蔡佳宸,張墨涵
(唐山學院 河北省智能裝備數字化設計及過程仿真重點實驗室,河北 唐山 063000)
經調查,國內多數高校宿舍仍采用較為傳統的木門和掛鎖,樓道內也未能覆蓋監控系統,這對學生的財產安全來說是一個很大的隱患[1]。大多數高校禁止學生在宿舍內對基礎設施進行相關改造,諸如禁止更換門鎖和門窗、墻上釘釘、私拉電線等。同時學校為了方便宿管和其他管理人員在白天無人時進行查宿,禁止使用一些諸如門塞、阻門器等器件將門鎖死。此外,部分高校還存在晚上斷電、網絡條件有限等問題,安裝為家庭設計的防盜系統具有較大的局限性。因此需要一套簡單的設備來防盜。經調查,目前市場上暫無相關產品,本文設計可以在上述限制條件下發揮作用。
本文就上述現象提出一種簡單的方案:使用STM32作為主控芯片,通過電容指紋識別技術對進入人員進行身份核驗,輔以外接雷達模塊、干簧管模塊、網絡模塊、服務端和用戶APP,可以在夜間斷電或網絡條件限制的情況下,為高校宿舍提供簡單的、低成本的、符合規定的宿舍防盜解決方案,以期為學生的財產安全提供有效的保護,對校內治安乃至社會層面的治安都會產生較為深遠的影響。
宿舍智能防盜系統具有監測門狀態、監測室內人員狀態、指紋識別、語音播報、日志記錄和上報等功能。服務端具有接收和儲存事件日志、上報APP通知等功能。用戶APP具有查詢日志、接收報警信息等功能。
本設計的主體部分為主控制器,通過前面板按鍵,手動設置布防或設定自動定時布防后,設備在最后一次關門后進入布防狀態。雷達電源開啟,此時門若再次打開,則語音提示進入的人員刷取指紋進行身份核驗;核驗成功后,設備進入待機模式,雷達電源關閉以降低輻射。如果未能根據指引進行身份核驗,在宿舍內部行走,被雷達檢測到后,則會觸發報警程序,系統通過網絡模塊,將信息上報給遠程服務器,并通知手機APP,同時擴大音量報警并警告離開。
本系統硬件部分包含主控制板、擴展板、24 GHz毫米波雷達模塊、干簧管模塊和指紋模塊。主控制器模塊如圖1所示。其中主控制板搭載STM32F302RBT6單片機,包含一個3.5寸LCD液晶屏、4個按鍵、外圍穩壓電路和內外擴展接口電路。擴展板包含2G模塊接口、WiFi模塊接口、語音模塊接口、2S鋰電池充電電路和DC-DC降壓電路。主控制板線路如圖2所示。

圖1 主控制器功能框圖

圖2 主控制板線路
指紋具有相對的唯一性,即每個個體的指紋都是獨一無二的,因此通過指紋方式識別進入人員具有較高的安全性和可靠性[2]。綜合體積、識別率、用戶體驗等因素,本設計采用R502A電容式指紋識別模塊,其具有體積小、識別率高、協議簡單等特點,通過TTL串口和STM32進行通信[2]。
檢測流程如下:當手指按下指紋模塊,觸摸檢測引腳電平改變,觸發STM32外部中斷,在中斷服務函數中通過DMA發送采集圖像指令,此時模塊采集指紋圖像進入自身的圖像緩沖區;如果采集成功,反饋結果到主控,主控繼續發送提取特征指令,并等待結果;若提取成功,則發送指紋搜索指令,等待最終識別結果,并生成相關事件。其流程如圖3所示。

圖3 指紋模塊識別流程
本系統通過毫米波雷達技術,檢測人員流動情況,具有較高的抗干擾性和準確度[3]。系統所選用的毫米波雷達模塊HLK-LD303-24G,其發射頻率為24.000~24.250 GHz,天線視角為水平43°、垂直116°,延遲時間經實際測試大于等于60 ms,通過TTL串口與上位機進行通信。探測距離為10~350 cm,盲區為10 cm。相比于行業內常用的諸如人體紅外檢測模塊,其具有靈敏度高、安裝方便、體積小、功耗低、抗干擾性極強的特點[4]。本系統充分利用其優點,將其應用在禁區檢測中。
實測中,基本延時在200 ms以內,且可以穩定持續地檢測到人員流動。無誤報漏報,達到要求。同時為了保證檢測效果,模塊需要縱向安裝。安裝示意圖如圖4所示。

圖4 模塊安裝示意圖(俯視圖)
系統需要保證在檢測線附近的縱向盲區盡可能小且橫向盲區不干擾正常掃指紋的人員。經計算,在檢測線上的盲區以模塊為中心分布在上下兩側、與墻呈32°夾角的范圍內。盲區側視示意圖如圖5所示。

圖5 模塊盲區側視圖
盲區寬度計算公式如下:
故當模塊安裝高度h=1 000 mm、房屋高度H=2 800 mm時,代入式(1)和(2)求得:地面盲區為一個高1 000 mm、寬630 mm的直角三角形,頂部為高1 800 mm、寬1 126 mm的直角三角形。在入侵人員不知情的情況下極難越過雷達監測進入室內而不觸發報警裝置。當房屋寬度D取3 000 mm時,模塊的橫向檢測區域是以模塊為頂點、寬2 363.46 mm,高3 000 mm的等腰三角形。其中D=1 500 mm(即門的中心線位置)時寬度為1 181.72 mm(考慮到人員進入動作和指紋識別動作等)。
本系統使用的是單觸點常開式干簧管[5],使用兩個干簧管來檢測門的開關,使用干簧管將3.3 V電源和MCU引腳相連,MCU內部將引腳拉低。將干簧管端貼于門框上,磁鐵貼于門上同樣高度,安裝示意圖如圖6所示。

圖6 干簧管安裝示意圖
當門關閉后,磁鐵和干簧管靠近,干簧管吸合,此時擴展引腳電平為高電平,不易受到干擾。門打開后,干簧管斷開,等效擴展引腳懸空,由于MCU內部下拉的作用,此時讀取引腳狀態為低電平,合理設置中斷,進而判斷門的狀態。
擴展板主要包含三部分,即網絡模塊、語音模塊和電池管理模塊。網絡模塊分為2G模塊和WiFi模塊。2G模塊使用Tastek-E16,通過上位機設置IP地址、端口等信息,可以在上電后自動連接到服務器,并拉低LINKA和LINKB引腳,同時進入透傳模式。WiFi模塊使用ESP8266-01S模組,通過自編固件,上電后自動連接WiFi,連接服務器[6],IO2作為模塊的LINK引腳顯示網絡狀態[7]。底板同時只能插一個模塊,輸出單片機通過檢測LINK引腳電平狀態,即可獲取當前網絡狀態,當網絡狀態為成功連接,即可開啟串口DMA接收定長的自定義協議數據包。語音模塊使用的是JQ8400FL串口音頻模塊[8],其板載D類3W功放和W25Q64 FLASH。通過USB將預定的語音播報內容拷貝進入FLASH,即可通過串口協議控制進行語音播報。設備使用2S 2 100 mAh鋰電池,可以在斷電條件下續航3 h左右,充電電路使用的是CS5086E解決方案。降壓電路使用的是TPS5430方案,可滿足設備用電要求[9]。
用戶交互界面主要包含屏幕、按鍵。屏幕選用ILI9488驅動的3.5寸LCD液晶屏,分辨率為320×480;采用SPI總線與STM32主控進行通信,總線時鐘頻率為10.5 MHz。
系統軟件設計在STM32平臺主要包含系統狀態模塊、用戶交互模塊、日志查詢模塊、系統界面模塊、網絡通信模塊及各個器件的底層驅動;在服務器平臺主要包含JAVA服務端、PHP后端和APP前端。系統軟件設計框圖如圖7所示。

圖7 系統軟件設計框圖
系統在啟動后先進行各個器件的初始化,完成后進入待機狀態,可以在主界面通過按鍵來控制進入各個菜單,進行諸如查詢日志、設置布防狀態、查看傳感器狀態等操作。
系統狀態模塊是單片機模塊部分的整體控制核心,負責防盜邏輯的實現,其流程如圖8所示。

圖8 防盜邏輯流程
系統狀態模塊會產生各類事件,并處理輸入的各類控制信號,輸入控制主要是由用戶交互模塊的用戶按鍵或APP內設定定時任務產生。事件主要由傳感器產生,當系統狀態模塊感知到各類傳感器狀態發生改變,諸如報警、布防、撤防、掉電、電池電量低等,各類事件會經過日志模塊記錄到FLASH里,并通過網絡模塊將事件傳遞到服務器。
用戶交互模塊主要包含按鍵信號處理和屏幕顯示驅動。
按鍵信號處理主要是在STM32的GPIO中斷服務函數內部,觸發自定義的事件函數,并在函數內部設置 flag,配合1 kHz TIM中斷來達到長按、短按監聽的效果,區分長按短按等事件。
屏幕顯示驅動主要是由若干結構體構成的狀態機來儲存界面信息,通過按鍵設置切換到不同的界面,在主循環內不斷刷新;當狀態機更新后,對屏幕顯示內容進行更新。
主控制器和PHP服務器之間通過TCP連接進行通信,在TCP連接成功、LINK引腳電平拉低后,使用自定義協議進行通信。數據協議見表1所列。

表1 自定義協議數據包格式
每個宿舍有一個4位的宿舍號,MCU向服務器透傳登錄包,諸如當宿舍號為0xABCDEFAA,則內容為0xEE、0xA0、0x04、0xAB、0xCD、0xEF、0xAA、0xB5、0xFE。服務器收到后標記宿舍號,向主控反饋包類型為0x11的確認包,此時連接確認建立。
當系統事件發生時,將事件類型、時間等信息上報到服務器,由PHP服務端進行后續處理,流程如圖9所示。

圖9 事件記錄流程
日志模塊的核心是一塊W25Q64的FLASH儲存芯片,存儲發生時間、事件類型、編號等,可以通過屏幕進行查詢。
我開始研究如何去未來。無意間,我發明了一種藥水——時光藥水。喝了這種藥水,可以穿越到三千年后的某一天,還可以在那里待上一整天。
在PHP服務端,系統運用PHP+MySQL技術,來完成人員信息的管理和日志信息的存儲。
服務端擁有一個常駐進程,負責監聽客戶端TCP連接,同時配合前端HTML5+CSS+JS,使用JQuery和Bootstrap,簡單地通過APP/B/S架構[10],實現了一套響應式的APP界面,提供手機查詢、控制等功能[11]。
服務端具有完整的登錄和注冊界面,每個宿舍成員可以注冊一個自己的賬號,并綁定自己所在的宿舍號。通過Post上傳終端的事件,PHP服務端會進行實時記錄,存入數據庫,對于需要通過APP通知反饋給用戶的,則通過CID檢索同一宿舍下所有人員的app_taken并以JSON形式返回給服務端[12]。
兩個傳感器安裝距離為50 cm,安裝于門的中上部。
實驗持續9天,24 h誤報次數表示在關門狀態下連續24 h門狀態不變,受到外界干擾導致的誤判開門次數。開門和關門監測成功率指的是連續開關門100次有效檢測率。干簧管的實驗數據見表2所列。

表2 干簧管實驗數據
雷達測試實驗結果見表3所列。

表3 雷達測試實驗數據
最大測量距離取10次平均值2 740 mm 。觸發寬度范圍指的是以雷達為中線、距離1 200 mm處的觸發寬度范圍。檢測率指的是距離雷達1 500 mm處越過中線時雷達是否成功檢測到人。下部盲區監測結果指的是實驗對象為1 800 mm且盡力蹲下貼墻走時盲區規避是否成功,試驗次數為10次時8次成功檢測到即標記True。
經過實際測試,模塊安裝距離門邊1 300 mm時誤報率降低,最佳的安裝距離為2 000 mm以上。推薦安裝高度h=1 000 mm,同時在盲區內鋪設桌子等。
本文針對目前高校宿舍安全的問題,基于STM32單片機,配合外圍的傳感器,實現了一套切實可行的防盜報警方案,并對系統的實際運行狀況進行測試。在實際測試中,整個系統能達到防盜報警預期效果,具有一定的推廣應用價值。