(哈爾濱醫(yī)科大學附屬第四醫(yī)院,哈爾濱 150001)
隨著電子通信技術的發(fā)展,單片機作為一種性價比極高的高度集成化芯片在各個領域得到廣泛的使用[1]。因此,可以使用單片機及其他相關功能器件來設計適合于家庭的低價位、高可靠性的智能型安全防盜報警系統(tǒng)。而STC89C51單片機作為原單片機技術的基礎上增加了外設資源,因其內(nèi)部集成了RC振蕩器和max810的復位電路,所以不需要外部晶振和復位電路即可穩(wěn)定工作,節(jié)省了外部晶振元件,所以本文選用STC89C51單片機[1-3]。本設計在報警上使用了熱釋電紅外傳感器,相比起目前,市面上主要以壓力觸發(fā)、開關觸發(fā)、遮光觸發(fā)等方式進行報警。紅外線有著更強的隱蔽性和保密性,所以紅外傳感器的種種優(yōu)點能夠在防盜、警戒等安保裝置中都得到普遍的運用。熱釋電紅外傳感器[4-5]能以非接觸模式檢測出人體輻射的紅外線,并利用傳感器內(nèi)部的裝換電路和放大電路將光信號轉(zhuǎn)變?yōu)殡妷盒盘?。由其制作的防盜器可隱蔽安裝,不易被盜竊者發(fā)現(xiàn)。此外,熱釋電紅外傳感器的信號,經(jīng)過單片機系統(tǒng)的處理后,可以與計算機通信,實現(xiàn)多用戶管理。
本設計可以滿足現(xiàn)代家庭住宅防盜的需求,相比起以前的防盜器,在工作性能和穩(wěn)定性、可靠性方面進行了很大的改進,不容易發(fā)生誤報現(xiàn)象,并且安全性和和可靠性更高。
本系統(tǒng)采用了模塊化的設計,信號采集端使用的熱釋電紅外報警器可以快速、準確地檢測到室內(nèi)的人員入侵狀態(tài),并且可以及時報告給中央控制器。然后利用系統(tǒng)的聲光報警器進行報警,并通過GSM短信模塊[6-8]向指定用戶手機發(fā)送報警短信。本設計圍繞STC89C51單片機為中心,共包括熱釋電紅外檢測模塊、聲光報警模塊、GSM短信模塊等3個硬件模塊和相應的電路。本次設計需要滿足以下幾則要求:
(1)能夠在發(fā)生入室盜竊時進行檢測并報警,同時需要有一定程度的隱蔽性。
(2)在檢測到有異?,F(xiàn)象時自動發(fā)送短信到用戶手機。
(3)系統(tǒng)能進行開機與關機。
(4)系統(tǒng)的設計要考慮廣大消費者的利益,性能好,使用壽命長等。
本次設計可以分成前端信號采集,單片機進行信號處理,GSM模塊與聲光報警電路進行報警輸出幾個部分?;趩纹瑱C的家庭防盜報警系統(tǒng)組成如圖1所示。
圖1 基于防盜報警系統(tǒng)結(jié)構(gòu)圖
本次設計的單片機系統(tǒng)的工作原理是讓紅外傳感器將檢測到的紅外光信號變化成電信號,利用傳感器的電信號處理電路將微弱的電信號進行放大濾波后從輸出端輸出一個高電平。再將該高電平報警信號利用轉(zhuǎn)換電路把高電平轉(zhuǎn)換成低電平后輸入給單片機。然后進行程序檢測,引腳發(fā)出驅(qū)動控制信號,如出現(xiàn)異常會自動發(fā)送信息給指定用戶,從而完成報警操作。
本系統(tǒng)的方案設計可以劃分成硬件和軟件兩個部分。在本次設計中以單片機作為應用系統(tǒng)的控制核心。根據(jù)整個單片機系統(tǒng)的設計思路可知系統(tǒng)主要分成信號采集端,單片機控制器和具體的報警功能實現(xiàn)模塊組成。本次設計中我們選用了熱釋電紅外傳感器作為系統(tǒng)的信號采集端,選用了STC89C51單片機作為控制核心,選用了GSM短信模塊和聲光報警模塊來實現(xiàn)具體的報警功能,采用單片機內(nèi)部的編程程序進行相關的模塊控制。根據(jù)系統(tǒng)的設計思路和設計方案的要求,本次設計的單片機系統(tǒng)需要包括以下幾個部分:被動式熱釋電紅外傳感器、聲光報警電路、電信號放大處理電路和單片機最小系統(tǒng)以及相關的GSM模塊。圖2是本次設計中系統(tǒng)的結(jié)構(gòu)框圖。
圖2 總體設計框圖
本系統(tǒng)采用的單片機為STC89C51單片機,該單片機由中央處理器(CPU)、存儲器和I/O連接器組成。單片機作為設計的主要部件之一,對整個設計至關重要,它作為程序驅(qū)動程序來實現(xiàn)所有的功能,使電路協(xié)調(diào)工作。STC89C51單片機具有功耗低、性能高的特點,還可以作為內(nèi)存使用。STC89C51單片機采用經(jīng)典的MCS-51內(nèi)核,與MCS-51產(chǎn)品的指令系統(tǒng)兼容,芯片上集成了4 kB的內(nèi)存,可以進行重復編程或刪除操作1 000次以上。STC89C51單片機不僅具有原有單片機的所有基本功能,而且具有集成度高、速度快、能耗低、體積小等特點,還包含時鐘電路和復位電路。這種新型的單片機功能非常強大,可以用于各種用途。單片機上的C語言程序與周圍的電路模塊可以形成一個多功能、智能化的系統(tǒng),使我們的生活更加方便。STC89C51單片機的引腳結(jié)構(gòu)如圖3所示。
圖3 STC89C51單片機的引腳結(jié)構(gòu)
2.3.1 熱釋電紅外電傳感器
熱釋電紅外傳感器可以用來直接探測到目標物體散發(fā)的紅外線并將紅外信號轉(zhuǎn)變?yōu)殡妷盒盘栞敵?。熱釋電紅外傳感器HC-SR501采用德國進口LHI778探頭設計,用來檢測住所附近是否有人。微處理器在熱釋電紅外傳感器中采用微波多普勒效應、光譜分析和光子檢測技術,通過智能分析、定量計算,準確地對人體的遠紅外光譜和人體行走的多普勒頻移進行分析。微波、紅外、微處理器等綜合檢測分析技術,能夠準確地對人體的運動進行報警。信號處理模塊由放大器和濾波電路組成,用于對信號進行放大和濾波,發(fā)送有效的報警信息。傳感器更穩(wěn)定,能更有效地防止誤報。
熱釋電紅外傳感器的工作原理:自發(fā)極化的鐵電體在無擾動狀態(tài)的電平衡狀態(tài)下通過吸收空氣中的游離電荷來維持平衡。當鐵電體在經(jīng)過紅外輻射而使得溫度升高時,鐵電體內(nèi)部的電荷平衡狀態(tài)因為溫度的升高而遭到破壞,為了使鐵電體內(nèi)部的電荷狀態(tài)達到新的平衡,鐵電體需要釋放一些電荷來,這種現(xiàn)象就是電介質(zhì)的熱釋電效應。熱釋電紅外傳感器的輸出端輸出的高電平電信號就是利用鐵電體在熱釋電效應過程中釋放的電荷通過一系列的濾波放大形成的。紅外傳感工作電路圖如圖4所示。
圖4 紅外傳感工作電路圖
2.3.2 人體感應模塊
本次設計選用這款人體感應模塊是因為相比起普通的熱釋電紅外傳感器,這款設備的感應靈敏度是可調(diào)節(jié)的。在進行系統(tǒng)功能調(diào)試的過程中,可調(diào)節(jié)的靈敏度可以避免發(fā)生靈敏度過高或過低時給系統(tǒng)功能調(diào)試帶來干擾的情況。這款人體感應模塊具有3個金屬引腳,其中電源供電端口接單片機系統(tǒng)的電源供電模塊為模塊提供穩(wěn)定的工作電壓;接地端可以與單片機的GND端口一起接地;所以被大量應用在電器設備當中,尤其在使用干電池作為電源的電子產(chǎn)品中應用的最為普遍。HC-SR501的實物圖如圖5所示。
圖5 HC-SR501人體感應模塊實物圖
整個系統(tǒng)一共由硬件以及軟件兩部分構(gòu)成。這個系統(tǒng)設計的核心部分是STC89C51單片機,同樣的也是由硬件以及軟件系統(tǒng)組成。其中單片機、I/O設備[9-10]、應用電路組成了硬件系統(tǒng),程序的編碼設計又稱為軟件系統(tǒng)。根據(jù)以上所述,完成總體方案、硬件系統(tǒng)與軟件系統(tǒng)這些模塊的設計,系統(tǒng)開發(fā)自然也就自然完成了。
此系統(tǒng)的單片機硬件系統(tǒng)內(nèi)部結(jié)構(gòu)一共分為如下幾塊,其中每個部分相互間通過單片機中相關的控制管理程序進行控制。具體的單片機系統(tǒng)構(gòu)成框圖如圖6總體設計框圖所示。
圖6 總體設計框圖
本設計采用模塊化設計,單片機主程序首先進行單片機系統(tǒng)的各個部分進行初始化設置。然后熱釋電紅外傳感器檢測是否有人入侵,當熱釋電紅外傳感器將檢測到有人入侵的信號發(fā)送給單片機時,單片機控制聲光報警電路進行聲光報警,驅(qū)動GSM模塊向用戶發(fā)送報警短消息。主程序流程如圖7所示。
圖7 主程序流程
本主程序?qū)崿F(xiàn)的功能是:當外部的被動式熱釋電紅外傳感器檢測到有人入侵時,傳感器將控制信號發(fā)送給單片機,單片機驅(qū)動報警電路進行聲光報警,同時用戶發(fā)送報警短信,其中撤防按鍵可以解除聲光報警。圖8是中斷服務程序的流程圖。
圖8 中斷程序服務流程圖
單片機控制程序可以利用AT指令集控制向GSM模塊向用戶發(fā)送短信,AT指令集利用GSM模塊設置用戶收到的短信格式和短信的內(nèi)容。圖9是GSM短信子程序的程序流程圖。
圖9 GSM短信子程序流程圖
GSM模塊通過UART串口與協(xié)調(diào)器節(jié)點直接連接,實現(xiàn)實時報警功能。這就要求GSM模塊的配置部分應該在協(xié)調(diào)節(jié)點程序中編寫,協(xié)調(diào)節(jié)點程序是處理傳感器節(jié)點信息的信息處理函數(shù)SampleApp_MessageMSGCB。在這個函數(shù)中,信息從ASCII碼轉(zhuǎn)換為十六進制。只有在每條消息的末尾加上0x0A、0x0D,才能成功配置GSM模塊。為了方便查看和避免錯誤,最終選擇了代碼轉(zhuǎn)換。協(xié)調(diào)節(jié)點收到報警信息后,由于不需要使用冗余,直接使用HalUARTWrite函數(shù)進行串行輸出。類似地,HalLedSet函數(shù)可以簡單地打開和關閉Led1燈。本設計主要包括三個部分,一個是GSM配置信息,主要是設置目標手機號碼,并將信息轉(zhuǎn)換為手機短信等短信。代碼如下:
uint8 TC_ZZZXH[13]=
{0x41,0x54,0x2B,0x41,0x55,0x54,0x4F,0x3D,0x
4E,0x4F,0x0D,0x0A,0x0D};
//設置本地移動中心號碼
uint8 TC_ZXH[12]=
{0x41,0x54,0x2B,0x43,0x4D,0x47,0x46,0x3D,0x
31,0x0D,0x0A,0x0D};
//將文本消息格式設置為text{"AT+CMGF=1"};
uint8 TC_MDSJ[27]={0x41,0x54,0x2B,0x43,0x4D,0x47,0x53,0x3D,0x22,0x2B,0x38,0x36,0x31,0x35,0x31,0x36,0x31,0x31,0x31,0x36,0x31,0x37,0x37,0x22,0x0D,0x0A,0x0D};
{"AT+CMGS=”+86153910000000;
//設定目標手機號碼
uint8 TC_FSNRa[10]={0x61,0x6E,0x6F,0x72,0x74,0x68,0x0D,0x0A,0x1A};
uint8
TC_FSNRb[8]={0x62,0x65,0x61,0x73,0x74,0x0D,0x0A,0x1A};
二是增加延時程序,防止程序向GSM模塊發(fā)送信息過于頻繁,造成資源浪費和硬件故障。代碼如下:
void send(uint8*tab) //延遲過程
{unsigned long x,y,z;
for(x = 60000000; x> 0; x--)
for(y = 60000000; y > 0; y--);
for(z = 60000000; z > 0; z--);
HalUARTWrite(0,tab,sizeof(tab));
}
三是協(xié)調(diào)節(jié)點,處理來自傳感器節(jié)點的報警信息,代碼如下:
void SampleApp_MessageMSGCB(afIncomingMSGPacket_t *pkt )// 信息處理功能
{ .....
switch ( pkt->clusterId )
{case
SAMPLEAPP_PERIODIC_CLUSTERID:
osal_memcpy(hongwai,pkt-
>cmd.Data,1);//pkt->cmd.data應用層是數(shù)據(jù)
if(hongwai[0] == '1')// 位置1
{ flag = 1;
HalLedSet (HAL_LED_1,
HAL_LED_MODE_ON);// 設置LED_1亮
P1_3=1;
}
else if(hongwai[0] == '0')
{ ......
}
if((flag == 1) && (flag1 == 0) ))// 若有人靠近位置1,則位置1燈亮
{ //串行輸出配置信息,通過UART的協(xié)調(diào)直接傳輸?shù)紾SM模塊。GSM模塊完成配置和短信發(fā)送
HalUARTWrite(0,TC_ZZZXH,13);
HalUARTWrite(0,TC_ZXH,12);
HalUARTWrite(0,TC_MDSJ,27);
HalUARTWrite(0,TC_FSNRa,10);
flag1 = 1;
}
if((flag == 2) && (flag1 == 0) )// 若有人靠近位置2,則位置2燈亮
……
case SAMPLEAPP_FLASH_CLUSTERID:
flashTime=BUILD_UINT16(pkt->cmd.Data[1], pkt->cmd.Data[2] );
HalLedBlink( HAL_LED_4, 4, 50,(flashTime / 4) );
break;
}
}
傳感器節(jié)點的任務是在檢測到有陌生人靠近時向協(xié)調(diào)器設備發(fā)送警報。傳感器節(jié)點還可以檢測不同位置的參數(shù)信息。傳感器節(jié)點在設備通電后,完成系統(tǒng)的初始化,然后掃描通道,連接到相應的網(wǎng)絡,并將其網(wǎng)絡地址發(fā)送給協(xié)調(diào)器設備。傳感器節(jié)點定期對任務進行輪詢,以檢查是否有命令獲取參數(shù)。如果有,則啟動設備的A/D轉(zhuǎn)換模塊,數(shù)據(jù)被發(fā)送到協(xié)調(diào)器設備。如果沒有,請繼續(xù)收聽頻道。傳感器節(jié)點監(jiān)控報警代碼如下:
void SampleApp_SendPeriodicMessage(void) / /發(fā)送周期函數(shù)
{if(P0_5 == 0) //紅外傳感器在無人時探測事件
{//將數(shù)據(jù)從應用層發(fā)送到網(wǎng)絡層,然后發(fā)送到MAC,再通過AF_DataRequest發(fā)送到物理層;沒有事件表示為零
HalLedSet(HAL_LED_1,
HAL_LED_MODE_OFF);//把LED1燈關掉
AF_DataRequest(&SampleApp_Periodic_DstAddr,&SampleApp_epDesc,SAMPLEAPP_PERIODIC_CLUSTERID,1,"0",&SampleApp_TransID,AF_DISCV_ROUTE, AF_DEFAULT_RADIUS );}
else //紅外傳感器在有人的時候探測事件
{HalLedSet (HAL_LED_1//打開LED1燈
{HalLedSet(HAL_LED_1,
HAL_LED_MODE_ON);
AF_DataRequest(&SampleApp_Periodic_DstAddr,&SampleApp_epDesc,SAMPLEAPP_PERIODIC_CLUSTERID,1,"1",&SampleApp_TransID,AF_DISCV_ROUTE,AF_DEFAULT_RADIUS); }
}
在設計完成電路原理圖并根據(jù)原路原理圖完成印制電路板設計后,需要根據(jù)印制電路板[11-12]手工焊接各種系統(tǒng)元件。調(diào)試的目的是排除在焊接過程可能發(fā)生的焊接錯誤,確保硬件連接正確,確保每個接口都是正確可靠的。
檢查系統(tǒng)的電源模塊能否正常通電,檢查系統(tǒng)的復位電路是否能夠使系統(tǒng)正常復位。檢查各個模塊電阻電容等元器件的正負引腳是否焊接正確等。
當按下布防按鍵后進入布防狀態(tài),綠燈閃爍20 s后,熱釋電模塊[13-15]開始檢測紅外信號,綠燈變?yōu)槌A痢.斚到y(tǒng)在通電后按下緊急報警按鍵時,GSM模塊向用戶手機發(fā)送報警短信,此時聲光報警不工作。
本系統(tǒng)設計研究的是一種基于單片機的防盜報警系統(tǒng),簡要介紹了相關的軟硬件的設計,最后對整個系統(tǒng)進行了功能測試,該防盜報警系統(tǒng)通過以STC89C51單片機為運算處理核心,用熱釋電紅外傳感器和GSM短信模塊組成基本功能模塊,熱釋電紅外傳感器發(fā)出的電平信號經(jīng)過放大電路放大后通過三極管轉(zhuǎn)換電路將低電平信號輸送給單片機管腳,單片機利用系統(tǒng)軟件進行編譯處理后通過輸出口發(fā)送報警控制信號,控制系統(tǒng)的聲光報警電路和GSM短信模塊發(fā)出聲光報警并且向用戶發(fā)送短信實現(xiàn)防盜報警功能。