物聯(lián)傳媒 旗下網(wǎng)站
登錄 注冊(cè)
RFID世界網(wǎng) >  解決方案  >  其他  >  正文

基于Qt/Embedded觸摸屏的智能家居控制系統(tǒng)方案

作者:RFID世界網(wǎng)收錄
來(lái)源:17ic
日期:2013-04-22 12:42:47
摘要:隨著生活質(zhì)量的提高,家居智能化已經(jīng)成為當(dāng)今時(shí)代的一種主流。如何更好的設(shè)計(jì)智能家居的整體性控制就顯得越來(lái)越重要。
關(guān)鍵詞:智能家居zigbee觸摸屏ARM

1 引言

  隨著生活質(zhì)量的提高,家居智能化已經(jīng)成為當(dāng)今時(shí)代的一種主流。如何更好的設(shè)計(jì)智能家居的整體性控制就顯得越來(lái)越重要。由于ARM 和觸摸屏的迅速發(fā)展,采用更好的GUI,實(shí)現(xiàn)友好的界面控制成為了可能;同時(shí)由于zigbee 無(wú)限傳輸技術(shù)的廣泛應(yīng)用,通過設(shè)計(jì)zigbee 的協(xié)議組網(wǎng),使ARM 能輕易的通過的串口驅(qū)動(dòng)程序?qū)崿F(xiàn)智能家居的控制;同時(shí),通過ARM 對(duì)萬(wàn)能遙控器的識(shí)別碼的學(xué)習(xí),實(shí)現(xiàn)了ARM 在智能家居上的多功能應(yīng)用和智能家居的一體化控制。

2 系統(tǒng)設(shè)計(jì)概述

  基于嵌入式智能家居的設(shè)計(jì)結(jié)構(gòu)框圖如圖1 所示。主要包括以下幾部分。Qt/E 及l(fā)inux 系統(tǒng)、ARM9微處理器、zigbee 模塊、語(yǔ)音模塊、GSM 模塊、串口和網(wǎng)絡(luò)模塊以及萬(wàn)能遙控器。

  圖1 智能家居設(shè)計(jì)結(jié)構(gòu)框圖

  ARM9 微處理器采用Samsung S3C2440 CPU開發(fā)板,系統(tǒng)選擇嵌入式linux 系統(tǒng),其內(nèi)核使用2.6.25.8 的內(nèi)核,nandflash 采用256M 的內(nèi)存。且由于arm 內(nèi)核集成了多種外設(shè)控制模塊的驅(qū)動(dòng)程序,所以要對(duì)其進(jìn)行必要的裁剪,串口用于連接zigbee模塊。

  Zigbee 采用TI 公司的CC24430 無(wú)線射頻芯片,zigbee 有顯著的低成本、低消耗、網(wǎng)絡(luò)節(jié)點(diǎn)多等的無(wú)線傳輸功能,所以可以將一個(gè)zigbee 作為路由,通過一個(gè)zigbee 向多個(gè)zigbee 傳輸?shù)墓δ?,?shí)現(xiàn)zigbee 的組網(wǎng)的,也有效的延長(zhǎng)了zigbee 的傳輸距離。

  網(wǎng)絡(luò)模塊采用CS8900A,通過連接路由器,實(shí)現(xiàn)遠(yuǎn)程登入。

