王文強(qiáng) 李利 陳宇 李磊
北華航天工業(yè)學(xué)院 河北 廊坊 065000
本系統(tǒng)主要使用ARM-A9架構(gòu)的三星 exynos 4412處理器的itop 4412開(kāi)發(fā)板作為手持終端,使用Zig Bee無(wú)線通信技術(shù),并結(jié)合溫濕度采集模塊、煙霧濃度采集模塊等。軟件設(shè)計(jì)基于Ubuntu12.04的系統(tǒng)作為開(kāi)發(fā)環(huán)境,從嵌入式底層到應(yīng)用層的開(kāi)發(fā)流程,設(shè)計(jì)了一個(gè)具有人機(jī)交互友好的界面,實(shí)現(xiàn)了對(duì)家庭環(huán)境的監(jiān)控及家電的控制。
系統(tǒng)主要分為硬件部分和軟件部分,主要工作原理為Zig Bee終端驅(qū)動(dòng)各個(gè)傳感器模塊采集數(shù)據(jù),然后發(fā)送給Zig Bee協(xié)調(diào)器,協(xié)調(diào)器通過(guò)串口將接收到的數(shù)據(jù)發(fā)送至itop 4412開(kāi)發(fā)板,開(kāi)發(fā)板收到數(shù)據(jù)后進(jìn)行相應(yīng)的解析并顯示在界面上。其中開(kāi)發(fā)板上運(yùn)行的是使用QT編寫(xiě)的程序,經(jīng)過(guò)交叉編譯后移植到了開(kāi)發(fā)板上[1]。
該模塊用于Zig Bee網(wǎng)絡(luò)之間的通信,主要有組網(wǎng)、收發(fā)數(shù)據(jù)等功能,Zig Bee終端設(shè)備主要用于控制溫濕度采集模塊、煙霧濃度采集模塊、LED燈等,同時(shí)完成傳感器數(shù)據(jù)的采集工作,Zig Bee通信模塊選用CC2530芯片。
溫濕度采集模塊主要負(fù)責(zé)采集室內(nèi)溫濕度,通過(guò)Zig Bee通信傳輸?shù)绞殖侄瞬@示在LCD屏幕上,用戶(hù)可根據(jù)室內(nèi)溫濕度做出相對(duì)應(yīng)操作。選用DS18B20模塊,該具有體積小,成本低,抗干擾能力強(qiáng)、精度高的特點(diǎn),并且該模塊的通信方式簡(jiǎn)單,為單總線結(jié)構(gòu),使用便捷[2]。
煙霧濃度采集模塊主要用于檢測(cè)傳感器所處環(huán)境中的煙霧濃度,當(dāng)煙霧濃度超標(biāo)時(shí),報(bào)警信號(hào)通過(guò)Zig Bee通信傳輸至手持端,同時(shí)觸發(fā)蜂鳴器報(bào)警功能。本設(shè)計(jì)中選用MQ-2煙霧感應(yīng)模塊,該模塊成本低廉、對(duì)氣體檢測(cè)有較好的靈敏度、可靠性高。
LED模塊主要用于模擬室內(nèi)光照環(huán)境,主要通過(guò)CC2530芯片的GPIO口輸出高低電平來(lái)控制LED燈的開(kāi)關(guān)。
本系統(tǒng)將QT編寫(xiě)的程序移植到itop 4412開(kāi)發(fā)板上并且成功運(yùn)行,首先需要將嵌入式Linux系統(tǒng)移植到itop 4412開(kāi)發(fā)板,系統(tǒng)移植過(guò)程主要包括以下三個(gè)步驟:
(1)Boot Loader移植。Boot Loader是引導(dǎo)系統(tǒng)啟動(dòng)的一段代碼,具有不通用性,不同的處理器和架構(gòu)所使用的Boot Loader也不相同,根據(jù)處理器架構(gòu)選擇不同版本進(jìn)行移植,本設(shè)計(jì)采用U-boot移植[3]。
(2)內(nèi)核移植。Linux kernel主要由進(jìn)程調(diào)度(SCHED)、內(nèi)存管理(MM)、虛擬文件系統(tǒng)(Virtual File System ,VFS)、網(wǎng)絡(luò)接口(NET)、進(jìn)程間通信(IPC)五大模塊構(gòu)成,移植過(guò)程中選擇SoC 廠商移植過(guò)的Linux kernel版本會(huì)減少很多不必要的工作量,本設(shè)計(jì)中選擇移植2.6.35.7版本Linux kernel。
(3)根文件系統(tǒng)燒寫(xiě)。根文件系統(tǒng)可以理解為最基礎(chǔ)的文件系統(tǒng),不同的文件系統(tǒng),主要在于它們對(duì)扇區(qū)管理的策略和方法不同,本設(shè)計(jì)主要通過(guò)Busy Box軟件配置ext2格式的根文件系統(tǒng)并燒寫(xiě)到開(kāi)發(fā)板上。
itop 4412開(kāi)發(fā)板上位機(jī)軟件主要使用c++語(yǔ)言在QT平臺(tái)進(jìn)行設(shè)計(jì),程序界面的渲染采用qss 既Qt Style Sheets進(jìn)行界面渲染[4]。上位機(jī)軟件主要實(shí)現(xiàn)了以下幾個(gè)功能。
(1)模擬室內(nèi)三個(gè)場(chǎng)景:臥室、客廳、廚房。
(2)分別對(duì)這個(gè)三個(gè)場(chǎng)景下的溫度,濕度以及煙霧濃度進(jìn)行一個(gè)測(cè)量并顯示。
(3)使用LED燈模擬室內(nèi)照明燈。
(1)在虛擬機(jī)里安裝ARM版QT所在的目錄下尋找?guī)旒跋嚓P(guān)鏈接文件。
(2)在/opt目錄下建立“qt-4.8.5-arm”目錄,根據(jù)開(kāi)發(fā)過(guò)程中使用的QT版本命名。
(3)將U盤(pán)里從虛擬機(jī)上拷貝的文件全部復(fù)制到/opt/qt-4.8.5-arm中,包括lib以及l(fā)ib下的fonts目錄,全部移到開(kāi)發(fā)板上。
(4)設(shè)置環(huán)境變量。
(5)將編譯好的可執(zhí)行文件移植到開(kāi)發(fā)板上[5]。
本文通過(guò)硬件設(shè)計(jì)和軟件設(shè)計(jì)相結(jié)合的方式完成了基于ARM-A9和Zig Bee技術(shù)的智能家居系統(tǒng)設(shè)計(jì),與傳統(tǒng)的智能家居系統(tǒng)相比,通過(guò)對(duì)嵌入式Linux操作系統(tǒng)的移植和剪切,以及Zig Bee通信技術(shù)的使用,克服了傳統(tǒng)的智能家居系統(tǒng)能耗大、穩(wěn)定性差等問(wèn)題,更好地滿足了家庭日常使用需求。