【基于STM32單片機(jī)的家庭防盜報(bào)警系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)15000字】_第1頁
【基于STM32單片機(jī)的家庭防盜報(bào)警系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)15000字】_第2頁
【基于STM32單片機(jī)的家庭防盜報(bào)警系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)15000字】_第3頁
【基于STM32單片機(jī)的家庭防盜報(bào)警系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)15000字】_第4頁
【基于STM32單片機(jī)的家庭防盜報(bào)警系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)15000字】_第5頁
已閱讀5頁,還剩48頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于STM32單片機(jī)的家庭防盜報(bào)警系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 3 31.1.1STM32系列的現(xiàn)狀和發(fā)展 3 3 4 41.3設(shè)計(jì)目標(biāo)、采取的方案及寫作安排 5 51.3.2本次設(shè)計(jì)采取的方案 51.3.3本次的寫作安排 52需求分析 72.1用戶需求 72.1.1技術(shù)可行性分析 72.1.2操作可行性分析 72.1.3經(jīng)濟(jì)可行性分析 72.2運(yùn)行環(huán)境 72.3系統(tǒng)功能需求 82.3.1硬件控制 82.3.2紅外檢測(cè) 82.3.3用戶接收警報(bào) 82.3.4電源模塊 82.3.5輸入模塊 92.3.6輸出模塊 9 3.2系統(tǒng)硬件原理圖 13.3STM32F103C8T6單片機(jī)概述 3.4按鍵控制電路 3.5電源電路 3.6蜂鳴器報(bào)警電路 3.7SIM800L模塊電路 3.8人體紅外電路 4軟件系統(tǒng)設(shè)計(jì) 4.1系統(tǒng)軟件的整體框架設(shè)計(jì) 4.2單個(gè)模塊流程 234.2.1串□初始化流程圖 4.2.2按鍵子程序 4.2.3報(bào)警流程圖 4.2.4短信模塊流程圖 4.3關(guān)鍵模塊的詳細(xì)設(shè)計(jì) 264.3.1人體紅外模塊軟件設(shè)計(jì) 4.3.2串□模塊軟件設(shè)計(jì) 4.3.3GSM模塊軟件設(shè)計(jì) 4.4.4蜂鳴器和指示燈的配置 4.4.5主函數(shù)控制 5運(yùn)行與實(shí)現(xiàn) 5.1開發(fā)板的設(shè)計(jì) 5.2系統(tǒng)的運(yùn)行 5.2.1創(chuàng)建項(xiàng)目工程 5.2.2下載程序 35.2.3系統(tǒng)的最終實(shí)現(xiàn) 1.1系統(tǒng)的選題背景、現(xiàn)狀及發(fā)展趨勢(shì)成不可避免的損失。除此以外,在外觀上,妨礙了大眾的審美。針對(duì)于這些缺1.1.1STM32系列的現(xiàn)狀和發(fā)展公司推出。就目前的就業(yè)方向上看,從事單片機(jī)STM32的工作,市面上工資比較可以用在許多相對(duì)簡(jiǎn)單功能小的電子產(chǎn)品上,市場(chǎng)需求廣泛。根據(jù)ST公司最新發(fā)(1)愈加全面親民的價(jià)格;(2)保護(hù)產(chǎn)品的安全性;(3)高性能地模擬外設(shè);(4)硬件加速;(5)實(shí)現(xiàn)2D圖形加速;1.1.2GSM短信的現(xiàn)狀和發(fā)展上世紀(jì)末,我國(guó)開始使用GSM,主要采用GSM900和GSM1800不同頻率的兩分支持三頻自由切換,這些國(guó)家可以另外使用GSM1900頻段的系統(tǒng),準(zhǔn)將會(huì)不斷的升級(jí)來完善GSM,同時(shí),國(guó)外對(duì)于陸地移動(dòng)衛(wèi)星系統(tǒng),即LMSS和GSM的結(jié)合方面也在進(jìn)行一系列的研究。未來組化和綜合化幾個(gè)方向發(fā)展2。在未來會(huì)朝著向全世界沒有妨礙的移動(dòng)自由通信的機(jī)會(huì)。從2011年熱釋電消費(fèi)0.96億,到2017年消費(fèi)3.15億,我國(guó)熱釋電傳感器消費(fèi)趨勢(shì)逐年上漲,2017年,我國(guó)的熱釋電達(dá)到5.22億的市場(chǎng)規(guī)模,預(yù)計(jì)2024年將達(dá)到15.99億元的市場(chǎng)規(guī)模。隨著社會(huì)智能化的趨勢(shì),熱釋電的需求將會(huì)在“智是采用熱釋電紅外傳感器模塊作為檢測(cè)員,由STM32單片體發(fā)出的紅外輻射信號(hào),并用處理結(jié)果控制報(bào)警電路。當(dāng)前市面上,GSM已經(jīng)被1.3設(shè)計(jì)目標(biāo)、采取的方案及寫作安排本課題主要研究基于STM32和GSM的報(bào)警系統(tǒng)。在單片機(jī)選擇上,與傳統(tǒng)的AT89C52芯片相比,本次采用了功能更加強(qiáng)大的STM32F103單片機(jī)。這種單片機(jī)的集成度高,價(jià)格便宜,功能豐富。它通過I/O□操控連接在單片機(jī)上的外圍設(shè)備,使得編寫起來更加容易。人體紅外傳感器通過人體發(fā)射的紅外光譜感知一定范圍內(nèi)是否有人。當(dāng)檢測(cè)到一個(gè)人的時(shí)候,它會(huì)向單片機(jī)發(fā)送一個(gè)低電平信號(hào)進(jìn)行處理,單片機(jī)上的按鈕決定是否開啟警戒模式。待命模式下,熱釋電紅外傳感器檢測(cè)到有人,單片機(jī)獲取到會(huì)通過SIM800L模塊向設(shè)定的手機(jī)號(hào)碼發(fā)送短信。(1)根據(jù)I/O引腳控制接收檢測(cè)的數(shù)據(jù),使用STM32單片機(jī)進(jìn)行相應(yīng)的處理和響應(yīng),繼而控制輸出。(2)系統(tǒng)的分析設(shè)計(jì),通過系統(tǒng)的分析,決定整個(gè)系統(tǒng)應(yīng)該具有哪些功能,需要哪些模塊,以及這些模塊如何通過引腳連接進(jìn)行關(guān)聯(lián)組合,繼而控制整個(gè)系統(tǒng)穩(wěn)定運(yùn)行。(3)通過對(duì)系統(tǒng)的分析和元器件的價(jià)值,決定所需要的一些元器件,并進(jìn)行購(gòu)買,并且通過系統(tǒng)的電路圖進(jìn)行連接。(4)編寫程序,確保整個(gè)系統(tǒng)能夠正常運(yùn)行。單獨(dú)調(diào)試系統(tǒng)中的各個(gè)模塊,從而確保各個(gè)模塊能夠單獨(dú)的運(yùn)行,繼而根據(jù)系統(tǒng)最初的設(shè)定目標(biāo),整合各個(gè)模塊,達(dá)到系統(tǒng)的預(yù)期效果。(5)最終能夠?qū)崿F(xiàn)實(shí)時(shí)地遠(yuǎn)程接收家庭的異常信息。根據(jù)上述的目標(biāo)和方案分析,本次設(shè)計(jì)寫作的安排如下:(1)開篇點(diǎn)名本次研究的背景,選題及意義,并對(duì)整個(gè)系統(tǒng)的內(nèi)容做簡(jiǎn)單的介紹。(2)第二個(gè)部分主要對(duì)用戶的需求,進(jìn)行再一次的分析,分別從用戶需求、運(yùn)行環(huán)境和系統(tǒng)的功能三個(gè)方面研究。其中,用戶需求主要是從技術(shù)、操作和經(jīng)濟(jì)三個(gè)方面進(jìn)行分析。(3)第三個(gè)部分是經(jīng)過上個(gè)模塊的分析,得到硬件模塊,對(duì)系統(tǒng)的硬件模塊進(jìn)行分類,主要分為上電部分,輸入部分,輸出部分和中心處理四個(gè)部分。通過這個(gè)模塊,主要對(duì)系統(tǒng)的硬件進(jìn)行介紹,以及繪制出系統(tǒng)的原理圖,系統(tǒng)每個(gè)電路部分做出簡(jiǎn)單地介紹和分析。(4)第四個(gè)部分是從軟件,編程的角度分析系統(tǒng)。通過對(duì)每個(gè)硬件的驅(qū)動(dòng)進(jìn)行分析和學(xué)習(xí),用C語言解決整個(gè)系統(tǒng)在運(yùn)行時(shí),如何通過代碼來控制單片機(jī)處理器對(duì)各個(gè)輸入輸出模塊的控制。(5)接下來的部分主要是在系統(tǒng)基本完成的情況下,對(duì)一些功能的測(cè)試,以及一些細(xì)節(jié)上的調(diào)試。(6)最后,對(duì)整個(gè)系統(tǒng)進(jìn)行總結(jié),以及致謝部分。2需求分析式開發(fā)中,常用的開發(fā)也是基于GSM進(jìn)行遠(yuǎn)程傳送實(shí)時(shí)消息,結(jié)合STM32發(fā)過程中需要一些成本,但是這是學(xué)習(xí)和成長(zhǎng)必不可少的一份經(jīng)歷和資料。同時(shí),本次系統(tǒng)采用在Windows上安裝的Keil5開發(fā)工具進(jìn)行軟件開發(fā),元器件和另一方面在手機(jī)的SIM卡中。PCB設(shè)計(jì)工具:AltiumDesig2.3系統(tǒng)功能需求STM32作為系統(tǒng)的硬件控制單元。通過處理器上的自帶的指示燈(PC.13引判斷硬件是否正常初始化,外設(shè)的LED燈用來判斷整個(gè)系統(tǒng)是否已經(jīng)通過按鍵的方式開啟了監(jiān)測(cè)。當(dāng)I/O端口收到異常的信息,會(huì)通過GSM模塊,向指定的手機(jī)用戶發(fā)送短信,并使用蜂鳴器進(jìn)行相應(yīng)的指示,GSM模塊接收到的消息,會(huì)經(jīng)過得到的報(bào)警信息,也是預(yù)先在代碼中設(shè)定的內(nèi)容。其中,報(bào)警使用的GSM為2.3.5輸入模塊這部分主要由傳感檢測(cè)部分和按鍵部分構(gòu)成。傳感檢測(cè)部分使用的是熱釋電紅外,不停地檢測(cè)異常入侵。按鍵包括STM32F103C8T6上的reset復(fù)位按鍵(用于使整個(gè)系統(tǒng)復(fù)位到初始化部分),以及外接的兩個(gè)按鍵設(shè)備,分別用于開啟整個(gè)系統(tǒng)防護(hù)和關(guān)閉保護(hù)。2.3.6輸出模塊本模塊由指示部分和報(bào)警部分組成。報(bào)警部分在前面已經(jīng)講述過,所以在這里STM32F103C8T6芯片上的PC13引腳,用于指示初始化是否正確,另一個(gè)為外設(shè)的LED二極管,主要用來提示出當(dāng)前系統(tǒng)所處于的狀態(tài),方便告知用戶,當(dāng)前系統(tǒng)是否處于保護(hù)模塊,以便誤解系統(tǒng)的狀態(tài),帶來麻煩。3系統(tǒng)硬件設(shè)計(jì)(2)紅外傳感模塊作為檢測(cè)源;(3)按鍵開啟檢測(cè),LED指示燈指示當(dāng)前系統(tǒng)所出的工作狀態(tài);防護(hù)的開關(guān),避免在不必要的時(shí)候進(jìn)行防護(hù)。系統(tǒng)的基本模塊框圖如圖3-1所示。蜂鳴器報(bào)警蜂鳴器報(bào)警GSM發(fā)送報(bào)警短信按鍵設(shè)置人體紅外檢測(cè)時(shí)鐘電路電路開關(guān)復(fù)位電路圖3-1系統(tǒng)設(shè)計(jì)框圖3.2系統(tǒng)硬件原理圖采用STM32F103C8T6單片機(jī),人體熱紅外探測(cè)傳感器通過紅外感應(yīng)效應(yīng)檢測(cè)防控。電源采用5V電源,其硬件電路原理圖如圖3-2所示:圖3-2系統(tǒng)硬件原理圖線,可以用于連接電腦的USB接口或者充電寶,通上5V的供電,還可以通過排線板上的5V或3.3V排線進(jìn)行供電。通過排線上的3.3V,可以直接供電給單片機(jī),但是5V的供電會(huì)經(jīng)過板子背面的穩(wěn)壓芯片LDO,將供電的5V轉(zhuǎn)化為3.3V供電給單片機(jī),MicroUSB接□和這個(gè)5V一樣都需要經(jīng)過LDO轉(zhuǎn)化為3.3V,才能給單片機(jī)供電。排線上的兩個(gè)3.3V引腳是相通的,兩個(gè)GND也是相通的。為了驅(qū)動(dòng)其他外設(shè)模塊,本次設(shè)計(jì)采用的是5V的供電方式。板子上有其中PWR指示燈亮起代表單片即供電正常,PC13指示燈接PC13引腳,通過拉低芯片擁有三個(gè)串□,其中,A9和A10為串□1,A2和A3為串□2,B10和B11為串□3。在使用的過程中,只需要與響應(yīng)的硬件外設(shè)相匹配,并進(jìn)行配置就可以使模塊正常運(yùn)行。B6~B9可用于PWM輸出,可以配置四個(gè)PWM輸出。C13~C15以做一些與時(shí)鐘相關(guān)的內(nèi)容。引腳VB用于后備電源供電。AD采集為12位內(nèi)置板上有SWD接口和串□1兩種方式進(jìn)行下載。二者的區(qū)別在于,SWD可以用于調(diào)試程序,串□1只能下載程序。本次設(shè)計(jì)使用的是SWD下載并調(diào)試程序,通過BOOT選擇0,搭配下載,而串□1進(jìn)行下載的時(shí)候,需要通過BOOT選擇1,STM32F103C8T6核心板的實(shí)物圖如圖3-3所示:MircoUSBMircoUSB接口本次使用的這個(gè)板子系列屬于增強(qiáng)型系列的板子,該STM32系列的內(nèi)核由四部分構(gòu)成,其中其核心為Cortext-M3處理器,在性能上有獨(dú)立的指令和數(shù)據(jù)總線,在復(fù)雜的情況下,可以使用外部的cache,支持大小端模式,還可進(jìn)行調(diào)試等優(yōu)勢(shì)。在核心外部,搭配著擁有著優(yōu)勢(shì)的性能和功耗相對(duì)較低且集成度和創(chuàng)新性比較優(yōu)越的外接設(shè)備。板子的開發(fā)者為了后續(xù)的使用者能夠快速使用這一系列的板子,在設(shè)計(jì)的過程中,采用一些技術(shù),使整個(gè)系列的產(chǎn)品之間能夠在引腳、外設(shè)以及開發(fā)使用的軟件等方面具有兼容性。圖3-4為這一系列STM32的內(nèi)核:作為微型計(jì)算機(jī),STM32的優(yōu)勢(shì),使它常在控制領(lǐng)域中發(fā)揮著重要的作用。使用方便。這次設(shè)計(jì)是以40線雙列直播式封裝形式使用STM32貼片式芯片,STM32F103C8T6的具體引腳設(shè)置如圖3-5所示:Ne9P8NRSTVDDA19HVSS_1909!83.4按鍵控制電路按鍵電路是通過對(duì)高低電平進(jìn)行檢測(cè),進(jìn)而來判斷按鍵是否被按下。圖3-6為按鍵的原理圖,其中,12和34引腳是內(nèi)部導(dǎo)通的,即同排的兩個(gè)引腳內(nèi)部相通,對(duì)向的兩個(gè)引腳內(nèi)部不通。在做具體設(shè)計(jì)的時(shí)候,只需要將12或者是34連接單片機(jī)或者是GND就可以了,即處于斜對(duì)角方向的引腳,一個(gè)用于連接單片機(jī)I/O端,而它的對(duì)角的引腳用于接地。在焊接的過程中,可以采用萬用表測(cè)試按鍵的引腳通斷的情況,確保焊接之后,按鍵能夠正常工作。按鍵的工作原理比較簡(jiǎn)單,本次采用的按鍵都屬于彈性的按鍵,當(dāng)按鍵被正常地按下的時(shí)候,兩個(gè)觸點(diǎn)閉合,電流導(dǎo)通,由于另一個(gè)I/O引腳接地,此時(shí)與單片機(jī)連接的引腳顯示為低電平。當(dāng)放開按鍵的時(shí)候,觸點(diǎn)在彈力的作用下自動(dòng)抬起,從而斷開連接,此時(shí),單片機(jī)連接的引腳顯示為高電平。圖3-8所顯示的是按鍵在系統(tǒng)的原理圖中具體的連接情況,通過傳回的電平,撤防撤防3.5電源電路本次設(shè)計(jì)采用的電源為直流的3.3V,不經(jīng)過LDO轉(zhuǎn)換,直接供電給STM32F103C8T6處理器。電路在連通之后,通過電源開關(guān)Switch按鍵開啟整個(gè)系觸點(diǎn),電路才會(huì)斷開。這種開關(guān)的原理圖見圖3-8:36249在外形上,這種開關(guān)與彈性開關(guān)相同。如圖3-9所示,為該開關(guān)的實(shí)物圖:3.6蜂鳴器報(bào)警電路用的是壓電蜂鳴器復(fù)合體裝置。該裝置連接一個(gè)三極管S8050,用于放大電流。其路原理圖:圖3-10蜂鳴器報(bào)警電路GSM模塊用芯訊通(SIMCom)公司生產(chǎn)的SIM800L芯片。相較于只能支持雙頻,即只能在大陸使用的SIM900A模塊,本次設(shè)計(jì)采用的SIM800L芯片,能夠支持全球范圍使用,及支持4頻。除此之外,考慮到模塊的體積、價(jià)格以及發(fā)送消息的時(shí)間等因素,本次設(shè)計(jì)確定使用SIM800L作為GSM通信的模塊。們?cè)O(shè)置的溫度上限值時(shí),STM32F103單片機(jī)就會(huì)控制串□,通過SIM800L短信模送短信進(jìn)行提示。這次使用5V的2A電流給此模塊進(jìn)行上電,接受和發(fā)送的數(shù)據(jù)引腳也因?yàn)榻拥氖?V而呈現(xiàn)出5V的電平。特率為9600bps,通過相應(yīng)的AT指令來進(jìn)行操作。本次設(shè)計(jì)采用文本模式來進(jìn)行要的條件。在本次使用過程中,電路的必要連接設(shè)計(jì)如圖3-11所示,923456783.8人體紅外電路這次設(shè)計(jì)采用PIR熱釋電紅外傳感器。它不受可見光的影響,耗電量微少。一般只會(huì)通過接收到特定的(9μm~10μm)紅外波長(zhǎng),赫歇爾曾經(jīng)研究過對(duì)物體升溫有著很好的加速作用的紅外波,隨著物體溫度的上升,物體輻射出的紅外線也增多,該現(xiàn)象被稱為注明的熱效應(yīng)現(xiàn)象。本次使用的紅外原理便是依據(jù)這種現(xiàn)象,當(dāng)通過紅外線導(dǎo)致溫度的變化時(shí),內(nèi)部電荷的平衡被打破,電荷進(jìn)行移動(dòng),電荷經(jīng)過芯片BISO001的濾波和放大,使電路電壓輸出為高的電平。由于這種模塊的功能過于單一,且受干擾的因素很少,能夠在白天也進(jìn)行工作,因此常用來做紅外檢測(cè),此紅外模塊的參數(shù)如表3-1所示:模塊參數(shù)值工作電壓靜態(tài)功耗50微安電平輸出高3.3V,低0V延時(shí)時(shí)間可調(diào)(8秒~200秒)感應(yīng)封鎖時(shí)間2.5秒觸發(fā)方式感應(yīng)范圍小于120度錐角,7米以內(nèi)工作溫度-15~+70度PCB外形尺寸感應(yīng)透鏡尺寸(直徑):23mm(默認(rèn))本次設(shè)計(jì)采用的是5V的電壓,因此可以支持這個(gè)紅外模塊工作,由延時(shí)時(shí)間可以知道模塊會(huì)在8s到200s的時(shí)間內(nèi)才會(huì)反應(yīng)出紅外線輻射的溫度變化。數(shù)據(jù)通過圖3-12中的OUT引腳進(jìn)行采集,其中通過VCC提供給紅外5V電壓,VEE為負(fù)電壓供電,這里用來接地,但在實(shí)物中,VEE引腳實(shí)際上是GND引腳,具體可見在運(yùn)用模塊測(cè)試的時(shí)候,存在模塊感應(yīng)不太靈敏的問題,此時(shí)可以通過旋轉(zhuǎn)圖3-11中的對(duì)應(yīng)按鈕進(jìn)行調(diào)整。在具體設(shè)計(jì)的過程中通過菲尼爾紅外濾波片從內(nèi)部改善這個(gè)模塊的靈敏度。同時(shí),我們還可以通過順時(shí)針旋轉(zhuǎn)延時(shí)按鈕來決定減短延時(shí)。具體的校準(zhǔn)方法見下圖3-13:要注意的是,人體紅外檢測(cè)不是一直檢測(cè),它的工作原理是檢測(cè)到人后會(huì)輸出高電平,然后等待一段時(shí)間會(huì)在此進(jìn)行檢查,類似于安裝在樓道中的感應(yīng)燈。我們可以想象一下,樓道中的感應(yīng)燈,也是經(jīng)過一段時(shí)它會(huì)在5秒左右發(fā)光工作。本次設(shè)計(jì)采用的LED為直插式LED發(fā)光二極管,用于指示系統(tǒng)是否處于保護(hù)電流的電子,其結(jié)構(gòu)原理圖如圖3-14所示:圖3-14LED報(bào)警指示燈電路圖4軟件系統(tǒng)設(shè)計(jì)的環(huán)境中的非法進(jìn)入,能夠通過這次的設(shè)計(jì),進(jìn)行遠(yuǎn)程本次軟件通過采用STM32的庫函數(shù)進(jìn)行的開發(fā)。對(duì)于單片機(jī)內(nèi)核而言,內(nèi)核底層,在編寫的過程中,類似于分片操作,STM32為每個(gè)寄存器分配了不同的地比如,當(dāng)需要讀取PA2的電平,首先就要找到相應(yīng)的寄存器,通過STM32參考手冊(cè)查到,GPIOA相關(guān)的寄存器,都存放在0x40010800~0x40010BFF范圍內(nèi),根據(jù)輸入數(shù)據(jù)的寄存器地址偏移為0x08可以計(jì)算出,GPIOA_IDR所處的地址為在這個(gè)32位寄存器的倒數(shù)第3位置上,也就是說,可以通過位置0x40010808進(jìn)行位與或者位或0x04或者0x00的操作,從而對(duì)第三個(gè)位置進(jìn)行賦值或者獲取該位置的狀態(tài),即PA2的設(shè)置或取值。在STM32F10x.h文件中,存放著寄存器和地址映置信息配置這個(gè)變量的某些成員,最后,再將這個(gè)變量的地址作為參數(shù)傳入一些下圖4-1所示:結(jié)構(gòu)體類型圖4-1STM32庫函數(shù)組成當(dāng)整個(gè)系統(tǒng)在運(yùn)行之前,先對(duì)各個(gè)硬件進(jìn)行初始化PC13指示燈的正常亮起代表整個(gè)系統(tǒng)各個(gè)模塊都可以進(jìn)行正常的運(yùn)轉(zhuǎn),即各個(gè)模塊開始工作,人體紅外可以進(jìn)行檢測(cè),處理器也能夠進(jìn)行相應(yīng)的控制和報(bào)警操作。(1)通過按鍵,保證傳感器的監(jiān)測(cè)數(shù)據(jù)是在開啟了防控的模式下,單片機(jī)才能對(duì)這個(gè)數(shù)據(jù)進(jìn)行反饋處理,否則繼續(xù)監(jiān)視防護(hù)按鍵是否被按下。用戶可以通過(2)系統(tǒng)在編寫時(shí),就將相應(yīng)的用戶信息設(shè)定好,從而保證了報(bào)警信息能夠(3)在防控的模式下,檢測(cè)到有人出現(xiàn)的話,模塊輸出有兩個(gè)方向,分別是蜂鳴器響動(dòng)和GSM輸出。根據(jù)以上的這些分析,整個(gè)系統(tǒng)在運(yùn)行期間應(yīng)當(dāng)具(2)設(shè)定好用戶信息以及發(fā)送的警報(bào)信息,以便通過對(duì)應(yīng)的串□操作控制(3)利用處理器的引腳控制蜂鳴器。系統(tǒng)啟動(dòng)的步驟為:按下開關(guān)按鍵,STM32開始進(jìn)行相關(guān)的上電和配置,對(duì)中斷進(jìn)行配置以及對(duì)按鍵進(jìn)行初始化,通過一些初始化函數(shù)分別對(duì)GSM護(hù)或關(guān)閉保護(hù)模式,當(dāng)有異常的信息出現(xiàn)時(shí),蜂鳴器及時(shí)進(jìn)行響應(yīng),同時(shí)通過SIM800L模塊發(fā)送報(bào)警短信到手機(jī)。整個(gè)主流程圖如圖4-2所示:否GSM短信模塊初始化人體紅外檢測(cè)按鍵掃描是否按下布防按鍵是布防模式否是否檢測(cè)到人是圖4-2程序主流程圖4.2.1串口初始化流程圖在使用SIM800L通信模塊時(shí),首先對(duì)模塊進(jìn)行相應(yīng)的初始化配置,對(duì)端□GPIO進(jìn)行初始化,同時(shí)開啟串□的外設(shè)時(shí)鐘,在這次設(shè)計(jì)的時(shí)候,我采用的是庫函數(shù)方式進(jìn)行初始化串□,首先需要定義USART_InitStructure這個(gè)類型的結(jié)構(gòu)體變量,通過一些參數(shù)配置串□傳輸?shù)牟ㄌ芈实然A(chǔ)的設(shè)置。在使用串□時(shí),需要對(duì)開啟串□的中斷功能,從而保證能夠處理GSM模塊接收消息的能力。接著就是對(duì)中斷的優(yōu)先級(jí)也進(jìn)行相應(yīng)的配置。串□的主要作用是能夠控制SIM800L通信模塊通訊。串□的初始化的具體過程如圖4-3所示:4.2.2按鍵子程序由按鍵的內(nèi)部電路設(shè)計(jì)知道,當(dāng)按鍵被按下時(shí),對(duì)應(yīng)的I/O引腳會(huì)輸出低電平,處理器可以通過檢測(cè)到低電平,認(rèn)為按鍵被啟動(dòng)。本次設(shè)計(jì)的時(shí)候,通過循環(huán)判斷連接按鍵的引腳輸出的電平,對(duì)系統(tǒng)的狀態(tài)進(jìn)行設(shè)置。在檢測(cè)的時(shí)候,由于按鍵采用的是彈性按鍵,當(dāng)按下按鍵的時(shí)候,電路并不會(huì)立馬導(dǎo)通,在這里通過軟件控制,進(jìn)行消抖。使用的兩個(gè)按鍵主要進(jìn)行布防和撤防,在布防情況下,當(dāng)熱釋紅外感應(yīng)到人之后,由單片機(jī)處理結(jié)果,并由系統(tǒng)控制發(fā)出相應(yīng)的報(bào)警信號(hào)。在撤防的情況下,則不會(huì)因?yàn)榧t外感應(yīng)而發(fā)送報(bào)警短信。流程圖如4-4所示:NY4.2.3報(bào)警流程圖主函數(shù)執(zhí)行后,一直檢測(cè)是否發(fā)生中斷,首先報(bào)警程序的入口通過按鍵開啟,LED燈指示,系統(tǒng)進(jìn)入防護(hù)狀態(tài),接著處理器開始接受由人體熱釋紅外傳感器檢測(cè)到的異常信息。一旦傳感器檢測(cè)到有人存在,即觸發(fā)了報(bào)警條件,傳感器通過電路就會(huì)輸出電壓量,通過GPIO端口發(fā)送給單片機(jī),單片機(jī)在防控的情況下進(jìn)行輸出處理,在未設(shè)防的情況下,并不會(huì)對(duì)報(bào)警的信息進(jìn)行輸出。本次設(shè)計(jì)蜂鳴器和GSM短消息作為共同的報(bào)警輸出指示。具體的報(bào)警流程圖如圖4-5所示:報(bào)警程序入口報(bào)警程序入口N是否觸發(fā)報(bào)警條件Y單片機(jī)輸出低電平,蜂鳴器報(bào)警,發(fā)出報(bào)警短信這次采用的GSM短信模塊支持使用AT指令集,單片機(jī)可以使用AT指令控制GSM發(fā)送數(shù)據(jù),系統(tǒng)可以通過GSM模塊發(fā)送的返回值驗(yàn)證發(fā)送的AT指令是否得到正確的執(zhí)行,返回的字符串若以“OK”字符結(jié)尾,則代表GSM模塊正確執(zhí)行了AT指令,若以“ERROR”結(jié)尾,則代表著AT指令沒有得到正確的執(zhí)行5。這一部置發(fā)送的消息格式,其中AT+CMGF=0屬于PDU模式,這種模式是以數(shù)據(jù)包的形式發(fā)送的,支持中英文等內(nèi)容的發(fā)送和接收。AT+CMGF=1屬于text文本模式,這通過AT+CSCS=”GSM”將短信的內(nèi)容設(shè)置為純英文內(nèi)容。本次設(shè)計(jì)對(duì)與接受消息是通過串口中斷的方式進(jìn)行處理的,使用AT+CNMI=2的指令方式,確保接受的數(shù)開始開始否A否否重發(fā)超過3次?否A中斷1?有串行中斷2?是是是圖4-6通信模塊流程圖4.3關(guān)鍵模塊的詳細(xì)設(shè)計(jì)在這個(gè)部分中,我主要對(duì)系統(tǒng)中的檢測(cè)部分,輸出部分,控制部分三個(gè)模塊方向所做的設(shè)計(jì)進(jìn)行詳細(xì)的解釋。在具體的代碼實(shí)現(xiàn)中,主要采用的是庫函數(shù)的形式進(jìn)行的編寫。本質(zhì)上,寄存器和庫函數(shù)是一樣的。相較于51單片機(jī)(常用的寄存器只有幾個(gè)),STM32的寄存器有數(shù)百個(gè)。這個(gè)時(shí)候,如果采用寄存器去操作STM32,過程就會(huì)變難得很復(fù)雜,而使用庫函數(shù),就會(huì)使操作變的很簡(jiǎn)單。庫函數(shù)的具體實(shí)現(xiàn)過程,在本部分開始就已經(jīng)說明。4.3.1人體紅外模塊軟件設(shè)計(jì)通過處理器的PC14引腳與紅外模塊相連,當(dāng)系統(tǒng)上電時(shí),該模塊也進(jìn)行相應(yīng)的初始化,具體需1分鐘左右配置,當(dāng)模塊的探頭檢測(cè)到人體經(jīng)過時(shí),輸出高電平,因此,在控制檢測(cè)這方面,只需要開啟PC.14的I/O時(shí)鐘,并通過一個(gè)變量來得到這個(gè)引腳的電平高低,這里使用#defineRTHWPCin(14)可以有效地得到該引腳的變化。具體配置如圖4-7所示:4.3.2串□模塊軟件設(shè)計(jì)通過單片機(jī)的USART1_TX,即PA.9引腳控制GSM模塊的接收消息通道。通過USART1_RX,即PA.10控制GSM模塊的發(fā)送消息通道。故需要開啟串□USART1的RX和TX時(shí)鐘,并設(shè)置USART1的中斷函數(shù),從而確保GSM模塊能夠及時(shí)地接收和發(fā)送消息。其中串□1的發(fā)送數(shù)據(jù)的函數(shù)如圖4-8:3(while((USART1->SR60X40)==0);//等待發(fā)送完成}}else//如果字長(zhǎng)等于或超過255,不按用戶寫入字長(zhǎng)發(fā)送3for(;*bufs!=0;bufs++)//把字符逐個(gè)發(fā)送出去{while((USART1->SR&0X40)==0);//等待發(fā)送完成接收數(shù)據(jù)由串□的中斷處理函數(shù)進(jìn)行接收,接收處理如圖4-9:voidUSART1_IRQHandle曰if(USART_GetITStatus(USART1,USART_IT_R(if(RxCouncer>-USART1_RXBUUsart1RecBuf[xCounter++1=USART_ReceiveData(USART1)://接收模塊ch-USART_ReceiveData(U{(gsm_revokrlag=1z//41f(USART_GetFlagStatus(USART1,USART_F(USART_ReceiveData(USARTUSART_ClearITPendingBit(USART1,USART_IT_RXN4.3.3GSM模塊軟件設(shè)計(jì)根據(jù)GSM芯片手冊(cè)中的AT指令,進(jìn)行初始化GSM,同時(shí)設(shè)定GSM發(fā)送消息的函數(shù),主要在函數(shù)中設(shè)定要發(fā)送到的手機(jī)號(hào)碼,以及需要發(fā)送的消息內(nèi)容。模塊的初始化代碼如下圖4-10:通過AT指令控制GSM模塊,這個(gè)控制代碼如圖4-11:voidgsm_atcmd_send(char*at)//GSMAT指令發(fā)送函數(shù)unsignedshortwaittry;//延時(shí)變量{gsm_rev_start=0;//接收開始標(biāo)志清零gsm_rev_okflag=0://接收完成標(biāo)志清零waittry=0;//延時(shí)變量清零uart_send(at,0xEF);//串口發(fā)送內(nèi)容while(waittry++<3000)//進(jìn)入while延時(shí){if(gsm_rev_okflag==1)//等待esp8266返回oK{return;//返回出去}}}while(gsm_rev_okflag==0通過GSM發(fā)送數(shù)據(jù),進(jìn)行異常情況的報(bào)警,具體實(shí)現(xiàn)如圖4-12:voidgsm_send_msg(constcha曰unsignedchargsm_at_txbuf[48]://GSMATmemset(qsm_at_txbuf,0,48);//緩//sprintf(gsm_at_txbuf,"AT+CMGS=\"s\"\r\n",nustrncpy(ma5xbuf,"AT+CMGS=\"",9);//將AT+CMGS=\",復(fù)//strcat(gsmattxbuf,nummemepy(sm_at_txbuf+9,number,11);//將手機(jī)號(hào)碼復(fù)制到AT+CMGS=\"之后1en"strlen(am.at.txbuf)://獲取asmattxbuf字符串長(zhǎng)度gsm_at_txbuf[len+2]-'\n'://gsm_at_txbuf最終的格式"AT+CMGS=\"手機(jī)uart_send(content,0xFF);//發(fā)短信內(nèi)容鐘,填充GPIO_InitTypeDef結(jié)構(gòu)體,設(shè)置輸出方式為推挽輸出,速度為50MHz,置也與蜂鳴器,PC13基本相同。如圖4-13為蜂鳴器的初始化配置:voidBEEP_DISENABLE(void)GPIO_InitTypeDefGPIO_InitTypeDefGPIO_InitRCC_APB2PeriphclockCmd(RCC_APB2Periph_GPIOB,ENABLE)://使能//推挽輸出////推挽輸出//PB.11輸出低GPIO_Initstructure.GPIO_Mode=GPIO_MoGPIO_InitStructure.GPIO_speed-GPIO_spGPIO_Init(GPIOB,6GPIO_Initstruc_ResetBits(GPIOB,GPIO__ResetBits(GPIOB,GPIO_隨著系統(tǒng)上電啟動(dòng),先后配置中斷優(yōu)先級(jí),初始化按鍵,串□,蜂鳴器,PC13上的LED指示燈,人體熱釋電紅外,LED指示燈,配置完成之后,通過延時(shí)等待硬件初始化完畢,比如熱釋電紅外傳感需要1分鐘左右配置等。之后,開啟循環(huán)判斷防盜模式是否開啟,設(shè)置一些標(biāo)志變量,比如flag,KEY1等對(duì)系統(tǒng)各個(gè)模塊進(jìn)行控制。如圖4-14所示,是主函數(shù)的部分代碼:93日1delay_init()://延時(shí)函數(shù)初始化NVIC_Configuration();//設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)KEY_iō_Init();//按鍵初始化gsm_init();//GSM初始化BEEP_DISENABLE();//蜂鳴器初始化RTHW_Init();//人體紅外初始化LED_Init()://LED初始化(}(5運(yùn)行與實(shí)現(xiàn)5.1開發(fā)板的設(shè)計(jì)確定所需要的元器件,并進(jìn)行了采購(gòu),如表5-1所示:規(guī)格名稱標(biāo)號(hào)數(shù)量按鍵21三極管2電阻4電源1開關(guān)1人體紅外1STM32核單片機(jī)1蜂鳴器1gsm模塊1本次是在AltiumDesigner軟件環(huán)境中創(chuàng)建的原理圖和PCB圖。通過“File->New->Project->PCBProject”的步驟,創(chuàng)建了工程繪制文件夾,在這個(gè)工程文件中創(chuàng)建原理圖和PCB文件。通過點(diǎn)擊菜單欄查看每個(gè)元器件的封裝是否符合預(yù)期的效果,在都沒有問題的情況下,通過“File->New->PCB”進(jìn)行建立sys.PcbDoc文件。在這個(gè)文件中使用Design菜單中的“ImportChanges”來生成對(duì)應(yīng)的PCB文件。用焊盤時(shí),如果出現(xiàn)氧化的情況,就需要進(jìn)行過水的打磨,并涂抹酒精松香溶晾干后再使用。遇到引腳氧化,我采用的是刀之后先鍍錫,然后再進(jìn)行焊接。5.2系統(tǒng)的運(yùn)行本次系統(tǒng)的設(shè)計(jì)開發(fā)過程中,主要采用集成開發(fā)環(huán)境KeiluVision5進(jìn)行軟件編寫,這個(gè)工具在調(diào)試,仿真等方面表現(xiàn)優(yōu)秀,并且這個(gè)環(huán)境下,能夠支持C語言兼容的單片機(jī)開發(fā),符合本次軟件開發(fā)。為了使這個(gè)工具能夠支持STMF103C8T6芯片的開發(fā),需要通過安裝“Keil.STM32F1xx_DFP.1.0.5.pack”這個(gè)固件包,完成基本的環(huán)境搭建。本次創(chuàng)建的項(xiàng)目名為Alarm,由于本次使用的是STM32F103C8T6,所以需要將設(shè)備設(shè)置為STMicroelectronics->STM32F1Series->STM32F103C8。本次我在項(xiàng)目中新建USER,HARDWARE,CORE,FWLIB,SYSLIB五個(gè)文件名。其中,USER文件夾主要存放著用戶自定義的文件,HARDWARE存放著本人對(duì)外設(shè)設(shè)備的初始化和基本的配置文件,包括按鍵,LED外設(shè),人體紅外,蜂鳴器等相應(yīng)的I/O的配置。CORE文件夾主要放置著STM32的內(nèi)核驅(qū)動(dòng),F(xiàn)WLIB放置著系統(tǒng)GPIO,中斷,時(shí)鐘等所需的庫文件。SYSLIB文件夾存放著延時(shí)配置文件,中斷優(yōu)先級(jí)的配置文件和串口配置這個(gè)文件。如圖5-1所示,為本人的項(xiàng)目結(jié)構(gòu):之后,配置項(xiàng)目的開發(fā)所需要的必要環(huán)境,主要是在彈出的窗□中,用PreprocessorSymbols->Defines:這一欄進(jìn)行填充,其中STM32F10X_MD代表本次標(biāo)簽頁中的IncludePaths地方添加項(xiàng)目所需要的頭文件所在的目錄。除此以外,還鈕,添加STM32F10xMed-densityFlash中等系列的設(shè)備,如圖5-2所示:Debug|TracePDownloadFunction-VerfyOKCaneel區(qū)區(qū)廠Derice|TuretOutput|Listing|User|cc++|Ase6CreazteEecutableObje程序編譯結(jié)果Output如圖5-4所示,其中四個(gè)警告來源于char*和unsignedchar*的兼容性: compilingstm32compilingpilingusart1.c...ProgramSize:Code=6196RO-data=280RW-data=68ZI-data=1684".\Objects\Alarm.axf"-0Error(s),4Warning(s).通過download將生成的目標(biāo)文件下載到開發(fā)板中,進(jìn)行測(cè)試,見下圖5-5所網(wǎng)F:\GraduationProject\graduate\Alarm\USERAlarmFileEditViewProjecFlashDebu5.2.3系統(tǒng)的最終實(shí)現(xiàn)(1)通過上電,按下電源開關(guān)按鈕,系統(tǒng)上電開機(jī)界面,當(dāng)系統(tǒng)正常運(yùn)行的時(shí)候,PC13指示燈開始閃爍,當(dāng)系統(tǒng)出現(xiàn)問題,或者一些模塊沒有正確的初始化,這個(gè)指示燈不會(huì)亮,開機(jī)界面如圖5-6:(2)通過左側(cè)的按鍵,打開系統(tǒng)的防控開關(guān),通過右邊的按鍵,關(guān)閉系統(tǒng)的防護(hù)開關(guān)。當(dāng)開啟防控開關(guān)的時(shí)候,LED指示燈亮起,當(dāng)關(guān)閉防控的時(shí)候,LED指示燈熄滅,防控的界面見下圖5-7所示:(3)異常發(fā)生,系統(tǒng)進(jìn)行報(bào)警,蜂鳴器間斷地響起,如圖5-8所示,對(duì)應(yīng)的,手機(jī)上收到指定的報(bào)警短信:40.2湖北黃石十短信/彩信發(fā)送圖5-8手機(jī)得到報(bào)警信息經(jīng)過幾個(gè)月的時(shí)間,本人也成功完成了基于單片機(jī)的GSM人體熱釋紅外系統(tǒng)的實(shí)現(xiàn),基本上實(shí)現(xiàn)了最初構(gòu)思的功能。本文討論了如何進(jìn)行人體紅外檢測(cè)和短信的發(fā)送。通過對(duì)市場(chǎng)上存在的防盜系統(tǒng)進(jìn)行分析和總結(jié),設(shè)計(jì)出以STM32F103C8T6芯片作為核心處理器,實(shí)現(xiàn)了基本的家居型遠(yuǎn)程的防盜功能。通

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論