基于STM32的GSM短信報(bào)警系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
隨著我國(guó)經(jīng)濟(jì)建設(shè)的迅速發(fā)展和人民群眾生活水平的極大提高,人們?cè)絹?lái)越注重自身所處的環(huán)境是否安全。特別是當(dāng)家中無(wú)人或者僅有老人孩子時(shí),家庭成員的生命和財(cái)產(chǎn)的安全性越來(lái)越受到重視。因此,家庭防盜已成為一個(gè)重要的社會(huì)問(wèn)題。目前,許多住宅小區(qū)的安防主要依靠傳統(tǒng)的機(jī)械式(防盜網(wǎng)、防盜窗)防盜系統(tǒng)。這樣不僅有礙美觀(guān),不符合火災(zāi)逃生的要求,而且不能有效地防止壞人的侵入。隨著電子技術(shù)的飛速發(fā)展,防盜報(bào)警系統(tǒng)已迫切從原來(lái)的簡(jiǎn)單化、局部化向智能化、集成化發(fā)展。當(dāng)前,GSM短信息服務(wù)已作為GSM網(wǎng)絡(luò)的一種基本業(yè)務(wù),基于GSM短信模塊與單片機(jī)相連接應(yīng)用于家庭無(wú)線(xiàn)防盜報(bào)警系統(tǒng)中,讓家庭防盜更及時(shí)、更方便,以最直觀(guān)的中文短消息形式,直接把案發(fā)地點(diǎn)的情況反映到用戶(hù)的手機(jī)屏幕上。同時(shí)采用一種熱釋電紅外傳感器進(jìn)行檢測(cè),變有形的傳統(tǒng)防盜網(wǎng)防盜窗為無(wú)形的監(jiān)控,給家庭防盜提供最直觀(guān)、高效、可靠的保障。
1 系統(tǒng)的總體設(shè)計(jì)及工作原理
GSM短信報(bào)警系統(tǒng)設(shè)計(jì)框圖如圖1所示。整個(gè)系統(tǒng)[1]由STM32單片機(jī)模塊、熱釋電傳感器模塊、GSM模塊及傳統(tǒng)揚(yáng)聲器模塊組成。GSM模塊采用芯訊通(SIMCom)公司生產(chǎn)的SIM900A芯片及外圍設(shè)計(jì)電路,而熱釋電傳感器模塊采用紅外專(zhuān)用芯片BISS0001的設(shè)計(jì)電路。首先當(dāng)熱釋電傳感器模塊檢測(cè)到人發(fā)射的紅外線(xiàn)時(shí),通過(guò)其外圍放大電路轉(zhuǎn)換成電壓信號(hào)傳輸給STM32單片機(jī)。單片機(jī)判斷熱釋電傳感器模塊送來(lái)的數(shù)據(jù),通過(guò)串口發(fā)送一個(gè)高電平給GSM模塊,使GSM模塊發(fā)送短信到設(shè)定的手機(jī)號(hào)碼,及時(shí)通知主人家里出現(xiàn)了什么情況,
同時(shí)使揚(yáng)聲器發(fā)聲報(bào)警,從而實(shí)現(xiàn)系統(tǒng)的預(yù)想功能。然而白天當(dāng)主人在家的時(shí)候,則不需要設(shè)定防盜功能,
可以關(guān)閉功能;假如主人要離開(kāi)房屋或夜間睡眠時(shí),則需要打開(kāi)防護(hù)功能。這些 “設(shè)防”、“撤防”的功能,同樣可以通過(guò)手機(jī)發(fā)送特定短信至GSM模塊的方式進(jìn)行開(kāi)啟和關(guān)閉,熱釋電傳感器檢測(cè)會(huì)隨之起作用,以免引起不必要的麻煩和誤報(bào)。
圖1 系統(tǒng)總體框圖
2 系統(tǒng)硬件電路設(shè)計(jì)
2.1 STM32F103 最小系統(tǒng)
STM32系列單片機(jī)[2]由ST公司生產(chǎn)的專(zhuān)為要求高性能、低成本、低功耗的嵌入式應(yīng)用設(shè)計(jì)的ARM Cortex-M3內(nèi)核。本系統(tǒng)采用的STM32屬于互聯(lián)型產(chǎn)品,具有以下標(biāo)準(zhǔn)功能:72MHZ主頻,56k字節(jié)Flash,64字節(jié)SRAM,2個(gè)看門(mén)狗,多個(gè)16 位定時(shí)器,80%的引腳可以作為通用I/O 口,以及USART、SPI等通信外設(shè),其外設(shè)完全滿(mǎn)足本系統(tǒng)的功能要求。因此,本系統(tǒng)采用STM32F103作為總控制器,其最小系統(tǒng)如圖2所示。
本系統(tǒng)采用4線(xiàn)JTAG接口,即TMS(測(cè)試模式選擇)、TCK(測(cè)試時(shí)鐘)、TDI(測(cè)試數(shù)據(jù)輸入)、TDO(測(cè)試數(shù)據(jù)輸出),又采用常規(guī)的20pin接口方式,通過(guò)仿真器與PC機(jī)連接,可以實(shí)現(xiàn)在線(xiàn)仿真調(diào)試,方便可靠。系統(tǒng)采用8MHZ晶體振蕩器,此時(shí)需要接負(fù)載電路。另外,復(fù)位電路的設(shè)計(jì)方式簡(jiǎn)潔,可以實(shí)現(xiàn)系統(tǒng)可靠復(fù)位。
圖2 STM32F103RBT6 最小系統(tǒng)
2.2 GSM 模塊
GSM模塊[3]用芯訊通(SIMCom)公司生產(chǎn)的SIM900A,是一款尺寸緊湊的GSM/GPRS模塊,采用SMT封裝,基于STE的單芯片案,采用ARM926EJ-S架構(gòu),性能強(qiáng)大,支持AT指令。
利用STM32的串口來(lái)控制GSM MODEM,單片機(jī)與GSM模塊一般采用串行異步通信接口, 通信速度可設(shè)定,通常為19200bps。GSM MODEM與單片機(jī)之間采用串口通信的方式,MODEM的TXD、RXD分別為發(fā)送、接收端,與單片機(jī)的PA10、PA9連接,組成串口通信。GSM模塊通過(guò)把PWRKEY信號(hào)拉低一段時(shí)間然后釋放來(lái)開(kāi)機(jī)。當(dāng)模塊開(kāi)機(jī)后就可以發(fā)送AT命令來(lái)控制模塊,用戶(hù)可以通過(guò)“AT+IPR=x”設(shè)置波特率并把參數(shù)保存。一旦配置為固定波特率,當(dāng)模塊開(kāi)機(jī)時(shí)將會(huì)從串口收到字符“RDY”。這些字符在自動(dòng)波特率激活的情況下無(wú)法顯示。同樣,可以通過(guò)把PWRKEY 信號(hào)拉低一段時(shí)間然后釋放來(lái)關(guān)機(jī)。或者使用AT命令“AT+CPOWD=1”關(guān)閉模塊。該命令使模塊從網(wǎng)絡(luò)上注銷(xiāo),讓軟件進(jìn)入安全狀態(tài),保存有用數(shù)據(jù),讓然后完全斷開(kāi)供電。在關(guān)機(jī)前,模塊串口將自動(dòng)發(fā)送下列字符串“NORMAL POWER DOWN”,這之后將不能執(zhí)行AT命令。模塊進(jìn)入掉電模式,僅僅RTC處于激活狀態(tài)。掉電模式可以通過(guò)STATUS引腳來(lái)檢測(cè),在掉電模式下此引腳輸出為低電平。GSM主模塊(包括SIM部分)如圖3所示。
圖3 GSM 主模塊(包括SIM 部分)
2.3 熱釋電傳感器模塊
熱釋電傳感器模塊[4]括熱釋電傳感器及外圍放大電路,當(dāng)有人進(jìn)入傳感器所能檢測(cè)到的范圍時(shí),傳感器檢測(cè)到能量變化,轉(zhuǎn)換成微弱的電信號(hào),然后通過(guò)外圍放大電路放大并轉(zhuǎn)換成電壓信號(hào)傳輸給單片機(jī)。其作用原理如下:人體都有恒定的體溫,一般在37度,所以會(huì)發(fā)出特定波長(zhǎng)10um左右的紅外線(xiàn),被動(dòng)式紅外探頭就是靠探測(cè)人體發(fā)射的10um左右的紅外線(xiàn)而進(jìn)行工作的。人體發(fā)射的10um左右的紅外線(xiàn)通過(guò)菲泥爾濾光片增強(qiáng)后聚集到紅外感應(yīng)源上。由實(shí)驗(yàn)證明,傳感器不加菲涅爾透鏡,其檢測(cè)距離小于2m,而加上菲涅爾透鏡后,其檢測(cè)距離可增加到10m左右。紅外感應(yīng)源通常采用熱釋電元件,這種元件在接收到人體紅外輻射溫度發(fā)生變化時(shí)就會(huì)失去電荷平衡,向外釋放電荷,經(jīng)后續(xù)電路檢測(cè)處理后就能產(chǎn)生電信號(hào)發(fā)送給單片機(jī)處理。
熱釋電BISS0001模塊的原理圖如圖4所示。圖中,運(yùn)算放大器OP1(芯片內(nèi)部)將熱釋電紅外傳感器的輸出信號(hào)作第一級(jí)放大,然后由C104耦合給運(yùn)算放大器OP2(芯片內(nèi)部)進(jìn)行第二級(jí)放大,再經(jīng)由電壓比較器COP1和COP2構(gòu)成的雙向鑒幅器處理后,檢出有效觸發(fā)信號(hào)Vs去啟動(dòng)延遲時(shí)間定時(shí)器,輸出信號(hào)Vo經(jīng)晶體管T1放大驅(qū)動(dòng)繼電器去接通負(fù)載。CDS1為光敏電阻,用來(lái)檢測(cè)環(huán)境照度。當(dāng)作為照明控制時(shí),若環(huán)境較明亮,CDS1的電阻值會(huì)降低,使9腳的輸入保持為低電平,從而封鎖觸發(fā)信號(hào)Vs。JP1是工作方式選擇開(kāi)關(guān),當(dāng)JP1跳線(xiàn)帽跳2、3口時(shí),與1端連通,芯片處于不可重復(fù)觸發(fā)工作方式,這種工作方式下即使檢測(cè)區(qū)域有人活動(dòng)模塊也會(huì)自動(dòng)停止輸出一段時(shí)間(封鎖延時(shí))然后再檢測(cè),這種工作方式一般習(xí)慣稱(chēng)為脈沖輸出;當(dāng)JP1跳線(xiàn)帽跳1、2口時(shí),與2端連通,芯片則處于可重復(fù)觸發(fā)工作方式,只要檢測(cè)區(qū)域有人模塊就一直有輸出,這種模式一般稱(chēng)為電平輸出。另外,輸出延遲時(shí)間T x由外部的R33和CY2的大小調(diào)整,觸發(fā)封鎖時(shí)間Ti由外部的R13和CY1的大小調(diào)整。模塊采用低功耗穩(wěn)壓器件7133A-1,可以保證在很寬的輸入電壓下穩(wěn)定提供3.3V的工作電壓,確保模塊能正常工作。
圖4 熱釋電模塊原理圖
2.4 電源
電源模塊分兩部分:?jiǎn)纹瑱C(jī)供電模塊和GSM供電模塊。單片機(jī)電源采用典型的電源設(shè)計(jì)方案,如圖5所示。其中C9和C10是旁路電容,起到抑制干擾的作用,而C11和C12 是電解電容,起到濾波的作用;一般大電容旁邊并聯(lián)一個(gè)小電容的目的是降低高頻內(nèi)阻,因?yàn)榇蟮碾娊怆娙菀话悴捎镁砝@工藝制造,所以等效電感較大;小電容可以提供一個(gè)小內(nèi)阻的高頻通道,降低電源全頻帶內(nèi)阻。這個(gè)電路在實(shí)際中比較常見(jiàn)。
圖5 電源部分電路
而SIM900A模塊電源采用VBAT為3.4V到4.5V的單電源供電,由于和單片機(jī)工作電壓不同,由單獨(dú)電源模塊供電,如圖6所示。VBAT端輸出電壓4.2V給GSM模塊使用。
圖6 GSM 模塊的電源
2.5 揚(yáng)聲器
揚(yáng)聲器部分主要包括一個(gè)繼電器,當(dāng)單片機(jī)相應(yīng)端口置為高電平時(shí),驅(qū)動(dòng)繼電器,使得揚(yáng)聲器電路接通,發(fā)出聲響以起到報(bào)警作用。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 AT 指令
AT指令集是從TEC(Terminal Equipment)或DTE (DataTerminal Equipment)向TA (Terminal Adapter)或DCE (DataCircuit Terminating Equipment發(fā)送的通過(guò)TATE發(fā)送AT命令來(lái)控制MS (Mobile Station)的功能與GSM網(wǎng)絡(luò)業(yè)務(wù)進(jìn)行交互,用戶(hù)可以通過(guò)AT命令進(jìn)行呼叫短信電話(huà)本數(shù)據(jù)業(yè)務(wù)補(bǔ)充業(yè)務(wù)傳真等方面的控制。下面是一些短消息相關(guān)的常用AT指令:
目前,發(fā)送短消息常用Text和PDU(Protocol Data Unit,協(xié)議數(shù)據(jù)單元)模式。使用Text模式收發(fā)短信代碼簡(jiǎn)單,實(shí)現(xiàn)起來(lái)十分容易,但最大的缺點(diǎn)是不能收發(fā)中文短信;而PDU模式不僅支持中文短信,也能發(fā)送英文短信。所以此處使用PDU模式來(lái)收發(fā)短信。PDU模式收發(fā)短信可以使用3種編碼:7-bit、8-bit和UCS2編碼。7-bit編碼用于發(fā)送普通的ASCII字符,8-bit 編碼通常用于發(fā)送數(shù)據(jù)消息, UCS2 編碼用于發(fā)送Unicode字符。該模塊集射頻電路和基帶于一體,提供標(biāo)準(zhǔn)的AT命令接口,為數(shù)據(jù)、語(yǔ)音、短消息和傳真提供快速、可靠、安全的傳輸。
首先使用命令“AT + CMGF = 0<CR><LF>”來(lái)選擇PDU模式,比如SMSC(短信中心)號(hào)碼是+8613800471500,對(duì)方號(hào)碼是13656639676,消息內(nèi)容是:“你好”。則手機(jī)發(fā)送的PDU串是
08 91 68 31 08 40 17 05 F0 11 000D 91 68 31 49 17 87 90 F6 00 08 00 06 4F60597D0021。
3.2 系統(tǒng)程序主流程圖
系統(tǒng)程序主流程圖如圖7所示,系統(tǒng)先初始化,然后檢測(cè)是否設(shè)防。因?yàn)閱纹瑱C(jī)利用AT指令控制GSM模塊,將數(shù)據(jù)傳送出去。AT指令按照GSM模塊支持的AT指令格式書(shū)寫(xiě),通過(guò)單片機(jī)的串口發(fā)送出去。所以此模塊的“設(shè)防”,“撤防”則可以通過(guò)以下方式:如果模塊被命令“AT+CFUN=0”設(shè)置成最小功能模式, 則關(guān)閉射頻功能和SIM卡的功能,在這種情況下,串口仍然可以繼續(xù)使用,但是和射頻功能及SIM卡功能相關(guān)的AT命令不能使用。此時(shí)為撤防狀態(tài)。當(dāng)模塊通過(guò)“AT+CFUN=0”設(shè)置為最小功能,模塊可以通過(guò)“AT+CFUN=1”命令返回全功能模式。此時(shí)為設(shè)防狀態(tài)。一旦“設(shè)防”之后,系統(tǒng)正常工作。如果單片機(jī)通過(guò)熱釋電模塊檢測(cè)到有人進(jìn)入,馬上通過(guò)串口發(fā)送一個(gè)高電平到GSM模塊,使模塊發(fā)送短信給主人,同時(shí)揚(yáng)聲器發(fā)聲報(bào)警。
圖7 系統(tǒng)程序主流程圖
4 結(jié)束語(yǔ)
該系統(tǒng)有以下特色:由于該系統(tǒng)設(shè)置了具有“設(shè)防”和“撤防”功能,可以避免誤報(bào);同時(shí)系統(tǒng)中揚(yáng)聲器和軟件配合,能迅速而有效地起到報(bào)警作用;另外,借助先進(jìn)穩(wěn)定、成熟高效的GSM 移動(dòng)網(wǎng)絡(luò),使得該報(bào)警系統(tǒng)更具智能化和集成化,報(bào)警方式更顯直觀(guān)性和可靠性;最后可針對(duì)家庭的實(shí)際需要開(kāi)發(fā)其他功能,如添加攝像頭等,使系統(tǒng)更加完善。
總之,由于系統(tǒng)結(jié)構(gòu)設(shè)計(jì)合理,STM32 單片機(jī)與GSM 模塊技術(shù)應(yīng)用到位,功能電路實(shí)現(xiàn)較好,系統(tǒng)性能良好、穩(wěn)定,較好地達(dá)到了家庭防盜要求的各項(xiàng)指標(biāo)。而且該系統(tǒng)成本低、實(shí)用性和可操作性強(qiáng),有著一定的應(yīng)用價(jià)值,能得到廣泛的應(yīng)用和發(fā)展。