張光南
(寶雞文理學(xué)院陜西寶雞721016)
智能家居(Smart Home)是融合了計算機、通信、控制技術(shù)于一體的現(xiàn)代智慧家居解決方案.目前,國內(nèi)外各種類型的智能家居產(chǎn)品越來越多[1-2]。但一部分采用低性能的CPU作為主控芯片,無法在智能家居系統(tǒng)中集成更復(fù)雜的任務(wù)。還有一部分在控制系統(tǒng)上沒有開發(fā)出更友好的人機界面(GUI),使用戶無法完成便捷的操作。在對智能家居進行充分的研究之后,結(jié)合當(dāng)前較先進的CPU芯片提出了一種方便、快捷、高效的智能家居系統(tǒng).以基于S5PV210處理器和linux2.6.30內(nèi)核的嵌入式系統(tǒng)平臺,采用溫度傳感器DS18B20、人體熱釋電紅外傳感器、氣體傳感器、攝像頭等各類傳感器全方位監(jiān)控家庭信息;使用GSM模塊使用戶可通過短信進行控制并且將傳感器信息反饋給用戶;并搭建BOA服務(wù)器結(jié)合CGI技術(shù)實現(xiàn)客戶端和嵌入式服務(wù)器的數(shù)據(jù)交互,用戶可以通過internet遠程監(jiān)視和控制家電的運行狀態(tài);系統(tǒng)控制界面采用QT技術(shù)開發(fā),并開發(fā)出了基于主從機式的門禁系統(tǒng)。
系統(tǒng)組成如圖1所示,系統(tǒng)采用三星公司的高端ARMCortex-A8 S5PV210處理器作為主控芯片,并由多種傳感器、LCD顯示、GSM通信、以太網(wǎng)通信以及門禁系統(tǒng)等部分構(gòu)成。人機交互采用3種方式:主控制系統(tǒng)將各種信息集成顯示到LCD顯示屏上并通過觸摸屏控制并設(shè)置;系統(tǒng)建立Web服務(wù)器,用戶可通過internet遠程訪問系統(tǒng);用戶可通過GSM方式與系統(tǒng)交互;門禁系統(tǒng)采用主從機方式設(shè)計,主控芯片采用STC89C52。
圖1 系統(tǒng)結(jié)構(gòu)圖Fig.1 System structure diagram
系統(tǒng)軟件開發(fā)首先在系統(tǒng)移植linux2.6.30內(nèi)核,在此平臺下開發(fā)相應(yīng)硬件的驅(qū)動程序;使用QT-creator編寫人機交互界面;在linux2.6.30下配置Boa服務(wù)器;CGI程序主要實現(xiàn)遠程客戶端瀏覽器與服務(wù)器之間控制的數(shù)據(jù)交互;使用AT指令控制GSM模塊與用戶手機通信。
硬件設(shè)計主要介紹各種傳感器電路,門禁系統(tǒng)以及GSM電路3部分。
各傳感器有相應(yīng)的驅(qū)動電路,將其數(shù)據(jù)輸出口與S5PV210處理器的GPIO口相連,各傳感器電路的連接遵循相應(yīng)的電路連接規(guī)范[3]。
門禁系統(tǒng)采用單片機STC89C52芯片作為主控芯片,由單片機、矩陣鍵盤、報警電路、LED指示燈顯示組成,電路設(shè)計如圖2所示。系統(tǒng)能完成開鎖、修改密碼、當(dāng)操作錯誤的次數(shù)大于系統(tǒng)設(shè)置的極限時,系統(tǒng)在報警的同時還會鎖定系統(tǒng)以加強密碼鎖的安全性,系統(tǒng)還具有節(jié)電和掉電保護等功能。密碼設(shè)置在主控系統(tǒng)上LCD觸摸屏上設(shè)置,系統(tǒng)初始化密碼為012345,利用93c46芯片掉電保護功能,對修改后的密碼自動存儲。根據(jù)單片機的返回值,在主控系統(tǒng)QT編寫的界面上可以控制門的打開以及顯示門的狀態(tài)信息。
圖2 門禁系統(tǒng)電路圖Fig.2 Circuit diagram of entrance guard system
TC35i模塊有40個引腳,通過一個ZIF(Zero Insertion Force,零阻力插座)連接器引出。這40個引腳可以劃分為5類,即電源、數(shù)據(jù)輸入/輸出、SIM卡、音頻接口和控制。S5PV210通過擴展的MAX232芯片實現(xiàn)串口通信,TC35i模塊連接到9針的D型插座上,其連接電路如圖3所示。用戶可通過GSM短信功能完成與智能家居控制系統(tǒng)的通信,并獲取家庭內(nèi)各傳感器以及門禁系統(tǒng)的狀態(tài)[4]。
圖3 GSM模塊電路圖Fig.3 Circuit diagram of GSMmodule
本系統(tǒng)使用Qt creator中的Qt設(shè)計器設(shè)計主控系統(tǒng)程序的人機交互界面[5],遵循QT/embedded編程一般規(guī)則編寫代碼,首先實現(xiàn)了各種電氣設(shè)備、傳感器系統(tǒng)、門禁系統(tǒng)、GSM通信的相關(guān)功能控制和設(shè)置以及家庭娛樂功能,然后在主程序中添加國際化和中文支持,最后編譯并通過NFS進行系統(tǒng)測試[6]。
主界面類名為SmartHome,繼承自QWidget類。在其頭文件內(nèi)聲明了6個功能界面對象,應(yīng)用到QListWidgetItem和QListWidget兩個類以及mouseMoveEvent方法管理這六個行為,使其具有顯示隱藏功能。
主界面程序?qū)崿F(xiàn)
class smartHome:public QWidget
{
Q_OBJECT
public:
smartHome(QWidget*Parent=O):
~SmartHome(){}
/*6個功能界面*/
Mycalender*my_calender:
Camer*Camera:
Led*led:
Login*login:
Homecontrol*hongwai:
Imageviewer*imageviewer:
QTimer*timer:
QLabel*labell,*label2:
QListwidgetrtem*item1:
QListwidget*list:
QStackedwidghet*funcwidget:
QDatetime s:
QVBoxLayout*vlayout:
BOA服務(wù)器是一個小巧高效的、特別適合嵌入式系統(tǒng)的單任務(wù)的web服務(wù)器,它可以運行在linux下并支持CGI。本系統(tǒng)中,首先完成在linux下Boa源代碼的下載、修改和交叉編譯,在etc目錄下面新建boa文件夾,將可執(zhí)行文件boa及boa.conf放置到該目錄下,并將mini.types復(fù)制到etc目錄下,在對boa.conf和mini.types兩個文件完成配置,最后在終端運行./boa&。
JavaScript是一種廣泛用于客戶端Web開發(fā)的腳本語言,它基于對象和事件驅(qū)動并具有相對安全性,常用來給HTML網(wǎng)頁添加動態(tài)功能,比如響應(yīng)用戶的各種操作。CSS(Cascading Style Sheet)可譯為“層疊樣式表”或“級聯(lián)樣式表”,它定義如何顯示HTML元素,用于控制Web頁面的外觀。通過使用CSS實現(xiàn)頁面的內(nèi)容與表現(xiàn)形式分離,極大提高了工作效率。樣式存儲在樣式表中,通常放在<head>部分或存儲在外部CSS文件中。利用CSS和JavaScript編寫客戶端網(wǎng)頁界面如圖4所示。
經(jīng)測試,本系統(tǒng)安全可靠,性能穩(wěn)定,可以使用主控系統(tǒng)界面便捷的對家居系統(tǒng)的各個功能完成設(shè)置與控制,本地客戶還可通過一臺上網(wǎng)的計算機或一部手機即可以靈活方便實現(xiàn)對家居系統(tǒng)完成監(jiān)控。此系統(tǒng)工作穩(wěn)定,擴展性強,配置靈活,功能豐富,具有良好的移植性、通用性,具有廣闊的應(yīng)用前景。
圖4 客戶端智能家居控制網(wǎng)頁界面Fig.4 Smart home control webpage interface
[1] 劉舉平,余為清.基于GSM技術(shù)的智能家居遠程控制器設(shè)計[J].微計算機信息,2010,26(4):45-46.LIU Ju-ping,YU Wei-qing.The remote controller design of intelligent home based on GSMtechnology[J].Microcomputer Information,2010,26(4):45-46.
[2] 周維龍,吳桂清.基于S3C2410的智能家居數(shù)據(jù)采集系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2010(2):38-43.ZHOU Wei-long,WU Gui-qing.Design of smart home data acquisition system based on S3C2410[J].Modern Electronics Technique,2010(2):38-43.
[3] 周洪,胡文山,張立名,等.智能家居控制系統(tǒng)[M].北京:中國電力出版社,2006.
[4] 潘朝,羅小巧.基于GSM短信的智能家居控制系統(tǒng)的設(shè)計[J].電子測量技術(shù),2013,36(6):121-124.PAN Chao,LUO Xiao-qiao.Design of smart home controlling system based on GSMSMS[J].Electronic Measurement Technology,2013,36(6):121-124.
[5] Jasmin Blanchette.C++GUI Qt4編程[M].2版北京:電子工業(yè)出版社,2008.
[6] 陳鯤,陳云秋.基于Qt_Embedded的嵌入式Linux應(yīng)用程序的設(shè)計[J].計算機與數(shù)字工程,2009,37(1):156-161.CHEN Kun,CHEN Yun-qiu.Design of the embedded Linux application program based on Qt/Embedded[J].Computer&Digital Engineering,2009,37(1):156-161.