基于Linux的智能家居管理方案
引言
物聯(lián)網(wǎng)指的是將各種信息傳感設備,如射頻識別裝置、紅外感應器、全球定位系統、激光掃描器等與互聯(lián)網(wǎng)結合起來(lái),組成一個(gè)巨大的網(wǎng)絡(luò )。然后,將生活中的所有物品都納入這個(gè)網(wǎng)絡(luò ),方便識別和管理。通俗地說(shuō),互聯(lián)網(wǎng)的終端是人,而“物聯(lián)網(wǎng)”的終端是物品,每一件物品都有CPU、網(wǎng)絡(luò )地址和傳感器,物品與物品之間也可以傳遞信息、發(fā)送指令,其主要宗旨是讓所有物品與網(wǎng)絡(luò )連接在一起,系統可以自動(dòng)的、實(shí)時(shí)的對物體進(jìn)行監控、識別、定位、追蹤并觸發(fā)相應事件。
物聯(lián)網(wǎng)的興起,為智能家居提供了條件。如何通過(guò)簡(jiǎn)化物聯(lián)網(wǎng)終端設備,最終開(kāi)發(fā)出一套經(jīng)濟實(shí)用的支持多終端應用的智能家居物聯(lián)網(wǎng)平臺是非常有意義、有價(jià)值的工作。本系統基于Linux操作系統,開(kāi)發(fā)了一套融合無(wú)線(xiàn)移動(dòng)網(wǎng)絡(luò )、射頻識別裝置的智能家居控制系統。此系統具有智能抄表、遠程開(kāi)啟電器、射頻識別遠程遙控等功能。
1 系統概述
本系統采用S3C2440芯片作為主控制器,操作界面為4.3寸觸摸顯示屏。上電后,顯示屏顯示整個(gè)家居系統網(wǎng)絡(luò )內各設備,每個(gè)設備分別對應一個(gè)圖標,包括燈光控制、風(fēng)扇、冰箱、電飯煲、燃氣流量采集等。點(diǎn)擊圖標進(jìn)入該設備相應的詳細信息欄。進(jìn)入燈光控制界面,可以方便地查看家中各房間亮燈情況,也可遠程通過(guò)短信方式控制各房間的燈的亮滅;燃氣使用情況可方便地發(fā)送至相關(guān)采集部門(mén);坐在辦公室,一條短信可以將電飯煲電源接通。家居中各設備與主控平臺間選擇了2.4 GHz的無(wú)線(xiàn)射頻收發(fā)芯片nRF24L01,通過(guò)它可以實(shí)現各家居設備與主控平臺間的無(wú)線(xiàn)通信。主控平臺與外網(wǎng)的通信,采用的是德國西門(mén)子公司的MC39i GSM/GPRS終端無(wú)線(xiàn)模塊。燃氣流量測量采用了美國矽翔微機電系統(上海)有限公司的MF4000系列氣體流量計燃氣流量計,智能家居控制系統結構框圖如圖1所示。
圖1 智能家居控制系統結構框圖
嵌入式ARM2440系統開(kāi)發(fā)平臺是整個(gè)智能家居系統的監控與管理中心,它主要集成了無(wú)線(xiàn)通信模塊、射頻識別模塊、紅外感應模塊、觸摸顯示屏。該總控平臺一方面可以通過(guò)無(wú)線(xiàn)模塊接收到外部命令(例如:手機短信),并通過(guò)射頻識別,控制對應的家居設備按指示工作,例如,打開(kāi)電飯煲、空調或洗衣機。另一方面,各家居設備運行信息可以通過(guò)射頻模塊接收采集(例如采集燃氣讀數、水表讀數、電表讀數等),處理后,可以將數據發(fā)送到嵌入式ARM2440系統開(kāi)發(fā)平臺,該平臺將數據分類(lèi)處理后,可選擇有用數據發(fā)送至對應公司服務(wù)器(例如燃氣公司、供電局、水廠(chǎng)等),實(shí)現自動(dòng)抄表。
智能家居控制系統的中的每一個(gè)家居設備,都需要分別安裝一個(gè)射頻識別模塊,通過(guò)該模塊可以與嵌入式ARM2440系統開(kāi)發(fā)平臺實(shí)現短距離無(wú)線(xiàn)通信。
2 射頻識別模塊
nRF24L01是一款工作在2.4~2.5 GHz世界通用ISM頻段的單片射頻收發(fā)器件。該射頻識別模塊可以實(shí)現多機通信,多機通信采用頻分多址的方法,只需要在接收端對不同的通道配置地址即可。發(fā)送端使用相應的地址作為本機地址。接收數據時(shí)通過(guò)讀取STATUS中相關(guān)位即可得知接收的是哪個(gè)通道的數據。射頻識別模塊內包括:頻率發(fā)生器、增強型SchockBurstTM模式控制器、功率放大器、晶體振蕩器、調制器和解調器。輸出功率頻道的選擇和協(xié)議可以通過(guò)對應的SPI接口進(jìn)行設置。射頻識別模塊功耗低,當工作在發(fā)射模式下發(fā)射功率為-6 dBm時(shí),電流消耗為9.0 mA;接收模式時(shí)為12.3 mA,掉電模式和待機模式下電流消耗更低。
nRF24L01在接收模式下可以接收6路不同通道的數據,nRF24L01在星形網(wǎng)絡(luò )中的結構如圖2所示。每一個(gè)數據通道使用不同的地址,但是共用相同的頻道,也就是說(shuō)6個(gè)不同的nRF24L01設置為發(fā)送模式后可以與同一個(gè)設置為接收模式的nRF24L01進(jìn)行通信,而設置為接收模式的nRF24L01可以對這6個(gè)發(fā)射端進(jìn)行識別。同一時(shí)刻,所有的數據通道都被搜索,但只能接
圖2 nRF24L01在星形網(wǎng)絡(luò )中的結構
收一路數據通道的數據。nRF24L01在確認收到數據后記錄地址,并以此地址為目標地址發(fā)送應答信號,在發(fā)送端數據通道0被用作接收應答信號,因此數據通道0的接收地址要與發(fā)送端地址相等以確保接收到正確的應答信號。
3 氣體流量的檢測
氣體流量測量采用的是MF4000系列氣體流量計,MF4000系列質(zhì)量流量計是美國矽翔微機電專(zhuān)為管徑為3~8 mm的氣體管路中的低速氣流的流量計量而設計??谑皆O計為用戶(hù)提供簡(jiǎn)便的安裝,滿(mǎn)足用戶(hù)測量多氣體管路的需求。塑料卡口可輕松的進(jìn)行機械接口轉換,應用于不同的低成本環(huán)境,內置安全插件可適用于更寬的應用,MF4000系列氣體流量計技術(shù)參數如表1所列。
表1 MF4000系列氣體流量計技術(shù)參數
智能家電控制芯片為傳統的8051系列單片機,單片機與氣體流程傳感器通過(guò)RS232通信,整個(gè)通信過(guò)程單片機作為主機,傳感器作為從機,它們采用點(diǎn)對點(diǎn)(或點(diǎn)對多點(diǎn))主從式工控網(wǎng)絡(luò )的半雙工異步傳輸模式,主機和從機之間用輪詢(xún)的方式來(lái)進(jìn)行通信。只有主機才能啟動(dòng)通信,沒(méi)有接到主機請求,從機不能主動(dòng)發(fā)送信息。主機向從機發(fā)送任務(wù)報文,從機接收到主機的任務(wù)命令后返回響應報文并執行相應操作。除了發(fā)送響應報文外,從機只能處于接收狀態(tài)。主機的每一次查詢(xún)都是以一個(gè)報文(幀)的數據傳送給從機。其通信流程如圖3所示。
圖3 單片機與傳感器/流量計的RS232串行通信流程
對于RS232協(xié)議,用固定的字符0x9D標識一幀數據的開(kāi)始。數據傳輸通信時(shí),幀頭(地址)的識別是非常關(guān)鍵和重要的。一般解決此問(wèn)題的方法是:找到所要傳輸的數據中不可能出現的特征數據,再將此特征數據作為幀頭發(fā)送。但是,這種通信方式中,一方面特征數據一般較難找到,大多數情況下都需要用數個(gè)特殊字符組成特征數據作為幀頭;另一方面由于增加了較多的無(wú)用字符(相對于有用數據而言),從機不得不對特征數據進(jìn)行解碼,使得通信時(shí)間延長(cháng),造成該從機的時(shí)間浪費。本協(xié)議采用1位幀頭(地址)標志位來(lái)解決幀頭(地址)的識別問(wèn)題。
具體方法為:主機首先禁止奇偶校驗,同時(shí)設置奇偶校驗位為Mark標志(相當于設置幀頭標志位DS為1),再向從機發(fā)送幀頭(地址)。此時(shí),正處于幀頭(地址)監聽(tīng)狀態(tài)的從機收到主機發(fā)來(lái)的幀頭(地址)后,進(jìn)入中斷服務(wù)例程,讀取主機發(fā)送的幀頭(地址)是否正確,當確認正確后,從機進(jìn)入數據接收狀態(tài)并等待主機發(fā)送數據;否則,仍處于幀頭(地址)監聽(tīng)狀態(tài)并等待主機發(fā)送下一個(gè)幀頭(地址)。主機接著(zhù)禁止奇偶校驗,同時(shí)設置奇偶校驗位為Space標志(相當于設置幀頭(地址)標志位DS為0),再發(fā)送數據,進(jìn)入數據接收狀態(tài)的從機將正常接收所有數據,然后向主機發(fā)送響應報文,最后釋放總線(xiàn)并重新進(jìn)入幀頭(地址)監聽(tīng)狀態(tài)。
單片機通過(guò)串口與傳感器通信,可以方便地采集到瞬時(shí)流量和累積流量,可記錄自上電以來(lái)瞬時(shí)流量的最大值和最小值,具有超量程指示功能。
4 Linux移植及Qt應用程序開(kāi)發(fā)
本系統在TQ2440開(kāi)發(fā)板上移植了Linux操作系統,并在此嵌入式操作系統平臺上進(jìn)行了簡(jiǎn)易家居智能控制平臺的開(kāi)發(fā)。Linux移植及Qt應用程序開(kāi)發(fā)步驟如圖4所示。
圖4 Linux移植及Qt應用程序開(kāi)發(fā)步驟
首先是配置開(kāi)發(fā)板所需要的環(huán)境軟件。在開(kāi)發(fā)板環(huán)境建立中,要注意的是對于沒(méi)有串口的機器,一定要先安裝USB轉串口的驅動(dòng),而在安裝時(shí)務(wù)必注意將電腦與板載串口的波特率設置為一致。這個(gè)沒(méi)設置好,串口通信會(huì )有問(wèn)題。除此之外,還需安裝好串口調試工具及程序燒錄下載工具。
其次是搭建Linux交叉編譯環(huán)境。一般的電腦上都是Windows操作系統,要開(kāi)發(fā)Linux嵌入式操作系統,需要安裝虛擬機(例如VMware等)、基于Linux內核的相關(guān)操作系統(例如Fedora)和交叉編譯器。虛擬機是用來(lái)承載Linux操作系統在Windows機器上運行而設置的,就像虛擬光盤(pán)一樣,是個(gè)虛擬的。交叉編譯器,是用來(lái)編譯和產(chǎn)生系統開(kāi)發(fā)過(guò)程中各種鏡像文件。
接著(zhù)進(jìn)入移植過(guò)程。移植時(shí)一般順序為:編譯Uboot→編譯內核→構建文件系統。
最后是Qt應用程序開(kāi)發(fā)。本系統是基于圖形界面開(kāi)發(fā)的。Qt程序開(kāi)發(fā)需要先建立Qtopia開(kāi)發(fā)平臺,然后進(jìn)入編譯目錄,執行編譯腳本,無(wú)誤退出后,再編譯應用程序。編譯應用程序時(shí),只需進(jìn)入每個(gè)程序目錄,執行make命令。然后,將編譯好的程序的可執行文件拷貝到文件系統的鏡像目錄中,最后將編譯生成的.bin文件燒錄到開(kāi)發(fā)板中即可。
結語(yǔ)
本文描述的是一種簡(jiǎn)易可行的智能家居聯(lián)網(wǎng)方案,其具有成本低、易于實(shí)現、組網(wǎng)容易等優(yōu)點(diǎn),但對于更復雜的互動(dòng)功能還存在一定的欠缺。但基于上述主控平臺,只需要調整智能家居的內部局部通信網(wǎng)絡(luò )就可以實(shí)現更加完善的智能家居功能。例如可以不修改主控電路,利用WiFi或ZigBee網(wǎng)絡(luò )來(lái)重新組建家居設備網(wǎng)絡(luò )。
評論