李建杰,楊延寧,2,孫宇航,杜永星
(1.延安大學 物理與電子信息學院,陜西 延安 716000;2.南昌理工學院,江西 南昌 330044)
目前,安全防護技術越來越先進,特別是道路交通、商場超市等公共場所設置了大量的監控,人們的安全感越來越高。相對而言,家庭的防盜基本上還是停留在防盜門和防盜網的較低層次上。由于工作忙碌,單位和住所距離較遠,家庭遠程防盜的需求越來越高。而傳統的防盜門和防盜網雖然能阻止一定盜竊行為的發生,但它們在防火中的問題越來越多。因此,家庭防盜報警器的安裝變得尤為重要。文中設計了一款符合市場需求的高性能、低價格的遠程防盜報警器,用戶手機可通過GSM 網絡接收報警信息,對遠程防盜技術領域有較大的促進作用[1-2]。
遠程防盜報警系統設計方框圖如圖1 所示。外圍電路以單片機STM32F103C8T6 為主控器,包括熱釋電紅外傳感器、蜂鳴器報警模塊、GSM 模塊以及電源模塊等。熱釋電紅外傳感器負責監測紅外輻射的變化,進行防盜監測,出現被盜情況時,由單片機控制蜂鳴器報警模塊發出警報,用戶手機通過GSM 模塊接收報警信息。

圖1 系統總體方框圖
系統硬件電路原理圖如圖2 所示。硬件電路包括手機通信模塊(GSM)、電源接口電路、人體傳感器(熱釋電紅外傳感器)電路、蜂鳴器報警電路、MCU以及按鍵電路等。

圖2 硬件電路原理圖
熱釋電紅外傳感器又稱人體紅外傳感器,是一種將紅外熱信號轉換為電信號的器件,其內部原理圖如圖3 所示。從圖3 可以看到,其本質上就是在一個場效應管基礎上給柵極g 接入一個探頭,探頭內由壓電陶瓷電介質制作。探頭檢測到10 μm 左右的紅外線時就將紅外信號轉變為電信號。壓電材料接收紅外輻射后溫度升高,將失去其表面電荷,這就是熱釋電概念的由來[3-4]。這些失去的電荷通過放大器放大而轉換為電壓輸出。恰好人體在37°左右的溫度時會發出波長為10 μm 左右的紅外線,因此,稱之為人體傳感器[5-8]。

圖3 熱釋電紅外傳感器原理圖
GSM 模塊采用SIM800C 通信模塊,具有短信發送、語音通話、GPRS 數據傳輸等數據通信功能,其性能穩定,外觀小巧,性價比高[9]。用戶首先將自己的手機與防盜系統通信端口綁定,以便能夠接收GSM網絡的盜竊信息,實時提醒用戶正在發生的情況。SIM800C 共有40 個引腳,通過一個ZIF(Zero Insertion Force)連接器引出[10]。SIM800C 引腳圖如圖4 所示。

圖4 SIM800C 引腳圖
在防盜報警器設計中,選用了蜂鳴器報警,通過外接一個9012的三極管作為驅動,起到電路報警開關的作用,三極管9012 的發射極接到供電端,電壓為高電平3.3 V,基極接收來自單片機的控制端29腳PB10。當傳感器未檢測到有人入侵時,單片機控制端PB10輸出高電平,三極管9012處于截止狀態,蜂鳴器不響,同時,單片機15腳PA1輸出低電平,D2綠色發光二極管發光,表示沒有被盜。當傳感器檢測到有人入侵時,單片機控制端PB10 輸出低電平,三極管9012 就進入飽和導通狀態,進而驅動蜂鳴器發出響聲[11],同時,單片機20腳PA4 輸出高低脈沖,D1 紅色發光二極管閃爍,表示現場處于被盜狀態。蜂鳴器報警電路圖如圖5所示。

圖5 蜂鳴器報警電路圖
報警器設計中選用的單片機是STM32F103C8T6,其采用LQFP44 封裝。該單片機相比其他產品具有更高性價比。STM32F103C8T6 最小系統板原理圖如圖6 所示。

