任工昌+張戈



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