上海電機(jī)學(xué)院機(jī)械學(xué)院 王順利 何 力 王景夏 李 釗 辛紹杰
智能化家居控制系統(tǒng)使人們可以通過手機(jī)或座機(jī)在任何時(shí)間、任意地點(diǎn)對(duì)家中的諸如空調(diào)、熱水器、電飯煲、燈光、音響、DVD錄像機(jī)等電器進(jìn)行遠(yuǎn)程控制;也可以在下班途中,預(yù)先將家中的空調(diào)打開、讓熱水器提前燒好熱水、電飯煲煮好香噴噴的米飯等等。而這一切的實(shí)現(xiàn)僅僅是打一個(gè)電話或發(fā)一條短信。此外,該系統(tǒng)還具有多途徑報(bào)警、遠(yuǎn)程監(jiān)控等功能。若出現(xiàn)某種險(xiǎn)情,可以在第一時(shí)間獲得通知使你提早采取措施。舒適、時(shí)尚的家居生活是社會(huì)進(jìn)步的標(biāo)志,智能家居控制系統(tǒng)能夠在不改變家中任何家電的情況下,對(duì)家里的電器、燈光、家庭環(huán)境等進(jìn)行方便地控制,使人們盡享高科技所帶來的簡(jiǎn)便、時(shí)尚的現(xiàn)代生活。
智能家居控制系統(tǒng)的整體結(jié)構(gòu)如圖1所示,本系統(tǒng)包括PC端的智能家居上位機(jī)控制系統(tǒng),ZigBee主控制系統(tǒng)和各個(gè)功能終端模塊,GSM報(bào)警模塊。上位機(jī)程序使用LABVIEW編寫,ZigBee控制器采用ZigBee CC2530無線開發(fā)模塊實(shí)現(xiàn),GSM采用SIM900gsm模塊。程序設(shè)計(jì)包括基于LABVIEW的上位機(jī)程序和下位機(jī)程序設(shè)計(jì)。用戶通過上位機(jī)中的虛擬按鍵控制家里的電燈開關(guān)、窗簾電機(jī)等。老人安全如廁檢測(cè)終端若檢測(cè)到老人與廁時(shí)間超過設(shè)定值會(huì)通過GSM模塊向其子女的手機(jī)發(fā)送警報(bào)信號(hào)。
圖1 智能家居整體結(jié)構(gòu)圖
圖2 上位機(jī)程序設(shè)計(jì)流程圖
上位機(jī)軟件編寫采用LABVIEW編寫,程序有燈控制模塊、窗簾電機(jī)控制模塊、老人如廁紅外源安全檢測(cè)模塊。
程序的編寫流程如圖2所示。先對(duì)程序變量進(jìn)行初始化,配置串口,設(shè)置波特率、數(shù)據(jù)位等參數(shù)。在主循環(huán)里面進(jìn)行串口數(shù)據(jù)的接收,對(duì)接收到的數(shù)據(jù)進(jìn)行數(shù)據(jù)處理函數(shù)。在另外一個(gè)循環(huán)里面檢測(cè)按鍵事件,然后把按下按鍵的鍵值發(fā)送給ZigBee主控制器。
智能家居系統(tǒng)包含串口程序、按鍵處理程序模塊和如廁信息處理模塊。串口程序包含最基礎(chǔ)的串口配置、串口讀寫與串口關(guān)閉程序。配置串口波特率為9600,數(shù)據(jù)位為8。如圖3所示。
圖3 串口讀寫程序
在按鍵處理程序中,設(shè)置按鍵數(shù)值改變?yōu)槭录|發(fā)函數(shù)的時(shí)間,在每個(gè)相應(yīng)的按鍵觸發(fā)時(shí)間中,通過串口發(fā)送命令數(shù)據(jù)。如圖4所示。
圖4 按鍵事件處理程序
圖5 老人如廁數(shù)據(jù)處理程序
在老人如廁數(shù)據(jù)處理程序中,下位機(jī)檢測(cè)到老人進(jìn)入廁所后,把老人進(jìn)入廁所數(shù)據(jù)發(fā)送給上位機(jī),上位機(jī)開始計(jì)時(shí),如果在設(shè)定的時(shí)間內(nèi),還沒接收到老人離開廁所信號(hào),上位機(jī)則發(fā)出警報(bào),同時(shí)把數(shù)據(jù)發(fā)送給下位機(jī)中的主控制器。主控制器通過連接的GSM模塊通知老人兒女。上位機(jī)程序如圖5和圖6所示。在本程序中,上位機(jī)接收到老人進(jìn)入廁所數(shù)據(jù),在人機(jī)界面中顯示老人已經(jīng)進(jìn)入廁所,并且把老人如廁標(biāo)志位設(shè)置為TURE,在主循環(huán)里面開始計(jì)時(shí),如果這時(shí)接收到老人離開標(biāo)志位,將老人標(biāo)志位設(shè)置為FLASE,清除計(jì)時(shí)。
圖6 老人如廁計(jì)時(shí)程序
程序設(shè)計(jì)界面如圖7所示。界面左面是電燈控制虛擬按鍵,中間為電動(dòng)窗簾控制按鍵,右面為老人如廁計(jì)時(shí),一旦時(shí)間超過設(shè)置最大限定值,系統(tǒng)就會(huì)發(fā)出警報(bào)短信。
圖7 上位機(jī)截圖
控制主機(jī)和終端采用Zigbee CC2530無線開發(fā)模塊,該模塊通訊距離可以從標(biāo)準(zhǔn)的75米到幾百米、幾公里,可擴(kuò)展性強(qiáng),完全可以滿足系統(tǒng)的要求。編譯環(huán)境為IAR。C編譯器IAR Embedded Workbench是其最著名的產(chǎn)品,支持眾多知名半導(dǎo)體公司的微處理器。
下位機(jī)程序主要包括Zigbee無線信號(hào)發(fā)送與接收程序,串口通訊函數(shù)。在Zigbee通信函數(shù)采用:basicRfSendPacket(RECEIVE3_ADDR,pTxData,APP_PAYLOAD_LENGTH);子程序,第一個(gè)參數(shù)是網(wǎng)內(nèi)地址,第二個(gè)是發(fā)送的數(shù)據(jù),第三個(gè)是數(shù)據(jù)的長度。在Zigbee接收端,自動(dòng)匹配當(dāng)前接收的地址是否向本模塊發(fā)送,如果不是就不接收本數(shù)據(jù),如果接收地址是當(dāng)前模塊的地址,使用:basicRfReceive(pRxData,APP_PAYLOAD_LENGTH,NULL),函數(shù)接收,數(shù)據(jù)放在pRxData數(shù)組里面。模塊之間的相互通信通過這兩個(gè)函數(shù)進(jìn)行。然后各模塊根據(jù)自己的任務(wù),發(fā)送和接收相關(guān)的數(shù)據(jù)。
主機(jī)與上位機(jī)通訊是采用串口通信,通訊波特率為9600,數(shù)據(jù)位8BIT,無奇偶校驗(yàn)位。主機(jī)程序接收到上位機(jī)發(fā)過來的命令經(jīng)過分析后,分別把指令發(fā)送到每個(gè)模塊里面去。
按照設(shè)計(jì)方案完成了樣機(jī)制作,樣機(jī)實(shí)驗(yàn)證明:該控制系統(tǒng)利用上位機(jī)的人機(jī)交互界面,由控制主機(jī)分別控制每個(gè)zigbee終端,很好地實(shí)現(xiàn)了電燈的開關(guān)、窗簾的升降、在家老人安全如廁的檢測(cè)等功能。該產(chǎn)品具有成本低廉、性價(jià)比高、體積小,功能強(qiáng),功耗低等特點(diǎn)。同時(shí),它的可擴(kuò)展性好,最高可以擴(kuò)展256個(gè)終端。另外,主控制器與GSM模塊連接方便,較好地實(shí)現(xiàn)手機(jī)控制家用電器的功能。