圖6 STM32F103C8T6最小系統板原理圖
最小系統電路有STM32F103C8T6 單片機芯片和時鐘電路,時鐘電路由一個8 MHz 晶振和兩個30 pF 電容串聯接入時鐘輸入腳[12-13]。
BOOT 引腳可以選擇不同的啟動模式,如表1 所示,通過BOOT0 和BOOT1 腳的電平組態可以控制啟動模式[14]。

表1 STM32啟動模式表
復位電路:系統工作前需要進行復位,通過足夠的時間進行初始化,需要在NRST 腳(單片機的第7腳)保持低電平信號,芯片正常工作[15]。
在用戶按下布防鍵后,經過15 s 倒計時,系統開始進入工作狀態,熱釋電紅外傳感器一旦監測到人體(竊賊)信號,就將信號傳遞給單片機進行程序處理,單片機輸出信號,驅動蜂鳴器報警和發光二極管閃爍,并通過GSM 模塊向手機發送報警信息,通過軟件設計保證發光二極管的閃爍和蜂鳴器警報同步。如果沒有人取消報警,程序將會持續循環進行報警工作。系統還設置了手動報警按鍵,突發情況下通過手動按鍵也能達到報警效果。主程序流程圖如圖7 所示。

圖7 主程序流程圖
系統的硬件調試步驟如下:
1)在上電之前,對照電路圖檢查硬件電路,進行逐個排查,檢查是否有多線、少線和引腳短路、開路等現象。
2)檢查單片機及各硬件模塊供電是否正常,電源電壓是否穩定。
3)通電后檢查單片機外設電路是否可以正常工作,特別檢查熱釋電紅外傳感器等部件是否正常工作。在燒入程序后檢查復位功能和程序燒寫是否正常。
4)用萬用表和示波器按照信號流動的方向測量電路的連通性。
電路調試是一個循環往復的過程,需要通過檢測-調試-檢測-調試的過程來提高硬件電路的性能,減小系統誤差,達到系統的設計要求。
在確認硬件電路調試無誤后,再對系統軟件進行調試。編程語言采用C 語言,軟件平臺采用Keil5。軟件部分的調試主要是檢測硬件部分與編寫的軟件程序是否匹配,確認是否可以達到設計要求。
1)首先檢測各模塊初始化配置是否正常,比如熱釋電紅外傳感器的引腳配置以及STM32F103C8T6的GPIO 配置是否正常。
2)檢查各模塊的數據是否可以接收和發送,比如,熱釋電紅外傳感器是否可以將采集到的溫度數據經單片機處理后發送給報警電路,確保信息傳輸的連通性和準確性,防止出現亂碼傳輸現象。
3)用仿真CPU 來模擬執行程序,在沒有正式上機之前,可以采用MDK 自帶的在線仿真器來調試程序。在線仿真調試能使程序的執行速度提高,但程序執行完后如果出現錯誤,不容易找出具體出錯的行。如果采取單行程序執行,當程序執行到某一行并出現錯誤時,可以容易發現錯誤之處,但當程序運行量很大時,就會大大降低效率。有些程序中的變量需要達到某一個值時才能被執行到,因此,單行調試就很難執行整個程序。
基于上面仿真調試遇到的問題,主要的解決方法就是在進行程序調試時設置斷點,斷點設置好以后開始不間斷地全速運行程序。當執行到斷點行時程序就會自動停止,通過觀察變量和相關寄存器的值就可以確定錯誤之處,此方法方便快捷,可以提高編程效率。
該文設計的基于SIM800C 通信模塊的遠程防盜報警器,當熱釋電紅外傳感器檢測到有人在檢測區域內移動時,系統進入報警模式,微控制器接收信號處理后發送報警控制信號,驅動聲光報警電路開始報警,同時,微控制器通過GSM 向預先綁定的用戶手機發送報警信息,使得用戶及時獲知被盜警情。經調試,其符合設計要求。該報警器功能還可以進一步拓寬,可在紅外報警的基礎上增加煙霧溫度報警、紅外遙控等功能[16]。