版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第PAGEV頁基于STM32微型控制器的智慧消防系統(tǒng)設(shè)計與實(shí)現(xiàn)摘要本文設(shè)計了一種基于STM32微型控制器的溫度、熱度、煙霧傳感器的智慧消防系統(tǒng)。該系統(tǒng)簡單可靠,實(shí)用性強(qiáng),能近距離或者遠(yuǎn)程的實(shí)時根據(jù)數(shù)據(jù)來防范智慧消防問題,達(dá)到智慧的自我防范功能。消防防范一直是我國的重要事務(wù)之一,尤其還是在幅員遼闊的土地之上,消防問題一直是很重要的問題,警員出警到智慧、建筑火災(zāi)事發(fā)現(xiàn)場也是需要一點(diǎn)時間的,但這期間有多少生命在等待拯救,如果在此之前,能降低延緩這一時間,那無疑是最好的。在一定范圍內(nèi)可以通過提供的WIFI模塊來實(shí)現(xiàn)單片機(jī)和手機(jī)之間的即時通訊,及時通過數(shù)據(jù)交互來實(shí)現(xiàn)對安裝布置環(huán)境的各種數(shù)據(jù)檢測和監(jiān)控管理,實(shí)現(xiàn)對智慧的消防防范,大幅度地緩減了消防人員趕來救援中人員的傷亡,這也大大增加了地方消防管理的安全性和及時性。當(dāng)超過無線WIFI范圍時,可以通過GSM模塊將單片機(jī)檢測到的數(shù)據(jù)信息及時以短信的方式發(fā)送到手機(jī)上,然后及時的通知和處理及時事件。關(guān)鍵詞:STM32;GSM;消防;溫度;煙霧;WIFI目錄緒論……………11.1問題的提出………21.2國內(nèi)外研究現(xiàn)狀…………………51.3本文研究的主要內(nèi)容、目標(biāo)與方法……………9第2章可持續(xù)發(fā)展的城市交通……122.1可持續(xù)發(fā)展……………………122.1.1可持續(xù)發(fā)展思想的形成…………122.1.2可持續(xù)發(fā)展的內(nèi)涵………………152.1.3可持續(xù)發(fā)展觀……202.2城市交通可持續(xù)發(fā)展…………26結(jié)論…………………113致謝…………………115參考文獻(xiàn)……………116附錄…………………119第1頁第1章緒論1.1研究背景近年來,我國的消防措施,消防科技也在與時俱進(jìn),經(jīng)過一年又一年的發(fā)展,消防水平處于一個強(qiáng)大的層次,但是國內(nèi)人口的增加,居住地區(qū)的擴(kuò)張,以及建筑群的增加和擴(kuò)大,這讓我們的居住環(huán)境越來越大,大街小巷綜合交叉,建筑錯落有致,大樓大廈也都拔地而起……人們的生活得到了很大的改善,但是當(dāng)危險來臨時,這些便利有時候也會成為我們的短處。火災(zāi)一旦發(fā)生,消防人員會迅速趕往受災(zāi)現(xiàn)場,但是有時候會因?yàn)槁烦痰木嚯x,有時候會不能及時地到達(dá)現(xiàn)場,尤其是一些邊緣地區(qū),然后就是處于高樓大廈的人員來方便及時安全地撤離火災(zāi)現(xiàn)場。這時候便會發(fā)現(xiàn),單靠人的力量有時候已經(jīng)達(dá)不到及時的對生命負(fù)責(zé)。本次設(shè)計的智慧消防系統(tǒng)基于STM32F103單片機(jī)控制為核心[1]。通過遠(yuǎn)程管理來控制,通過溫度傳感器、煙霧傳感器以及光傳感器測取數(shù)據(jù),通過數(shù)據(jù)交互實(shí)現(xiàn)對安裝布置環(huán)境的各種數(shù)據(jù)檢測和監(jiān)控管理[2]。在沒有人員察覺或者少人地區(qū),那防火報警情況便是尤其的重要,可以通過ESP8266把當(dāng)前的數(shù)據(jù)發(fā)送到無線網(wǎng)以內(nèi)的手機(jī)端進(jìn)行顯示或者可以通過GSM將溫濕度以短信的形式發(fā)到遠(yuǎn)距離的用戶手機(jī)達(dá)到及時的火災(zāi)報警[3]。實(shí)現(xiàn)對一個超出空間范圍內(nèi)的溫濕、煙霧、光源的數(shù)據(jù)自動測量的告知提示,可以讓該空間范圍內(nèi)處于一個正常的范圍值內(nèi),或者最大化讓其趨近正常范圍內(nèi)。這樣實(shí)現(xiàn)了最簡單的報警提示,但是解決了最壞情況的出現(xiàn),快速高速地將危險早早排除,為生命的保護(hù)提供了足夠的保障。1.2可行性研究對于單片機(jī)的選用,選擇集成度相對于其他單片機(jī)的更加強(qiáng)大的STM32F103單片機(jī),它的性能不僅好,同時具備豐富的功能。豐富的功能支持,會讓設(shè)計更加方便,不用擔(dān)心不支持等問題的困惑。同時它在格便宜的基礎(chǔ)上還支持穩(wěn)定的控制能力。對于提供電源來支持單片機(jī)運(yùn)行的電源,選用5歐姆的常用繼電器,它的使用會節(jié)約大量的額外資源,它的簡單電路設(shè)計也會讓我在使用時更加方便操作。而對于最重要的溫度、濕度和煙霧濃度的檢測傳感器的選擇,選用DHT11和MQ2這兩個傳感器來實(shí)現(xiàn),他們提供的功能在對于在使用時,會更方便去設(shè)計和實(shí)現(xiàn),并且自身設(shè)計的優(yōu)勢,在這次設(shè)計中更合適,會保證檢測采集到的數(shù)據(jù)準(zhǔn)確,這為報警提示模塊的準(zhǔn)確性增加了可靠保障。數(shù)據(jù)采集,也需要針對于數(shù)據(jù)進(jìn)行顯示,使用支持字符功能更加完善強(qiáng)大的LCD1602來顯示,它支持特殊字符的顯示,還支持通過軟件的設(shè)計來實(shí)現(xiàn)顯示的背景光和字符數(shù)據(jù)邏輯的準(zhǔn)確顯示。針對于數(shù)據(jù)的處理,還提供了通過按鍵的功能來處理顯示數(shù)據(jù)值的調(diào)整,在本次設(shè)計中,這些數(shù)據(jù)主要用來作為報警提示的上限值來使用,所以需要在一些情況下進(jìn)行調(diào)整,比如遠(yuǎn)近的原因會造成所測數(shù)據(jù)的環(huán)境的濃度不一樣,導(dǎo)致數(shù)值的測取不合格,延時它的及時報警提示。報警提示的部分,不僅提供了蜂鳴器的使用,還增加了局域網(wǎng)內(nèi)的信息通訊和數(shù)據(jù)手動調(diào)整交互的實(shí)現(xiàn)[4]。對于超過局域網(wǎng)的處理,通過GSM模塊與手機(jī)之間實(shí)現(xiàn)短信通訊,及時地將超過所調(diào)的上限值以短信的形式發(fā)送到指定手機(jī)上[5]。簡單,便宜,但是功能強(qiáng)大,實(shí)用性強(qiáng)大的設(shè)計和實(shí)現(xiàn),會讓它的性能更大化。1.3研究設(shè)計的主要內(nèi)容和功能設(shè)計的主要內(nèi)容是通過傳感器數(shù)據(jù),將數(shù)據(jù)經(jīng)過串口由單片機(jī)傳輸以及控制整體系統(tǒng)的實(shí)現(xiàn)。由單片機(jī)將數(shù)據(jù)交于液晶顯示器來顯示,而液晶上顯示的數(shù)據(jù),可以經(jīng)過按鍵模塊的實(shí)現(xiàn)來對其進(jìn)行調(diào)整顯示,當(dāng)傳感器檢測到的數(shù)據(jù)超過設(shè)置的數(shù)據(jù)時。會將信號交于單片機(jī),然后再由單片機(jī)來控制報警提示的蜂鳴器實(shí)現(xiàn)鳴響,此時還會經(jīng)過局域網(wǎng)將數(shù)據(jù)交給手機(jī)上提供的接收器顯示[6]。對于更遠(yuǎn)難以通過局域網(wǎng)內(nèi)報警情況,還設(shè)計了GSM來實(shí)現(xiàn)將檢測到超過上限值通過短信的方式[7],將數(shù)據(jù)發(fā)送給指定的用戶已達(dá)到超遠(yuǎn)距離的報警提醒。主要的功能包括以下幾點(diǎn):(1)溫濕度檢測;(2)煙霧檢測;(3)按鍵設(shè)置;(4)液晶屏顯示;(5)單片機(jī)與手機(jī)之間無線通信和GSM通訊[8]。
第2章設(shè)計方案2.1設(shè)計思路由單片機(jī)來作為控制中心,對于最重要的溫度、濕度和煙霧濃度的檢測傳感器的選擇,選用DHT11和MQ2這兩個傳感器來實(shí)現(xiàn),他們提供的功能在對于使用時,會更方便去設(shè)計和實(shí)現(xiàn),并且自身設(shè)計的優(yōu)勢,會保證檢測采集到的數(shù)據(jù)準(zhǔn)確[9]。數(shù)據(jù)的顯示,使用支持字符功能更加完善強(qiáng)大的LCD1602來顯示,它支持特殊字符的顯示。針對數(shù)據(jù)的處理,提供了通過按鍵的功能來處理顯示數(shù)據(jù)值的調(diào)整。提供了蜂鳴器的報警提示,還增加了局域網(wǎng)內(nèi)的信息通訊和數(shù)據(jù)手動調(diào)整交互的實(shí)現(xiàn),對于超過局域網(wǎng)的處理,通過GSM模塊與手機(jī)之間實(shí)現(xiàn)短信通訊,及時地將超過所調(diào)上限值以短信的形式發(fā)送到指定手機(jī)上[10]。下圖2-1為系統(tǒng)結(jié)構(gòu)圖:液晶顯示當(dāng)前信息DHT11溫濕度采集液晶顯示當(dāng)前信息DHT11溫濕度采集控制蜂鳴器進(jìn)行報警控制蜂鳴器進(jìn)行報警單片機(jī)數(shù)據(jù)處理按鍵設(shè)置報警上限單片機(jī)數(shù)據(jù)處理按鍵設(shè)置報警上限繼電器控制繼電器控制GSM發(fā)送短信煙霧采集GSM發(fā)送短信煙霧采集WIFIWIFI無線數(shù)據(jù)傳輸GSMGSM發(fā)送短信WIFI無線數(shù)據(jù)WIFI無線數(shù)據(jù)傳輸WIFI無線數(shù)據(jù)傳輸圖2-1系統(tǒng)結(jié)構(gòu)圖設(shè)計過程:選擇好適合各個模塊設(shè)計中需要的芯片。將各個模塊電路設(shè)計規(guī)劃好。調(diào)試各個模塊的電路實(shí)現(xiàn)和交互。完成各個模塊之間的軟件交互代碼。2.2系統(tǒng)構(gòu)成本次系統(tǒng)的實(shí)現(xiàn),分為硬件設(shè)計實(shí)現(xiàn)和軟件的編程實(shí)現(xiàn)。關(guān)于硬件的實(shí)現(xiàn),單片機(jī)和各種傳感器的合理選擇,會讓在實(shí)現(xiàn)和利用上得到更好的使用。其他的硬件元器件的選擇完后,根據(jù)硬件設(shè)計好的電路進(jìn)行硬件焊接實(shí)現(xiàn)。當(dāng)硬件實(shí)現(xiàn)完成后,便可以將軟件的編寫實(shí)現(xiàn)工作開始進(jìn)行,硬件保證了數(shù)據(jù)的交互和通訊基礎(chǔ),但是實(shí)現(xiàn)需要軟件編碼支持。對于軟件的編程,主要在keil提供的環(huán)境中實(shí)現(xiàn),它強(qiáng)大的編程會讓在針對于每一個模塊的實(shí)現(xiàn)都可以得到最大化的技術(shù)支持。可以逐步調(diào)試,以及模塊之間的測試檢測,查看各種在數(shù)據(jù)通訊中的變量的成功與否。最后將完成品放于單片機(jī)中實(shí)現(xiàn)系統(tǒng)整體的使用。單片機(jī)作為控制中心,數(shù)據(jù)是通過傳感器數(shù)據(jù),將數(shù)據(jù)經(jīng)過串口到單片機(jī)。由單片機(jī)將數(shù)據(jù)交于液晶顯示器來顯示,而液晶上顯示的數(shù)據(jù),可以由按鍵的實(shí)現(xiàn)來對其進(jìn)行調(diào)整顯示。當(dāng)傳感器檢測到的數(shù)據(jù)超過設(shè)置的數(shù)據(jù)時[11],會將信號交于單片機(jī),然后再由單片機(jī)來控制蜂鳴器實(shí)現(xiàn)鳴響,此時還會經(jīng)過局域網(wǎng)將數(shù)據(jù)交給手機(jī)上提供的接收器顯示。對于更遠(yuǎn)難以通過局域網(wǎng)內(nèi)報警情況,還設(shè)計了GSM來實(shí)現(xiàn)將檢測到超過上限值通過短信的方式,將數(shù)據(jù)發(fā)送給指定的用戶已達(dá)到超遠(yuǎn)距離的報警提醒,在手機(jī)上以短信內(nèi)容的展示數(shù)據(jù)。2.3內(nèi)容安排由設(shè)計思路和系統(tǒng)構(gòu)成,將內(nèi)容安排規(guī)劃如下:2.3.1硬件電路的設(shè)計(1)系統(tǒng)硬件的總電路(2)按鍵電路(3)報警電路(4)LCD1602液晶顯示電路(5)ESP8266電路(6)溫濕度傳感器電路(7)煙霧傳感器電路(8)GSM短信電路2.3.2軟件系統(tǒng)設(shè)計(1)軟件總程序?qū)崿F(xiàn)流程(2)按鍵實(shí)現(xiàn)流程(3)報警實(shí)現(xiàn)流程(4)LCD1602顯示實(shí)現(xiàn)流程(5)ESP8266無線通信實(shí)現(xiàn)流程(6)溫濕度檢測實(shí)現(xiàn)流程(7)煙霧檢測實(shí)現(xiàn)流程(8)GSM短信交互
第3章硬件電路設(shè)計3.1系統(tǒng)硬件的總電路實(shí)現(xiàn)通過將傳感器在特定環(huán)境下對于特定數(shù)據(jù)的檢測值,由單片機(jī)串口將數(shù)據(jù)在液晶顯示屏上顯示,對于溫濕度和煙霧濃度的顯示值,提供了按鍵的操作來對其顯示數(shù)據(jù)的調(diào)整[12]。并且提供了檢測的數(shù)值由無線模塊通過局域網(wǎng)發(fā)送到手機(jī)接收端,接受范圍超過無線模塊的范圍無法將信息與手機(jī)交互時,監(jiān)測數(shù)據(jù)會用過GSM模塊將數(shù)據(jù)以短信的形式編輯發(fā)送到手機(jī)端來顯示[13]。圖3-1是其硬件電路原理圖:圖3-1系統(tǒng)硬件總電路圖3.2按鍵控制電路從下面的按鍵控制電路來說,因?yàn)樾枰獙?shí)現(xiàn)液晶顯示屏上數(shù)據(jù)值的增加、減少和確定修改等操作,所以將三個開關(guān)并聯(lián)組成帶電路圖。一段連接單片機(jī),一端接地。對于按鍵是使用時,便是通過開關(guān)的處理來控制電壓實(shí)現(xiàn)功能模塊的實(shí)行。按鍵1,其設(shè)定為增加的按鈕,按鍵1則是代表減的按鈕,按鍵3則是確定的按鈕。按鍵的按下和松開即為一次處理,增加的固定值為1。圖3-2為按鍵控制電路原理圖:圖3-2按鍵控制電路圖3.3電源電路本次設(shè)計的電源電路如圖3-3所示:圖3-3電源電路SWITCH是電源開關(guān),POW是電源輸入端,供電電壓為DC5V,DC是代表直流。3.4報警電路報警電路的電路圖如下,因?yàn)樾枰?dāng)檢測的數(shù)值超過調(diào)整的范圍時有一個報警提示,所以設(shè)計了一個蜂鳴器的元器件來支持實(shí)現(xiàn)。它的觸發(fā)條件是,當(dāng)有傳感器在得到檢測數(shù)據(jù),由A/D轉(zhuǎn)換處理后的值,超過所設(shè)值時,單片機(jī)會觸發(fā)提供報警的電流。因?yàn)樗蒒PN三極管組成,所以發(fā)送一個高電平從Alarm端進(jìn)入,會使能蜂鳴器鳴響。蜂鳴器的電路如圖3-4所示圖3-4蜂鳴器報警電路3.5LCD1602液晶顯示電路主要是通過電壓來控制液晶顯示屏的顯示,只要有電就會有顯示,如此來實(shí)現(xiàn)顯示圖形。在電路中RT為它的電位器,也就是滑動變阻器,可以通過這個電位器來調(diào)節(jié)液晶背光亮度。RS為寄存器選擇腳,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。R/W為讀/寫信號線,高電平時進(jìn)行讀操作,低電平時進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時可以寫入指令或顯示地址;當(dāng)RS為低電平,R/W為高電平時,可以讀忙信號;當(dāng)RS為高電平,R/W為低電平時,可以寫入數(shù)據(jù)。電路圖如下:圖3-5lcd1602電路圖3.6ESP8266電路本次設(shè)計使用的是常見的ESP8266無線串口來實(shí)現(xiàn)局域網(wǎng)內(nèi)的數(shù)據(jù)交互功能,因?yàn)樗暮唵我撞僮?,在局域網(wǎng)內(nèi)可以最大化地將數(shù)據(jù)快速的交互能力,選擇使用它。可以通過這個體積微小但是功能強(qiáng)大的它來實(shí)現(xiàn),檢測模塊采取的經(jīng)過裝換后的數(shù)值到指定用戶的手機(jī)接收端。它的使用不僅僅是數(shù)據(jù)的發(fā)送,只要在局域網(wǎng)內(nèi),便可以根據(jù)它的引腳處理來收發(fā)數(shù)據(jù),TXD引腳用來接收數(shù)據(jù),RXD引腳用來發(fā)送數(shù)據(jù)。WIFI模塊電路的電路圖如下圖3-6ESP8266模塊電路圖3.7溫濕度傳感器電路溫濕度通過直接與STM32引腳連接后,通過它的引腳2(DATA)將數(shù)據(jù)發(fā)給STM32。引腳4接地,而它的引腳1主要供電,供電為3V至5V。傳感器的電路圖如下:圖3-7溫度傳感器電路3.8煙霧傳感器電路煙霧檢測的部分使用MQ2傳感器來實(shí)現(xiàn),對于指定環(huán)境的煙霧數(shù)值的檢測。在數(shù)值的采集時,它對于火源的遠(yuǎn)近距離會產(chǎn)生測到不同的數(shù)據(jù)。因?yàn)樵谙嗤h(huán)境下,會因?yàn)檫h(yuǎn)近導(dǎo)致煙霧濃度的差別,然后造成到達(dá)設(shè)置的上限值數(shù)據(jù)時,它的時效性變差。所以設(shè)計好設(shè)備后,需要將它置于臨近或者危險易發(fā)地?;蛘邔㈩A(yù)警提示范圍值調(diào)低。它的引腳會隨著煙霧濃度的變化變化直流信號,然后將采集的信號經(jīng)過單片機(jī)的ADC裝換后,將它的數(shù)值再由單片機(jī)發(fā)送給液晶顯示器上顯示。其電路原理圖如圖3-8所示:圖3-8傳感器電路圖3.9GSM短信電路SIM800支持4頻GSM/GPRS。主要用到的引腳是9號引腳(TXD)來發(fā)送數(shù)據(jù),然后便是SIM卡接口的SIM_VDD、SIM_DATA、SIM_CLK、SIM_RST、SIM_PRESENCE。下圖為它的電路分布圖:圖3-9sim800電路圖
4軟件系統(tǒng)設(shè)計4.1軟件總程序?qū)崿F(xiàn)流程選擇集成度相對于其他單片機(jī)的更加強(qiáng)大的STM32F103單片機(jī),它的性能不僅好,同時具備豐富的功能,以單片機(jī)作為在控制中心,先將各個模塊的初始完成,尤其是局域網(wǎng)內(nèi)的通訊和超過局域網(wǎng)的通訊。當(dāng)我初始化完這兩個后,對于最重要的溫度、濕度和煙霧濃度的檢測傳感器的選擇,選用DHT11和MQ2這兩個傳感器來實(shí)現(xiàn),所以對于他們的初始化才是最重要的,因?yàn)楸敬蜗到y(tǒng)的實(shí)現(xiàn)和他們檢測的電流信號轉(zhuǎn)換后的數(shù)值關(guān)系巨大,它們的初始化成功會保證檢測采集到的數(shù)據(jù)準(zhǔn)確,這為報警提示模塊的準(zhǔn)確性增加了可靠保障[14]。接下來便是液晶顯示器的初始化和顯示配置處理,因?yàn)樗奈锢硖匦?,在做處理時要時刻注意它的指定區(qū)域的初始化,因?yàn)槌跏蓟怀晒Ρ銜屗菂^(qū)域電壓不正確,導(dǎo)致顯示的不正確,無法處理。數(shù)據(jù)的處理,可以通過按鍵的功能來處理顯示數(shù)據(jù)值的調(diào)整,按鍵的使用,提供了對于數(shù)據(jù)的加按鍵,減按鍵和數(shù)據(jù)確認(rèn)的按鍵。需要在一些情況下進(jìn)行調(diào)整,比如遠(yuǎn)近的原因會造成所測數(shù)據(jù)的環(huán)境濃度不一樣導(dǎo)致數(shù)值的測取不合格,延時它的及時報警提示。報警提示時,會通過軟件實(shí)現(xiàn)的內(nèi)部來根據(jù)監(jiān)測數(shù)據(jù)值的超出來控制蜂鳴器的鳴響,此時可以通過局域網(wǎng)內(nèi)實(shí)時數(shù)據(jù)的交互模塊,將此時的液晶顯示數(shù)據(jù)值通過串口以用AT指令發(fā)送到手機(jī)接收端,對于超過局域網(wǎng)的處理,通過GSM模塊與手機(jī)之間實(shí)現(xiàn)短信通訊,及時地將超過所調(diào)上限值以短信的形式發(fā)送到指定手機(jī)上。如此不斷地監(jiān)視著布控的區(qū)域,對檢測的區(qū)域?qū)崟r更新數(shù)據(jù),發(fā)送數(shù)據(jù),以達(dá)到實(shí)時的監(jiān)控,及時報警。整個系統(tǒng)流程路圖如圖4-1所示:開始開始ESP8266/GSM串口初始化ESP8266/GSM串口初始化DHT11溫濕度初始化DHT11溫濕度初始化煙霧初始化煙霧初始化LCD1602顯示當(dāng)前信息LCD1602顯示當(dāng)前信息NN是否按下按鍵返回是否按下按鍵返回YY按鍵設(shè)置煙霧溫濕度上限按鍵設(shè)置煙霧溫濕度上限NENESP8266發(fā)送數(shù)據(jù)到手機(jī)端是否超過上限是否超過上限手機(jī)端顯示當(dāng)前煙霧值手機(jī)端顯示當(dāng)前煙霧值蜂鳴器報警蜂鳴器報警,GSM發(fā)送短信YY圖4-1系統(tǒng)流程圖4.2按鍵實(shí)現(xiàn)流程在按鍵處理的這一塊,它的初始化,可以通過兩種方式來實(shí)現(xiàn),最常見的便是直接通過高低電平來判斷按鈕按下是否,然后按下到放開這一個過程的捕獲來實(shí)現(xiàn)處理。所以首先要知道需要多少個按鈕,每一個按鍵的觸發(fā)時要去實(shí)現(xiàn)什么功能,然后在不過捕獲到信號后,快速做出處理。另一種是,通過中斷函數(shù)來實(shí)現(xiàn)按鍵的實(shí)現(xiàn),第二種的出現(xiàn),主要是因?yàn)榈谝环N的消息觸發(fā)會因?yàn)榘聪骂l數(shù)和錯誤操作導(dǎo)致編程代碼對捕獲次數(shù)的錯誤使得操作錯誤。在使用中斷函數(shù)的控制方法時,需要將每一個按鍵對應(yīng)的引腳,它對應(yīng)的中斷函數(shù)寫出來,然后在函數(shù)內(nèi)部把該按鍵的功能實(shí)現(xiàn)出來,這樣不管怎樣操作,能保證按鍵處理的正確性。實(shí)現(xiàn)流程圖如下:開始開始NNLCD1602顯示進(jìn)入按鍵設(shè)置函數(shù)是否按下按鍵LCD1602顯示進(jìn)入按鍵設(shè)置函數(shù)是否按下按鍵設(shè)置參數(shù)設(shè)置參數(shù)YY返回返回圖4-2按鍵流程圖在按鍵的軟件實(shí)現(xiàn)過程中,需要處理好按鍵的消抖,因?yàn)橛袝r候會因?yàn)榘存I的消抖沒有處理好,當(dāng)按下和松開時得到的位置不穩(wěn)定。導(dǎo)致數(shù)值的變化不夠準(zhǔn)確,所以需要在中斷函數(shù)處處理好后每一個按鍵中斷的變化。4.3報警實(shí)現(xiàn)流程報警的設(shè)計和編程。根據(jù)是否超過設(shè)置的報警范圍值來進(jìn)行提示,當(dāng)內(nèi)部代碼把檢測的值與設(shè)置的值比較時,超過便達(dá)到發(fā)動報警的條件,實(shí)現(xiàn)報警。通過編寫兩個函數(shù)來實(shí)現(xiàn)蜂鳴器報警的開啟和關(guān)閉。首先將端口PA的時鐘使能,然后把端口的配置設(shè)置好對應(yīng)的引腳,然后把輸出設(shè)置為推挽輸出,I/O口的速度設(shè)置為50MHZ,其他的一些配置也需配置好,這樣在使用時才不會出現(xiàn)錯誤。通過GPIO_SetBits(GPIOB,GPIO_Pin_6),GPIO_ResetBits(GPIOB,GPIO_Pin_6)函數(shù)來實(shí)現(xiàn)電壓控制鳴響。實(shí)現(xiàn)流程圖如下所示:單片機(jī)輸出低電平蜂鳴器報警單片機(jī)輸出低電平蜂鳴器報警是否觸發(fā)報警條件報警程序入口返回YNY圖4-3報警流程圖4.4LCD1602顯示實(shí)現(xiàn)流程液晶顯示的模塊,根據(jù)實(shí)際需求選擇了HJ1602A作為液晶顯示屏。它作為一個同時能顯現(xiàn)16+16的字符顯示工業(yè)級的字符型液晶,其能力是明顯突出的。然后再來說一說,液晶的使用,其實(shí)在生活中它的存在是比比皆是的,小到戴在手上的電子表,大到超大的視頻顯示屏。可以看出它的作用在我們生活中是一個重要的構(gòu)成部分。1602字符型的液晶顯示器如下兩圖所示:圖4-4正面圖圖4-5背面圖再看看它的顯示,它需要在顯示字符時,要先輸入說明這個顯示字符的顯示地址,也就是說在16+16的地址上,它的內(nèi)部顯示地址如下圖所示。圖4-61602內(nèi)部顯示地址圖比如要在第二行第三個字符那里放一個字符,首先可以從上圖中得知,該位置地址為42H,在寫入顯示地址的時候,要保證它的最高位恒定為高電平1,因此對其地址的實(shí)際輸入數(shù)據(jù)為01000010B+10000000B=11000010B。因?yàn)樗娘@示要求表明:要先設(shè)置顯示模式,然后每次重新重復(fù)寫入操作時,還要判斷液晶是否處于忙的狀態(tài)。因?yàn)樗奈锢硖匦?,在使用它時,要考慮好在那里顯示字符,那么顯示的區(qū)域的電壓,就要控制好啊,不然顯示的內(nèi)容值將不會是想要的結(jié)果。然后合理的操作會讓它可以顯示出我們需要的圖形,再加上各種優(yōu)點(diǎn),它被用于單片機(jī)的開發(fā)使用更大,被廣泛應(yīng)用。LCD1602顯示流程圖如如4-7所示:入口入口初始化LCD1602不檢測寫入數(shù)據(jù)檢測忙信號獲得現(xiàn)實(shí)RAM地址延時延時返回NY圖4-7LCD1602初始化流程圖關(guān)于液晶顯示的初始化編程實(shí)現(xiàn),首先要將通道選擇好,然后使它使能,這樣在后面配置好其他引腳后,便可以通過通道將采集數(shù)據(jù)接受和發(fā)送。然后將引腳GPIO_Pin0-7的引腳的輸出設(shè)置為推挽輸出,并將它的輸出速度設(shè)置為50MHZ。然后將一個通道GPIO_Init初始化掉,之后將GPIO13-15的輸出也設(shè)置為推挽輸出,輸出的頻率依舊是50MHZ。通過通道初始化掉后,便要根據(jù)引腳13-15將寄存器對應(yīng)的位置初始化掉,將GPIOC->BRR,GPIOC->BRR,GPIOC->BSRR配置好后,先將液晶屏關(guān)閉,然后清屏,最后設(shè)置好光標(biāo)的移動設(shè)置。關(guān)于液晶屏的顯示和初始化,如果配置不好液晶屏的初始化數(shù)值的話,在顯示時將會發(fā)生數(shù)據(jù)的顯示不正確和顯示的排列方式?jīng)]有達(dá)到預(yù)期的結(jié)果,所以在針對于它的配置時,需要確保并且肯定的讓它的配置函數(shù)和GPIO通道,以及引腳的初始化等都按著需要的請設(shè)置。而不是當(dāng)在測試數(shù)據(jù)的AD轉(zhuǎn)換由單片機(jī)傳送過來由液晶屏顯示時,出來亂碼和非正常顯示。初始化完成后,通過函數(shù)LCD_Write_Data將數(shù)據(jù)放入在函數(shù)內(nèi)部處理好的對應(yīng)位置,在這其中依舊要注意液晶顯示器對應(yīng)寄存器位置的設(shè)置,因?yàn)榧拇娴臄?shù)值會直接影響操作的成功與否,之后要處理便是液晶顯示器字符串?dāng)?shù)據(jù)的對應(yīng)位置的寫入,因?yàn)樗奶匦?,所以需要將顯示地址確定好,固定好它的第一行和第二行的輸入數(shù)據(jù)地址值。輸入的數(shù)據(jù)時要處理好數(shù)字轉(zhuǎn)字符串的裝換,然后再將結(jié)果通過LCD_Write_String函數(shù)將數(shù)據(jù)寫入顯示。最后,直接通過傳入一個值將指令寄存器的數(shù)值更改實(shí)現(xiàn)清屏。4.5ESP8266無線通信實(shí)現(xiàn)流程本次設(shè)計采用的無線通信模塊為ESP8266,需要通過了解單片機(jī)的串口通訊,然后使用對應(yīng)的AT指令來實(shí)現(xiàn)對于數(shù)據(jù)的無線傳輸,該功能主要是利用WIFI模塊的熱點(diǎn)模式。給它連接3.3V。其中GND接地,TXD引腳用來接收數(shù)據(jù),RXD引腳用來發(fā)送數(shù)據(jù)。就可以和單片機(jī)進(jìn)行通信,并且手機(jī)端可以接受到當(dāng)前WIFI發(fā)送的數(shù)據(jù)信息。WIFI模塊的配置要求確認(rèn)好對應(yīng)函數(shù)的使用時,是否正確地使用,然后對于單片機(jī)串口通訊指令的使用是否是按照對應(yīng)規(guī)范要求區(qū)編寫的,如果沒有按照規(guī)范要求去隨意使用,將會連接不上接受方,也就無法實(shí)現(xiàn)數(shù)據(jù)通訊的正確交互。要時刻的確保數(shù)據(jù)交互時,發(fā)的一方發(fā)送的數(shù)據(jù)與接收到接受的數(shù)據(jù)是一致的。首先初始化它的波特率為115200。然后通過函數(shù)voidesp8266_init(),來配置WIFI運(yùn)行模式為AP熱點(diǎn)模式,確保使用時,用戶可以通過設(shè)置好的WIFI熱點(diǎn)進(jìn)行與設(shè)備的連接,完成數(shù)據(jù)的交互來往。如果要確保數(shù)據(jù)傳送前接收方是正確的接收方,可以設(shè)置的好WIFI的名稱和密碼來確保正確的接收方連接,通過函數(shù)voidesp_ap_mode(void),Uart1_SendStr("AT+CWMODE=2\r\n");來設(shè)置wifi名稱和密碼,這樣與用戶在連接時,需要找到對應(yīng)的WIFI以及將密碼輸入正確,才實(shí)現(xiàn)連接的成功建立,并且不用擔(dān)心接收方是不是要接受的對象,因?yàn)檫B接方即為接收端,接下來便可以開始進(jìn)行使用函數(shù)實(shí)現(xiàn)數(shù)據(jù)的發(fā)送處理,我們便可以簡單地實(shí)現(xiàn)接受信息。Uart1_SendStr("AT+CWSAP=\"TEST\",\"zhujing\",1,3\r\n");該函數(shù)通過串口把指令發(fā)送出去,Uart1_SendStr("AT+CIPMUX=1\r\n");還函數(shù)則是建立多路連接模式(這種設(shè)計提供了可由一個或者是多個ESP8266向手機(jī)端發(fā)送數(shù)據(jù))。而Uart1_SendStr("AT+CIPSERVER=1,8080\r\n")函數(shù)則是用來配置端口號為8080。開始發(fā)送數(shù)據(jù)用voidesp_send_buf(unsignedcharconn_id,char*buf,unsignedcharlen)函數(shù)。函數(shù)printf("AT+CIPSEND=%d,%d\r\n",conn_id,len)輸出數(shù)據(jù)。strx=strstr((constchar*)Usart1RecBuf,(constchar*)"SENDOK");函數(shù)用來實(shí)現(xiàn)發(fā)送完成。ESP8266通信流程圖如圖4-8所示:開始開始STM32配置引腳STM32配置引腳WIFI串口初始化WIFI串口初始化設(shè)置通信波特率為115200設(shè)置通信波特率為115200開啟通訊方式開啟通訊方式NN是否設(shè)置為AP熱點(diǎn)模式是否設(shè)置為AP熱點(diǎn)模式Y(jié)NYN設(shè)置端口號和密碼設(shè)置端口號和密碼建立手機(jī)端連接建立手機(jī)端連接是否發(fā)送數(shù)據(jù)是否發(fā)送數(shù)據(jù)YY發(fā)送完成發(fā)送完成返回返回圖4-8ESP8266無線通信流程圖4.6溫濕度檢測實(shí)現(xiàn)流程4.6.1傳感器的介紹DHT11電氣參數(shù)如下:表4-1DHT11傳感器電氣參數(shù)圖型號測量范圍測濕精度測溫精度分辨率封裝DHT1120-90%RH0-50℃±5%RH±2℃14針單排直插表4-2DHT11傳感器電氣參數(shù)圖參數(shù)條件MinTypMax單位供電DC355.5V供電電流測量0.52.5mA平均0.21mA待機(jī)100150uA采樣周期秒1次(2)DHT11的引腳定義表4-3DHT11傳感器引腳定義圖Pin引腳名稱引腳功能1VDDDC3.3-5.0V,電源正極2DATA穿行電路,單總線3NC懸空4GND接地,電源負(fù)極(3)DHT11的典型電路圖4-9DHT11傳感器電路圖DHT11的供電電壓一般在3歐姆到5.5歐姆之間,DATA引腳在有必要時,可以將它是電路增加一個5000歐姆以上的電阻,該電阻為上拉電阻。它的并聯(lián)安裝回增加它的準(zhǔn)確性,增加一些其他因素的阻擾。4.6.2傳感器控制時序它的數(shù)據(jù)格式由溫度和濕度分別占16bit,然后還有8bit的檢驗(yàn)位。對于它的控制時序。如果要實(shí)現(xiàn)對DHT11傳感器的控制和數(shù)據(jù)的讀取,需先學(xué)會分析DHT11的控制時序。時序主要分為三部分:1:觸發(fā)DHT11采集數(shù)數(shù)據(jù);2:讀取數(shù)字0;3:讀取數(shù)字1;。觸發(fā)DHT11采集數(shù)據(jù)圖4-10DHT11采集數(shù)據(jù)圖(2)數(shù)字0信號時序當(dāng)DHT11輸出數(shù)字0時,單片機(jī)會一直讀取到的信號為50us的低電平,之后單片機(jī)改為26-28us的高電平。圖4-11DHT11傳感器數(shù)字0信號圖(3)數(shù)字1信號時序當(dāng)DHT11輸出數(shù)字0時,單片機(jī)讀取到的信號為50us的低電平,之后為70us的高電平。圖4-12DHT11傳感器數(shù)字1信號圖由此可知DHT11輸出數(shù)字0和數(shù)字1的區(qū)別在于高電平的時間,當(dāng)單片機(jī)可在讀取到高電平后,延時30us后,識別此時總線的電平,高電平為數(shù)字1,低電平為數(shù)字0。(4)總時序圖圖4-13DHT11傳感器總時序圖對于傳感器溫濕度采集程序的初始化,主要針對于DHT11的初始化,需要設(shè)置好它的應(yīng)答脈沖,然后數(shù)據(jù)實(shí)時監(jiān)測的掃描頻數(shù)。通過ADC裝換來實(shí)現(xiàn)對于它檢測的數(shù)據(jù)轉(zhuǎn)換,然后針對讀操作的實(shí)現(xiàn)等步驟,其程序如下。首先ADC通道捕獲的數(shù)值,需要取得多個值然后取得平均數(shù),以確保數(shù)據(jù)的精確性,將連續(xù)取20次的平均值裝換成為百分比0~99之間,通過ADC的值乘以99,然后除于4096,還要確保數(shù)據(jù)的范圍不能超過99,然后再將這個數(shù)值通過編寫的函數(shù)傳入,然后按照數(shù)值的排序?qū)?yīng)的位的數(shù)值取出,作為溫度值(范圍為0~50°)和濕度(范圍值為20%~90%)。對于I/O串口,要保證傳入值小于16,用于DHT11的復(fù)位。在等待DHT11的回應(yīng)時,需要將其數(shù)據(jù)接收端口拉低40~80us處理,然后再次拉高40~80us處理,這些處理主要是為了實(shí)現(xiàn)DHT11接收數(shù)據(jù)的存在與否,當(dāng)函數(shù)返回1,表示未檢測到DHT11的存在。當(dāng)返回值為0,則表示存在。關(guān)于剛才的時間延時處理時為了,讀取一位一位數(shù)據(jù)時,等待高電平變?yōu)榈碗娖?,然后再變?yōu)楦唠娖健z測數(shù)值通過ADC轉(zhuǎn)換后以數(shù)字的形式輸出給液晶顯示器處理,流程圖如圖4-14所示:開始開始初始化DHT11應(yīng)答脈沖合并,算出溫濕度數(shù)值發(fā)出轉(zhuǎn)換命令延時等待溫濕度轉(zhuǎn)換發(fā)出掃描命令應(yīng)答脈沖發(fā)出讀操作NNYY圖4-14溫度檢測流程圖4.7煙霧檢測實(shí)現(xiàn)流程當(dāng)煙霧采集到當(dāng)前的數(shù)據(jù)后,會把模擬量傳輸給單片機(jī)進(jìn)行處理。對于單片機(jī)內(nèi)部ADC配置引腳后,需要經(jīng)過函數(shù)Adc_Init(void)來進(jìn)行初始化后。將AD配置的數(shù)值都配置好,這樣在模擬量轉(zhuǎn)換時,才會按著需要的轉(zhuǎn)換過來[15]。之后需要通過函數(shù)ADC_DeInit(ADC1);來選擇數(shù)據(jù)通道,這樣在接受數(shù)據(jù)和獲取數(shù)據(jù)時,直接從配置好的通道里直接獲取就行了。之后經(jīng)過其他的一些主要配置完成后,將GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;模擬收入引腳設(shè)置好。ADC_Cmd(ADC1,ENABLE)函數(shù)用來指定AD使能引腳,使得數(shù)據(jù)在接受時能通過,以及獲取。函數(shù)ADC_ResetCalibration(ADC1);主要用來實(shí)現(xiàn)復(fù)位的校準(zhǔn),主要為了防止數(shù)據(jù)接收完后,之后的再次獲取的情況處理,防止數(shù)據(jù)的再次獲取時,沒有校準(zhǔn)導(dǎo)致數(shù)據(jù)的丟失,和數(shù)據(jù)的獲取不是指定的數(shù)據(jù)。ADC_StartCalibration(ADC1);然后進(jìn)行讀取數(shù)據(jù),u16Get_Adc_Average(u8ch,u8times)2個字節(jié)為16位,進(jìn)行一位一位讀取,把當(dāng)前讀取的信息轉(zhuǎn)換為數(shù)字量,換算成當(dāng)前的電壓值。returntemp_val/times;得到當(dāng)前煙霧濃度。流程圖如下所示:開始開始單片機(jī)配置引腳單片機(jī)配置引腳產(chǎn)生時鐘信號產(chǎn)生時鐘信號選擇數(shù)據(jù)選擇數(shù)據(jù)NN判斷AD是否轉(zhuǎn)換完畢判斷AD是否轉(zhuǎn)換完畢YY讀取字節(jié)讀取字節(jié)一位一位讀取數(shù)據(jù)一位一位讀取數(shù)據(jù)結(jié)束,計算當(dāng)前電壓值結(jié)束,計算當(dāng)前電壓值通過當(dāng)前電壓,得到轉(zhuǎn)換數(shù)據(jù),顯示當(dāng)前煙霧濃度通過當(dāng)前電壓,得到轉(zhuǎn)換數(shù)據(jù),顯示當(dāng)前煙霧濃度返回返回圖4-15煙霧檢測流程圖4.8GSM短信交互實(shí)現(xiàn)流程GSM便是全球移動通訊系統(tǒng),它的標(biāo)準(zhǔn)在我們生活中依然已經(jīng)扮演著一個不可獲取的角色。它的信令和語音信道都是數(shù)字式的??梢酝ㄟ^AT指令組合來實(shí)現(xiàn)信息的通信,這無疑也在本次設(shè)計中,當(dāng)報警提示超過局域網(wǎng)內(nèi)后,無法處理及時的預(yù)警報警功能,因?yàn)樗ㄟ^短信有AT指令發(fā)送到指定用戶的手機(jī)接收端,實(shí)現(xiàn)來超遠(yuǎn)距離的提示。一般來說,與GSM模塊的通信速度為19200bps。數(shù)據(jù)傳輸采用串口通信,通過相應(yīng)的指令進(jìn)行操作。表4-4AT指令表AT+CIMI得到手機(jī)IMSI號碼AT+COPS網(wǎng)絡(luò)運(yùn)行商AT+CSCA短信中心號碼AT+CPMS選擇短信存儲地點(diǎn),可選擇ME(SIM卡)和MT(機(jī)身)AT+CMGL列出指定狀態(tài)的短信息的PDU代碼AT+CMGR列出指定序號的短信息的PDU代碼AT+CMSG發(fā)送短信AT+CMGD刪除指定的短信AT+CMGF短信格式,分為Text模式和PDU模式AT+CNMI設(shè)置新短信息通知電腦端AT+CSCA短信中心GSM采用文本模式來進(jìn)行數(shù)據(jù)的傳輸。短信發(fā)送和接收,SIM800模塊進(jìn)行短信的讀取與發(fā)送。可以通過不同的AT指令來對于不同操作進(jìn)來輸入執(zhí)行。AT+CNMI:可以用來為您的手機(jī)設(shè)置一個新的消息指令。發(fā)送AT+CNMI=2,1,設(shè)置為一個新消息的提示,當(dāng)收到一個新消息,且SIM卡不滿的情況時候,sim800模塊將自動返回一個數(shù)據(jù)發(fā)送給一個串口,如:+CNMI:"sm",1,表示該數(shù)據(jù)已經(jīng)接受到了新的消息,并將其存儲在一個SIM卡的位置1。GSM數(shù)據(jù)通信主要是串口通信,首先需要打開單片機(jī)定時2,通過函數(shù)voidUart_Init(unsignedintbaud)將串口進(jìn)行初始化,選擇定時器2并且將定時器2的配置設(shè)置為,TL2=RCAP2L=(65536-(UART_FOSC/32/baud));設(shè)置波特率為9600。當(dāng)定時器2開始運(yùn)行T2CON=0x34;打開總中斷和串口中斷ES=1;EA=1;初始化AT指令:Uart_SendString2("AT\r\n");隨后通過延時函數(shù)delay_ms(100)將時間延后,然后使用對應(yīng)的at指令根據(jù)芯片手冊編寫對應(yīng)的指令命令。至于串口數(shù)據(jù)發(fā)送函數(shù)Uart_SendString2("AT+CSCS=\"GSM\"\r\n")處理便是將規(guī)范好的字符串打包發(fā)送過去;隨后經(jīng)過delay_ms(100)延時;Uart_SendString2("AT+CMGF=1\r\n")之后再次延時處理;寫入手機(jī)號碼Uart_SendString2(number);再次延delay_ms(100);參數(shù)number為手機(jī)號碼,延時delay_ms(300);然后開始準(zhǔn)備發(fā)送短信,依舊還是通過函數(shù)Uart_SendString2(content)進(jìn)行數(shù)據(jù)的交互以及發(fā)送;發(fā)送當(dāng)前需要發(fā)送的短信內(nèi)容,當(dāng)不再發(fā)送數(shù)據(jù)時,需要對接收方有一個通知,就需要通過函數(shù)Uart_SendByte(0x1A)來發(fā)送結(jié)束符號以達(dá)到告知對方,自己發(fā)送大的有用數(shù)據(jù)已經(jīng)完成。開始開始選擇定時器2選擇定時器2串口初始化串口初始化打開總中斷,和串口中斷ES=1;EA=1;打開總中斷,和串口中斷ES=1;EA=1;初始化AT指令,裝載發(fā)送短信號碼初始化AT指令,裝載發(fā)送短信號碼NN是否發(fā)送短信是否發(fā)送短信YY返回返回圖4-16報警流程圖來看下它重要的幾個函數(shù)實(shí)現(xiàn)過程,首先設(shè)置標(biāo)志,接受開始的標(biāo)志和GSM處理標(biāo)志gsm_rev_start,gsm_rev_okflag。它們的初始值為0。然后接下來看串口中斷函數(shù)的實(shí)現(xiàn)過程:if(USART_GetITStatus(USART3,USART_IT_RXNE)!=RESET){ if(Rx3Counter>=USART3_RXBUFF_SIZE)Rx3Counter=0; Usart3RecBuf[Rx3Counter++]=USART_ReceiveData(USART3);//此時便可以接受模塊的數(shù)據(jù) ch=USART_ReceiveData(USART3); if((ch=='O')&&(gsm_rev_okflag==0))//接受到的字符為字符‘0’時,表示便開始接受數(shù)據(jù) { gsm_rev_start=1;//將開始接受標(biāo)志置位1 } if(gsm_rev_start) { if(ch=='K')//如果收到字符‘K’,說明GSM相關(guān)操作已經(jīng)執(zhí)行完畢 { gsm_rev_okflag=1;//此時完成標(biāo)志位變?yōu)? gsm_rev_start=0; } }}if(USART_GetFlagStatus(USART3,USART_FLAG_ORE)==SET){USART_ReceiveData(USART3);USART_ClearFlag(USART3,USART_FLAG_ORE);}USART_ClearITPendingBit(USART3,USART_IT_RXNE);然后看它的AT指令模塊,因?yàn)镚SM的實(shí)現(xiàn),AT指令起到了決定性的作用,可以通俗點(diǎn)認(rèn)為它相當(dāng)于一套協(xié)議,防止別人解析,只有按著它的方式執(zhí)行才可以實(shí)現(xiàn)你要實(shí)現(xiàn)的需求。voidgsm_atcmd_send(char*at)//GSMAT指令發(fā)送函數(shù){unsignedshortwaittry;//局部的延時變量do{gsm_rev_start=0;//這個也是那個接受標(biāo)志,這里置為0gsm_rev_okflag=0;//同時將接收完成標(biāo)志清零waittry=0;//延時變量清零uart3_send(at,0xFF);//串口發(fā)送內(nèi)容的函數(shù)while(waittry++<3000)//延時等待接受的數(shù)據(jù)返回值{if(gsm_rev_okflag==1)//等待OK返回值{return;//退出}delay_ms(1);}}while(gsm_rev_okflag==0);}最后再看下它與指定手機(jī)之間的交接函數(shù),因?yàn)樵摵瘮?shù)的實(shí)現(xiàn),讓STM32的數(shù)據(jù)能通過短信的方式發(fā)送到指定的手機(jī)上,已達(dá)到報警提示作用,函數(shù)實(shí)現(xiàn)如下:voidgsm_send_msg(constchar*number,char*content){u8len;unsignedchargsm_at_txbuf[48];//GSMAT命令的緩存區(qū)字符串,也就是最終發(fā)送到手機(jī)端的信息字符串。memset(gsm_at_txbuf,0,48);//使用時,要時刻記得將該緩沖區(qū)清零,防止指令的錯誤。strncpy(gsm_at_txbuf,"AT+CMGS=\"",9);//將AT+CMGS=\"?復(fù)制到gsm_at_txbufmemcpy(gsm_at_txbuf+9,number,11);//將手機(jī)號碼賦值到AT+CMGS=\"的后買你len=strlen(gsm_at_txbuf);//獲取gsm_at_txbuf字符串的長度gsm_at_txbuf[len]='"';//AT+CMGS=\"gsm_at_txbuf[len+1]='\r';gsm_at_txbuf[len+2]='\n';//gsm_at_txbuf最終格式為AT+CMGS=\"手機(jī)號碼\"\r\n"uart3_send(gsm_at_txbuf,0xFF);//發(fā)送需要接受短信的手機(jī)delay_ms(300);uart3_send(content,0xFF);//發(fā)送短信的內(nèi)容delay_ms(10); USART3_Sned_Char(0x1A);//發(fā)送結(jié)束符號delay_ms(10);}通過上面的幾個函數(shù)便可以實(shí)現(xiàn)數(shù)據(jù)以短信的方式發(fā)送到手機(jī)端。
5系統(tǒng)的調(diào)試與運(yùn)行硬件通電初始化如下如圖:圖5-1系統(tǒng)初始化圖手機(jī)APP的WiFi連接如下圖:圖5-2連接WIFI完成連接后的實(shí)時接受信息如下圖:圖5-3連接成功并接收數(shù)據(jù)按鍵功能掉試圖如下:圖5-4濕度監(jiān)控顯示圖5-5溫度監(jiān)控顯示報警時WIFI、GSM實(shí)現(xiàn)如下:圖5-6WIFI報警數(shù)據(jù)接收圖5-6GSM報警數(shù)據(jù)發(fā)送圖5-6GSM報警數(shù)據(jù)發(fā)送成功圖5-6GSM報警手機(jī)短信接收
6總結(jié)對于基于STM32的智慧消防系統(tǒng)的設(shè)計與實(shí)現(xiàn),本人熟悉項(xiàng)目的整個過程和框架。以STM32單片機(jī)為核心,設(shè)計并實(shí)現(xiàn)了各種傳感器。我們要嚴(yán)格保持讀寫順序當(dāng)對溫濕度傳感器進(jìn)行編程時。煙氣濃度的處理與溫濕度數(shù)據(jù)的處理相似。在編程無線模塊時,我們要設(shè)計好當(dāng)向手機(jī)發(fā)送WIFI請求后,編程接受程序要一直等待返回信號??紤]好當(dāng)傳感器沒有很好地接觸或斷開,它就不會提供返回信號,這時程序就會陷入死循環(huán),這是我們要重視的一部分。最后的GSM處理是指定移動電話的消息發(fā)送處理。我們需要處理的是將傳感器獲得的值通過GSM以字符串的形式發(fā)送到軟件設(shè)計和編程中指定的手機(jī)上。整個項(xiàng)目中,我感覺重要的便是數(shù)據(jù)的精確檢測然后處理,因?yàn)檎麄€項(xiàng)目的實(shí)現(xiàn)和通知,便是建立在這些設(shè)計好的數(shù)值檢測范圍內(nèi)的通知。所以對于溫濕度傳感器DHT1和煙霧濃度傳感器MQ的便是最重要的部分。自己要仔細(xì)的查看它的實(shí)現(xiàn)過程以及數(shù)據(jù)檢測保存寄存器,然后便是對于已經(jīng)檢測好的數(shù)據(jù)進(jìn)行獲取和處理與其他模塊交互。其次便是按鍵的處理問題,按鍵的消抖實(shí)現(xiàn)能讓讓用戶在使用按鍵時不會產(chǎn)生數(shù)據(jù)問題,處理方法便是用中斷處理實(shí)現(xiàn)對于每一個按鍵引腳中斷處理。然后將修改值與原值實(shí)現(xiàn)交換。參考文獻(xiàn)[1]蔣宇,夏靜.基于STM32與GSM的火箭發(fā)射動力學(xué)參數(shù)測試系統(tǒng)[J].電子設(shè)計工程,2020,28(16):179-183.[2]洪樹亮.基于STM32F103住宅智能防火防盜報警系統(tǒng)的設(shè)計[D].蘭州交通大學(xué),2015.[3]趙松玲.GSM智能模塊遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計[J].南方農(nóng)機(jī),2020,51(12):151.[4]劉振.基于STM32智能家居的無線網(wǎng)關(guān)設(shè)計與實(shí)現(xiàn)[D].浙江理工大學(xué),2017.[5]G.W.Yang,Z.Zhang,X.F.Zhang.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國音樂學(xué)院《生物學(xué)課程與教材研究》2023-2024學(xué)年第一學(xué)期期末試卷
- 長春職業(yè)技術(shù)學(xué)院《模擬法庭競賽》2023-2024學(xué)年第一學(xué)期期末試卷
- 豫章師范學(xué)院《汽車用品設(shè)計》2023-2024學(xué)年第一學(xué)期期末試卷
- 霧霾天氣下空氣質(zhì)量改善措施
- 財務(wù)總結(jié)報告及行動計劃模板
- Q2業(yè)務(wù)運(yùn)營報告模板
- 業(yè)務(wù)操作-房地產(chǎn)經(jīng)紀(jì)人《業(yè)務(wù)操作》名師預(yù)測卷2
- 二零二五版加固工程加固施工與信息化合同3篇
- 二零二五年度航空航天發(fā)明專利權(quán)入股技術(shù)轉(zhuǎn)化協(xié)議3篇
- 二零二五版出租車駕駛員勞動合同執(zhí)行規(guī)范5篇
- 學(xué)校對口幫扶工作計劃
- 2024年醫(yī)師定期考核臨床業(yè)務(wù)知識考試題庫及答案(共三套)
- 2014新PEP小學(xué)英語六年級上冊-Unit5-What-does-he-do復(fù)習(xí)課件
- 建筑材料供應(yīng)鏈管理服務(wù)合同
- 孩子改名字父母一方委托書
- 2024-2025學(xué)年人教版初中物理九年級全一冊《電與磁》單元測試卷(原卷版)
- 江蘇單招英語考綱詞匯
- 2024年事業(yè)單位財務(wù)工作計劃例文(6篇)
- 2024年工程咨詢服務(wù)承諾書
- 青桔單車保險合同條例
- 車輛使用不過戶免責(zé)協(xié)議書范文范本
評論
0/150
提交評論