我是一個在校本科生,在實驗室學(xué)習(xí),前幾周根據(jù)老師的意思設(shè)計一個家庭智能消防系統(tǒng),需要完成的基本功能分為檢測,GSM通訊電話短信報警,語音播報,水泵滅火等方面。雖然簡單,但是其中確實也遇到了一些困難,所以把我這個方案的整個思路分享給大家,希望對大家有所幫助。同時也歡迎大神提出我的錯誤之處,給與我新的指導(dǎo),感激不盡。PS:電路,程全部在壓縮包里。芯片是STC89C52
智能報警撲救系統(tǒng)主要可以分為火災(zāi)隱患檢測,火災(zāi)發(fā)生自動報警,火災(zāi)發(fā)生語音引導(dǎo)逃生,火災(zāi)發(fā)生自動施雨撲救滅火,這四個基本功能。其中第一項火災(zāi)隱患檢測用到了三個傳感器,溫度傳感器用于感應(yīng)屋內(nèi)不正常的熱源起到警示作用,煙霧氣體傳感器用于感應(yīng)液化氣,天然氣等易燃?xì)怏w,當(dāng)感應(yīng)到屋內(nèi)氣體濃度到達(dá)設(shè)定的閾值時,蜂鳴器會起到警示作用。火焰?zhèn)鞲衅鳈z測到周圍有火焰出現(xiàn)時,即火災(zāi)已經(jīng)初步發(fā)生,系統(tǒng)馬上啟動報警功能,向設(shè)定好的人發(fā)短信及撥打電話,并且警報聲響,語音播報開始引導(dǎo)人們開始逃生,同時,由系統(tǒng)控制的水泵開始降雨撲火。由于火災(zāi)發(fā)生時,家庭電源一般自動斷電,所以本套系統(tǒng)采用自給供電,可以避免火災(zāi)發(fā)生造成電路損壞無法工作的情況發(fā)生。
接下來說一下每個模塊的簡單情況,
(1)溫度傳感器,用的是大眾化的DS18B20芯片,我用的模塊上只有三個接口,GND,VCC,DQ,DQ是數(shù)據(jù)傳送接口,只需要連接到單片機(jī)上的一個普通的引腳上就可以。因為之前在測試溫度的時候,只有模塊沒有看不到實際溫度,所以我接了一個四位數(shù)碼管來顯示溫度,我提供的程序只顯示兩位數(shù),不精確到小數(shù)點后兩位,實際上我并不需要那么精確的溫度,而且這個模塊說實話,你想要的很精確的話,最好別用這么廉價的。這個模塊不難,說的就這么多。
(2)煙霧氣體傳感器,我當(dāng)時為了找那個可以檢測煙霧的傳感器在淘寶上找了好久,一搜索總是彈出來一大堆,MQ-2,MQ-5之類的傳感器,之后我發(fā)現(xiàn)這類傳感器根本不能檢測到煙霧,只是檢測可燃?xì)怏w,后來找到離子煙霧傳感元件,但是很可惜只是有個元件,我懶得焊電路,就沒有用這個,現(xiàn)在用的是MQ-5,MQ-5傳感器有四個口,GND,VCC,DO,AO。DO是數(shù)字輸出,什么是數(shù)字輸出呢,就是只輸出0和1,連接到單片機(jī)上就可以判斷成高低電平很方便,缺點是不夠精確的控制,你可以調(diào)節(jié)它的精度來簡單的判斷,比如說你調(diào)節(jié)到中間,那么只有一它檢測到氣體濃度到達(dá)那個閾值后,DO就可以輸出1報警什么的(之后自己加一個響應(yīng)),AO是模擬輸出,就是輸出模擬值,這個值可以通過PCF8591芯片進(jìn)行DA模數(shù)轉(zhuǎn)換成具體的值,然后在程序里if這個值,來精確的控制,可以這樣說,假如把精度區(qū)間分成100,那么手動調(diào)節(jié)精度旋鈕只是粗略的判斷,你們用數(shù)模轉(zhuǎn)化值判斷的話就很精確了,比如87?等等根據(jù)需要。
(3)火焰?zhèn)鞲衅鳎且粋可以檢測火焰的傳感器,一般是用作機(jī)器人眼睛尋找判斷熱源的,它的用法和MQ-5極其極其的相似,在這里我就不贅述了,其他的描述大家可以百度百科。
(4) 語音播報模塊,簡單通俗的說,就是一個錄音放音的模塊,因為只是簡單的項目,所以買了一個幾塊錢的可以錄音10S的,可以手動操作,上面有可供選擇的按鍵,錄音鍵,播放鍵,同時也有兩排引腳和兩個跳線帽可以控制不同的播放模式,循環(huán)播放還是怎么的,同時由直通模式,可以做喊話器,說實話還挺好玩的,編程控制就是接到單片機(jī)上通過引腳控制。
(5) 水泵模塊,這個小水泵也是淘寶上逛了好久才發(fā)現(xiàn)了,供電12V,想到火災(zāi)發(fā)生時,電都斷了,怎么給他供電,所以就買了一個12V的可充電電池,同時用降壓模塊,可以把12V降到5V供單片機(jī)使用,這就已經(jīng)解決了電源的問題。其次,因為水泵模塊沒法直接用單片機(jī)控制,所以用到了一個繼電器模塊,繼電器模塊的原理,相信高中都學(xué)過,而且網(wǎng)上一大推原理圖,一頭接單片機(jī)VCC,GND,io口,另一頭接12V電池正,水泵負(fù)極。
(6) GSM通信模塊是有難度的,以前也沒接觸過,剛開始淘寶店家發(fā)的資料也啥都不是,只有一堆指令還有一個軟件可以用,看的暈暈乎乎的,后來同樣在論壇發(fā)現(xiàn)了一個我可以用的程序,檢查之后發(fā)現(xiàn)還是不適合自己,所以只能自己辛苦的探索了,我用的是安可信A6的GSM通信模塊,想?yún)⒖嫉耐瑢W(xué)首先你得有個這樣的板子不是,首先,你的確需要了解一堆指令,我這次項目用到的是打電話和發(fā)短信,發(fā)短信相關(guān)的指令有AT,AT+CMGF=1,AT+CSCS,AT+CMGS,電話相關(guān)的指令有AT+SNFS=0,ATD+86132222222222,因為這個是需要單片機(jī)的串口進(jìn)行發(fā)送指令,GSM模塊才會響應(yīng)的,所以單純的每次修改程序,下載測試,,肯定非常的麻煩,所以必須要用到串口助手軟件,在電腦直接連接到模塊,通過串口助手發(fā)送指令信息,測試功能,在經(jīng)歷N多次失敗后,終于測試出了正確的指令及正確的指令發(fā)送順序 - while(i--)
- {
- if (sendCommand("AT\r\n", "", 500, 2) == Success);
- delay_ms(500);
- if (sendCommand("AT+CMGF=1\r\n", "", 500, 1) == Success);
- delay_ms(500);
- if (sendCommand("AT+CSCS=\"GSM\"\r\n", "", 500, 1) == Success);
- delay_ms(500);
- if (sendCommand("AT+CMGS=\"13592606142\"\r\n", "", 500, 1) == Success);
- delay_ms(500);
- if (sendCommand("Fire is coming!!!", "", 500, 1) == Success);
- delay_ms(500);
- if (sendCommand(send_buf, "", 500, 1) == Success);
- delay_ms(5000);
- }
- /******************打電話****************************/
- while(j--)
- {
- if (sendCommand("AT\r\n", "", 500, 1) == Success);
- delay_ms(500);
- if (sendCommand("AT+SNFS=0\r\n", "", 500, 1) == Success);
- delay_ms(500);
- if (sendCommand("ATD+8613592606142\r\n", "", 500, 1) == Success);
- delay_ms(20000);
-
- while(1);
- }
復(fù)制代碼需要注意的事,因為我之前是找到的別人的代碼程序,但是對于我的板子并不適用,所以我修改了大量的代碼,但是幾乎保存了原來作者的風(fēng)格,其中比如if (sendCommand("AT\r\n", "", 500, 1) == Success);我改動了延時,減少了指令發(fā)送次數(shù),本來是10次,現(xiàn)在一次或者兩次,延時增加,并且取消了返回值(這樣子其實不好,但是我每次測試都是100%成功,反而加上成功返回值反而總是失敗,所以干脆不加了,就是引號里本來是OK,但是現(xiàn)在什么都沒有加,)曾經(jīng)有一段時間我已經(jīng)可以發(fā)送短信了,但是我要求發(fā)送三條,但是總是偷空減料的只有僅僅一條,精心的研程序,并沒有什么可以看到的錯誤,困惱了一天,又拿到串口上測試,用同樣的延時,結(jié)果可以看到,成功的次數(shù)并不多,但是可以發(fā)送,所以在想,到底有時可以發(fā)送有時不可以有時為什么?突然聯(lián)想到反應(yīng)速度這個詞上,如果我連續(xù)發(fā)送的數(shù)據(jù)模塊其實反應(yīng)不過來那豈不是就是發(fā)送不成功了嗎,馬上增加延時時間到十倍,結(jié)果很完美,很成功的發(fā)送,看著連續(xù)的短信發(fā)來,開心,(心疼話費一波)后來調(diào)試到之前延時的2.5倍發(fā)現(xiàn)剛好不會出現(xiàn)錯誤,要不然指令那么慢,家都燒完了,電話才打出去豈不是完蛋了哈哈。這個模塊功能很強(qiáng)大,當(dāng)然現(xiàn)在我只是學(xué)會了使用淺顯的一層,之后還是要好好看看的,畢竟40多大洋呢,雖然不是自己的錢買的,嘿嘿。 我會把數(shù)據(jù)資料和程序單獨發(fā)過來的,大家可以互相交流,畢竟我也是一只正在努力的小菜鳥了啊,眼界太窄,希望前輩指教。
突然發(fā)現(xiàn)數(shù)據(jù)資料100多兆,不讓傳,所以上傳都百度云盤了 下載地址:
如果文件已經(jīng)失效請聯(lián)系論壇管理員qq125739409更新鏈接,51黑論壇的每一個用戶分享的網(wǎng)盤內(nèi)容都是有備份的.
http://pan.baidu.com/s/1hs6Bai4
源碼下載地址:
完整版程序.rar
(91.82 KB, 下載次數(shù): 262)
2017-8-29 16:47 上傳
點擊文件名下載附件
|