任工昌+張戈
摘 要: 為了實(shí)現(xiàn)家居環(huán)境信息的可視化,設(shè)計(jì)一款智能家居信息儀。該系統(tǒng)基于STC12芯片集成了時(shí)鐘顯示、溫濕度檢測(cè)、有害氣體濃度檢測(cè)與報(bào)警、防盜報(bào)警、噪音檢測(cè)等功能。該系統(tǒng)設(shè)計(jì)分為硬件設(shè)計(jì)和軟件設(shè)計(jì),硬件部分介紹各部分硬件選型及總電路的設(shè)計(jì),軟件部分采用C語言編程實(shí)現(xiàn)各個(gè)模塊程序的設(shè)計(jì)及整個(gè)系統(tǒng)的程序設(shè)計(jì)。結(jié)果表明,該系統(tǒng)功能全面,具有經(jīng)濟(jì)性、實(shí)用性等優(yōu)點(diǎn)。
關(guān)鍵詞: 智能家居; 單片機(jī)控制; 液晶顯示; 防盜報(bào)警; 噪音檢測(cè)
中圖分類號(hào): TN911?34; TN99 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2017)08?0069?04
Design and realization of intelligent home information instrument based on STC12
REN Gongchang, ZHANG Ge
(School of Mechatronics Engineering, Shaanxi University of Science and Technology, Xian 710021, China)
Abstract: In order to achieve the visualization of home environment information, a smart home information instrument was designed. The functions of clock display, temperature?humidity detection, harmful gas concentration detection and alarm, burglar alarm and noise detection are integrated in the system based on STC12 chip. The design of system is divided into two parts of hardware and software. The selection of some hardwares and overall circuit design are introduced in the hardware section. C language programming is adopted in the software section to realize program design of each module and program design of the whole system. The result shows that the function of the system is comprehensive, and has the advantages of economy and practicability.
Keywords: intelligent home; SCM control; liquid crystal display; burglar alarm; noise detection
0 引 言
智能家居依托信息技術(shù)的發(fā)展已經(jīng)成功地在智能化市場(chǎng)占有一席之地。智能家居是以家居環(huán)境為平臺(tái),融合了建筑科學(xué)、通信技術(shù)、網(wǎng)絡(luò)信息、計(jì)算機(jī)技術(shù)、自動(dòng)控制等多領(lǐng)域技術(shù)知識(shí)而產(chǎn)生的高科技居住環(huán)境。智能家居功能強(qiáng)大、服務(wù)全面、管理高效,相對(duì)于傳統(tǒng)家居,給居住者提供更安全、更舒適、更便利及更環(huán)保的家居環(huán)境[1]。本文通過STC12C5A60S2芯片控制,設(shè)計(jì)開發(fā)并實(shí)現(xiàn)了一套智能家居信息儀。本系統(tǒng)以STC12C5A60S2芯片為核心,其具有顯示時(shí)鐘、溫濕度等信息,檢測(cè)有害氣體、防盜報(bào)警以及噪音檢測(cè)等多樣實(shí)用的功能,可實(shí)現(xiàn)人們對(duì)居住環(huán)境信息的直觀監(jiān)測(cè),相對(duì)于精度更高、智能化水平更好的智能家居設(shè)備,本儀器具有經(jīng)濟(jì)性,實(shí)用性等特點(diǎn)。
1 系統(tǒng)總體設(shè)計(jì)思路
智能家居信息儀的主控制器是整個(gè)系統(tǒng)處理的核心模塊。本系統(tǒng)基于STC12主控芯片將各個(gè)功能劃分成模塊進(jìn)行設(shè)計(jì),并根據(jù)需要的功能分為如下模塊:?jiǎn)纹瑱C(jī)模塊、時(shí)鐘模塊、溫濕度檢測(cè)模塊、有害氣體濃度檢測(cè)與報(bào)警模塊、防盜報(bào)警模塊、噪音檢測(cè)模塊、顯示模塊、報(bào)警模塊、按鍵模塊。系統(tǒng)總體模塊框圖如圖1所示。
2 系統(tǒng)硬件設(shè)計(jì)
智能家居信息儀主要涉及到的硬件包括STC12C5A60S2芯片、LCD12864B液晶顯示、DS1302芯片、DHT11傳感器、MQ?7氣體傳感器、熱釋電紅外線(PIR)傳感器等。
2.1 單片機(jī)模塊
主控制芯片選擇STC12C5A60S2是因?yàn)槠渥銐虻膬?nèi)存(60 KB),自身帶有8路高速10位A/D轉(zhuǎn)換,可以滿足系統(tǒng)的要求。但問題在于它的運(yùn)行速度變快了很多,相對(duì)于傳統(tǒng)8051其平均加快了8~12倍,每條指令提升的速度不一致,從最快的24倍到最慢的3倍。因此系統(tǒng)中對(duì)時(shí)間要求比較高的功能模塊芯片需要精確測(cè)量每個(gè)延時(shí)函數(shù)在STC12C5A60S2上的執(zhí)行時(shí)間,才能實(shí)現(xiàn)每個(gè)模塊的功能[2]。STC12C5A60S2系列單片機(jī)引腳如圖2所示。
2.2 液晶顯示模塊
本系統(tǒng)最終顯示的內(nèi)容較多且有漢字,因此選擇可顯示漢字及圖形的LCD12864液晶顯示模塊。LCD12864是128×64點(diǎn)陣的漢字圖形型液晶顯示模塊,支持串行和并行通信,本系統(tǒng)選擇8位并行通信方式[3]。根據(jù)LCD12864顯示原理設(shè)計(jì)的顯示界面如圖3所示。
2.3 時(shí)鐘模塊
本系統(tǒng)在外電路連接DS1302時(shí)鐘芯片,從而實(shí)現(xiàn)對(duì)年、月、周、日、時(shí)、分、秒的計(jì)數(shù)。該芯片精確度高,價(jià)格便宜,采用雙電源供電,可以接上外部電源自動(dòng)計(jì)時(shí),當(dāng)系統(tǒng)停止供電時(shí),備用電源供電繼續(xù)計(jì)時(shí)。該芯片接線簡(jiǎn)便、功能強(qiáng)大,完全符合本系統(tǒng)的要求,因此采用DS1302時(shí)鐘芯片[4]。DS1302芯片的引腳圖如圖4所示。
2.4 溫濕度模塊
溫濕度檢測(cè)若分別采用溫度傳感器和濕度傳感器測(cè)量,精度會(huì)更高,穩(wěn)定性也會(huì)更好,但考慮到家居環(huán)境并不需要非常精確的檢測(cè)結(jié)果,決定選用DHT11數(shù)字溫濕度傳感器。它由一款感濕元件(電阻式)和一個(gè)NTC測(cè)溫元件組成,集成了溫濕度傳感器的功能,并連接性能很高的8位單片機(jī)。因此質(zhì)量?jī)?yōu)良,響應(yīng)速度快,并且具有很強(qiáng)的抗干擾能力[5],其測(cè)量范圍為濕度20%~90% RH,溫度0~50 ℃;測(cè)量精度為濕度±5% RH,溫度±2 ℃,滿足家居環(huán)境的檢測(cè)需求。DHT11引腳名稱與功能如表1所示。
表1 DHT11引腳名稱與功能
2.5 有害氣體檢測(cè)模塊
本設(shè)計(jì)選擇家居環(huán)境中常見的CO作為有害氣體的代表,實(shí)時(shí)檢測(cè)空氣中的CO濃度,當(dāng)空氣中CO濃度大于閾值16 PPM時(shí),系統(tǒng)啟動(dòng)蜂鳴器警告用戶。MQ?7傳感器檢測(cè)CO的靈敏度高、穩(wěn)定性強(qiáng)、成本低,而且可檢測(cè)多種含CO的氣體,可滿足家居環(huán)境中CO的檢測(cè)要求[6]。MQ?7傳感器的引腳功能如表2所示。
表2 MQ?7傳感器的引腳功能
2.6 熱釋紅外防盜報(bào)警模塊
圖5是熱釋紅外探測(cè)單元結(jié)構(gòu)圖。其包括透鏡聚焦系統(tǒng)、紅外感知器件和檢測(cè)處理信號(hào)等部分。大致流程為:人體自發(fā)輻射的紅外線通過菲涅爾透鏡聚焦到熱釋電紅外探測(cè)單元;人體的紅外信號(hào)由熱釋電紅外傳感器轉(zhuǎn)換成電信號(hào)并傳輸給檢測(cè)處理信號(hào)部分進(jìn)行處理;最終將處理的結(jié)果送到微控制器,啟動(dòng)報(bào)警功能。
2.7 噪音檢測(cè)模塊
聲壓可以由MIC 檢測(cè),聲壓的大小由MIC 輸出電平的大小表示。MIC輸出的電平進(jìn)行放大,ADC 采樣和量化后,就是波形數(shù)據(jù)[7]。噪音檢測(cè)電路如圖6所示。噪音聲波經(jīng)MIC檢測(cè)并轉(zhuǎn)換為電壓信號(hào)后,由運(yùn)算放大器NE5532將電壓信號(hào)放大。其放大原理為:12 V直流電源與可變的R13結(jié)合改變NE5532的增益,使交流信號(hào)經(jīng)過線性放大后變化范圍為-6~6 V。由D11,R17組成的半波整流電路將放大后的信號(hào)檢出0~6 V的直流脈沖信號(hào),再通過C14將高次諧波濾除,形成相對(duì)平滑的直流波動(dòng)電平。由C14和R17組成的RC大約只有0.1 s的時(shí)間常數(shù),因此噪音信號(hào)的直流平均電壓可以快速反映,保證實(shí)時(shí)地檢測(cè)出噪聲。同時(shí),ADC0809的0~5 V的A/D轉(zhuǎn)換范圍將被0~6 V的直流電壓覆蓋,電平的轉(zhuǎn)換需求得到滿足[8]。
2.8 蜂鳴器報(bào)警模塊
蜂鳴器驅(qū)動(dòng)方式為I/O口定時(shí)翻轉(zhuǎn)電平,所以需要交變的信號(hào)來驅(qū)動(dòng)蜂鳴器。本系統(tǒng)的報(bào)警信號(hào)產(chǎn)生方式為:選取P3.6口輸出167 Hz和500 Hz的音頻信號(hào)驅(qū)動(dòng)蜂鳴器。報(bào)警信號(hào)產(chǎn)生的具體方法為:周期為2 ms的500 Hz音頻信號(hào),每間隔1 ms變反1次作為信號(hào)電平;周期為6 ms的167 Hz音頻信號(hào),每間隔3 ms變反1次作為信號(hào)電平。三極管將兩個(gè)頻率不同的信號(hào)放大后,經(jīng)過蜂鳴器LS,即可產(chǎn)生頻率不同的報(bào)警聲。由于本系統(tǒng)需要報(bào)警的模塊有有害氣體檢測(cè)報(bào)警和防盜報(bào)警兩個(gè)模塊,所以通過設(shè)置不同的報(bào)警聲來區(qū)別不同模塊的報(bào)警。有害氣體檢測(cè)的報(bào)警聲是響2 s停0.5 s,防盜報(bào)警的報(bào)警聲是蜂鳴器一直在響。
2.9 按鍵模塊
本系統(tǒng)的時(shí)鐘顯示模塊在開始時(shí)需要通過按鍵設(shè)置初始值,因此需要3個(gè)按鍵,其功能及定義為:按鍵1為時(shí)間調(diào)整,按鍵2,3分別為加和減。由于本系統(tǒng)所需按鍵數(shù)量較少,考慮到編寫程序的簡(jiǎn)單,采用3個(gè)獨(dú)立式按鍵。由于是用I/O口線直接構(gòu)成的單個(gè)按鍵電路,獨(dú)立式按鍵形成了自己的特點(diǎn):一個(gè)按鍵對(duì)應(yīng)一根I/O口線,各個(gè)按鍵運(yùn)行時(shí)互不影響,獨(dú)立工作。獨(dú)立式按鍵的優(yōu)點(diǎn)是軟件編程簡(jiǎn)單,硬件電路可靈活配置,不足之處在于按鍵需求較多時(shí),由于每個(gè)按鍵占用一根I/O口線,所以需要同等數(shù)量的I/O口線,在資源較少時(shí)不宜采用。
3 系統(tǒng)軟件設(shè)計(jì)
智能家居信息儀系統(tǒng)的軟件程序設(shè)計(jì)是基于STC12C5A60S2單片機(jī),采用C語言編程,程序編寫及軟件調(diào)試用Keil。在軟件設(shè)計(jì)中,結(jié)合硬件原理圖來設(shè)計(jì)各個(gè)模塊的程序流程圖并實(shí)現(xiàn)各個(gè)模塊的功能,最后將編寫好的各個(gè)模塊的程序按照整體思路整合在一起就基本形成了本系統(tǒng)設(shè)計(jì)所需求的軟件系統(tǒng),再通過聯(lián)機(jī)調(diào)試、修改完成系統(tǒng)的軟件設(shè)計(jì)。如圖7所示為主程序流程圖。
3.1 系統(tǒng)軟件調(diào)試
3.1.1 Keil軟件介紹
Keil C51是一款軟件開發(fā)系統(tǒng),其為51系列并兼容單片機(jī)C語言,由美國(guó)Keil Software公司出品。C語言和匯編語言相比,功能更強(qiáng)大、結(jié)構(gòu)更簡(jiǎn)單、可讀性更強(qiáng)而且便于維護(hù),對(duì)于使用者而言學(xué)習(xí)更簡(jiǎn)單、應(yīng)用更方便。若開發(fā)者用過匯編語言之后再用C語言編程,會(huì)有更加深刻地體會(huì)。Keil C51軟件為全Windows界面,其庫(kù)函數(shù)內(nèi)容豐富,集成開發(fā)調(diào)試工具的功能也非常強(qiáng)大。在開發(fā)大型軟件時(shí)高級(jí)語言的優(yōu)勢(shì)就得到了充分的展現(xiàn),關(guān)鍵在于Keil C51可以非常高效地生成的目標(biāo)代碼,多數(shù)語句編譯后生成的匯編代碼結(jié)構(gòu)緊湊,便于理解[9]。
3.1.2 程序在Keil環(huán)境下的調(diào)試
新建工程,選擇主控芯片,STC12C5A60S2可以當(dāng)成Intel的8052/87C52/87C54/87C58,或者Philips的P87C52/P87C54/P87C58。然后設(shè)置晶振及生成HEX文件,編寫程序,保存為c文件,再添加到項(xiàng)目并進(jìn)行軟件編譯。
3.1.3 利用Keil軟件測(cè)延時(shí)
在按照時(shí)序圖編寫程序的時(shí)候,一些對(duì)程序執(zhí)行時(shí)間要求較高的器件,它的每一步執(zhí)行時(shí)間必須在時(shí)序圖的要求內(nèi),這時(shí)靠軟件來延時(shí)的程序就得知道它們具體的運(yùn)行時(shí)間,Keil軟件在運(yùn)行程序的時(shí)候可以看到每條程序執(zhí)行所需的時(shí)間。第一次運(yùn)行sec為0.000 424 26 s,第二次運(yùn)行sec為0.001 430 12 s,其相差大概在1 ms。這個(gè)Delay程序就是1 ms的延時(shí)程序。通過修改Delay中的參數(shù)就可以改變延時(shí)時(shí)間,達(dá)到器件的時(shí)序圖要求。
3.1.4 STC程序在線下載
通過STC官方程序下載軟件對(duì)程序進(jìn)行在線下載,首先進(jìn)行芯片選擇,然后選擇HEX文件,連接串口選擇,最終實(shí)現(xiàn)在線下載。
3.2 系統(tǒng)顯示結(jié)果
經(jīng)過硬件選型設(shè)計(jì)及軟件程序設(shè)計(jì),調(diào)試后結(jié)果如圖8所示,該系統(tǒng)顯示屏可以顯示時(shí)間、溫濕度和噪音信息;當(dāng)空氣中CO濃度超標(biāo)則會(huì)有報(bào)警系統(tǒng)提示;當(dāng)主人離開家時(shí)設(shè)置系統(tǒng)防盜報(bào)警模式,若有外人進(jìn)入家中系統(tǒng)就會(huì)啟動(dòng)報(bào)警裝置。
4 結(jié) 語
本文在STC12C5A60S2芯片控制的基礎(chǔ)上,設(shè)計(jì)并實(shí)現(xiàn)了一套智能家居信息儀。本系統(tǒng)以微控系統(tǒng)為核心,其具有顯示時(shí)鐘、溫濕度等信息,檢測(cè)有害氣體、防盜報(bào)警以及噪音檢測(cè)等多樣實(shí)用的功能,適合安放于居室、教室、辦公室、宿舍等不同場(chǎng)合,是辦公、居家等地點(diǎn)的安全與生活小助手。
參考文獻(xiàn)
[1] 張玲.一種基于STM32的智能家居系統(tǒng)設(shè)計(jì)[J].電子技術(shù),2014(11):51?54.
[2] 宋鳳娟,付侃,薛雅麗.STC12C5A60S2單片機(jī)高速A/D轉(zhuǎn)換方法[J].煤礦機(jī)械,2010(6):219?221.
[3] 劉磊.基于STM32的電子萬年歷系統(tǒng)設(shè)計(jì)[J].科技資訊,2015(1):20.
[4] 任志敏.基于DS1302和LCD1602的萬年歷系統(tǒng)設(shè)計(jì)[J].電腦開發(fā)與應(yīng)用,2015(3):28?30.
[5] 李長(zhǎng)有,王文華.基于DHT11溫濕度測(cè)控系統(tǒng)設(shè)計(jì)[J].機(jī)床與液壓,2013(13):107?108.
[6] 陳軍統(tǒng),潘再平,楊舒捷.基于9S12XS128單片機(jī)煤氣報(bào)警器設(shè)計(jì)[J].制造業(yè)自動(dòng)化,2012(6):132?135.
[7] 尹曉琦.基于GPRS和虛擬儀器的環(huán)境噪聲監(jiān)測(cè)系統(tǒng)[J].湖南科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2014(1):102?105.
[8] 瞿少成,艾寧,徐海洋,等.基于噪音檢測(cè)的自適應(yīng)音量控制系統(tǒng)的研制[J].電子測(cè)量技術(shù),2009(4):94?96.
[9] 吳挺運(yùn),林成何.Keil C51精確延時(shí)程序設(shè)計(jì)[J].電子科技,2012(12):103.