3 系統(tǒng)軟件設(shè)計(jì)實(shí)現(xiàn)

  系統(tǒng)采用linux 作為操作系統(tǒng), 首先基于Qt/Embedded 進(jìn)行圖形界面的設(shè)計(jì),再在宿主機(jī)上建立交叉編譯環(huán)境,并制作yaffs 操作系統(tǒng),最后將嵌入式linux 系統(tǒng)移植到ARM9 開發(fā)板上。系統(tǒng)通過設(shè)計(jì)GUI 界面,實(shí)現(xiàn)通過觸摸屏對(duì)智能家居的一體化控制[1]。文章軟件部分包括嵌入式linux 操作系統(tǒng)的移植、系統(tǒng)界面設(shè)計(jì)、串口驅(qū)動(dòng)和zigbee 組網(wǎng)設(shè)計(jì)。

  在ARM9 和zigbee 的傳輸過程中,有一個(gè)智能家居的單元端接口設(shè)置。為了區(qū)別于不同家庭之間的傳輸,首先ARM9 會(huì)有一個(gè)各自家庭的主機(jī)ID 號(hào)設(shè)置。在一個(gè)家庭的智能化控制上,給路由功能的zigbee 設(shè)計(jì)八個(gè)端口,每個(gè)端口有一個(gè)ID 號(hào),然后其余的連接路由的zigbee 通過接受各自ID 號(hào)的分別傳輸信息,最后,這些zigbee 又分別設(shè)置各自的設(shè)備號(hào),這樣就去除了干擾,實(shí)現(xiàn)智能家居的單獨(dú)控制。

  3.1 觸摸屏和Qt/Embedded 交叉編譯環(huán)境的建立

  在建立交叉編譯環(huán)境之前先要進(jìn)行l(wèi)inux 系統(tǒng)移植,Linux 系統(tǒng)的移植主要主要包括BootLoad 移植、內(nèi)核移植與裁剪以及文件系統(tǒng)移植等部分[2]。文章選用u-boot 作為BooLload 引導(dǎo)程序。Linux 內(nèi)核由于其公開性,很容易實(shí)現(xiàn)其移植和裁剪。文件系統(tǒng)這采用yaffs 根文件系統(tǒng)。

  觸摸屏和Qt/Embedded 的交叉編譯環(huán)境的建立是linux 系統(tǒng)移植的關(guān)鍵部分。其步驟如下。

  第一步是進(jìn)行觸摸屏校正,設(shè)計(jì)中采用tislib-1.4作為觸摸屏的校正。其分為兩步:(1)編譯tislib,產(chǎn)生校正文件。(2)是下載校正文件和庫(kù)文件到arm 板,實(shí)現(xiàn)五點(diǎn)校正。其編譯過程如下。

  第二步是Qt/E 的交叉編譯。設(shè)計(jì)中Qt/E 采用qt-embedded-linux-opensource-src-4.5.0.同時(shí)為了方便程序開發(fā),需要安裝X86 版和ARM 版。

  先在PC 上使用x86 版和qvfb 開發(fā),完成以后再使用ARM 交叉編譯放到開發(fā)版上運(yùn)行。所以需要先解壓一次,然后重命名為qt-embedded-linux-opensource-src-4.5.0-x86;再解壓一次,并重命名為qt-embedded-linux-opensource-src-4.5.0-arm.Qt/E 的編譯過程如下。

  最后,設(shè)置交叉編譯環(huán)境變量,進(jìn)入系統(tǒng)控制平臺(tái)vi /etc/profile.寫入環(huán)境變量如下:

  3.2 Qt/Embedded 編程

  打開Qt Creator,進(jìn)入Qt4 GUI Application,分別建立了pro、mai.cpp、dialog.cpp 和dialog.h 文件[3]。智能家居的圖形用戶界面圖2,分為如圖2(a)和圖2(b)所示,下面先說明圖2(a)。quankai-全開按鈕主要是完成控制屋內(nèi)所有燈光的打開;quanguan-全關(guān)按鈕主要是完成控制屋內(nèi)所有燈光的關(guān)閉;woshi-臥室、chufang-廚房、keting-客廳、衛(wèi)生間-衛(wèi)生間主要是當(dāng)按下按鈕時(shí),會(huì)進(jìn)入分別控制它們安裝的具體設(shè)備的窗口;tianjia-添加、shanchu-shanchu 按鈕是當(dāng)添加新的設(shè)備和拆除設(shè)備時(shí)的控制功能。再介紹圖2(b)。下面設(shè)置了一些設(shè)備,如deng-燈、chuanglian-窗簾、menci-門磁、meiqifa-煤氣閥、kongti-空調(diào),dianshi-電視、bingxiang-冰箱、xiyiji-洗衣機(jī),當(dāng)按下如圖b 的按鈕時(shí),按鈕會(huì)通過槽輸出一個(gè)16 進(jìn)制,這個(gè)16 進(jìn)制將通過串口傳輸給zigbee,然后觸發(fā)zigbee 中的控制程序,實(shí)現(xiàn)控制設(shè)備的作用。

  下面對(duì)幾個(gè)重要的連接進(jìn)行說明。圖2(a)的說明如下:

  圖2 智能家居界面效果圖。

 ?。?) connect(PushButton. SIGNAL(clicked()),this, SLOT(open()))

  當(dāng)PushButton 按鈕按下時(shí),zhinengjiaju 對(duì)話框接受信號(hào),并執(zhí)行open()函數(shù),open()函數(shù)中寫如程序,讓其進(jìn)入下一個(gè)對(duì)話框--zhinengjiaju1.下面是部分程序:

  圖2(b)的說明如下:

 ?。?)connect(PushButton.SIGNAL(clicked()),this, SLOT(newslot()))

  當(dāng)按下按鈕PushButton 時(shí),zhinengjiaju1 對(duì)話框接受一個(gè)信號(hào),使newslot()函數(shù)發(fā)出一個(gè)16 進(jìn)制。下面是部分程序:

  3.3 串口傳輸驅(qū)動(dòng)程序

  ARM 和zigbee 主要是通過串口實(shí)現(xiàn)傳輸。界面設(shè)計(jì)完成后,通過觸摸觸發(fā)按鈕,使按鈕輸出出一個(gè)16 進(jìn)制,zigbee 通過串口驅(qū)動(dòng)接受到按鈕傳輸出的數(shù)據(jù),使zigbee 中的程序工作。下面是部分串口傳輸驅(qū)動(dòng)程序源代碼。

  3.4 zigbee 組網(wǎng)設(shè)計(jì)

  Zigbee 的組網(wǎng)主要是由zigbee 的協(xié)調(diào)器和向zigbee 的節(jié)點(diǎn)相互傳輸組成的。主要是用一個(gè)zigbee 作為路由,向這個(gè)zigbee 下載協(xié)調(diào)器的程序;再向其余的zigbee 下載節(jié)點(diǎn)程序,從而實(shí)現(xiàn)一個(gè)zigbee 控制多個(gè)zigbee 的傳輸過程。以下是部分的智能家居所有編寫的的zigbee 的組網(wǎng)應(yīng)用程序。

4 結(jié)語(yǔ)

  在智能家居的設(shè)計(jì)中,一個(gè)友好的系統(tǒng)界面(GUI)是非常必要的,友好的GUI 界面更加方便用戶的使用,也促進(jìn)了系統(tǒng)的推廣。通過ARM 和zigbee對(duì)智能家居的控制,很有效的實(shí)現(xiàn)無(wú)線傳輸控制功能,且由于ARM 可以對(duì)萬(wàn)能遙控器識(shí)別碼的學(xué)習(xí),可以很容易的設(shè)計(jì)出一種配合ARM 和zigbee 的遙控器,更家的完善了對(duì)智能家居的無(wú)線控制功能,更大的適應(yīng)廣大用戶的需求。