張 威
青島職業(yè)技術(shù)學(xué)院,山東青島 266555
基于Zigbee的智能家居電子開關(guān)控制系統(tǒng)
張 威
青島職業(yè)技術(shù)學(xué)院,山東青島 266555
介紹了一種基于Zigbee的可通過手機(jī)進(jìn)行遠(yuǎn)距離控制的智能家居智能開關(guān)控制系統(tǒng),其以STC89C52單片機(jī)為核心,采用Zigbee、GSM無線通訊技術(shù)實(shí)現(xiàn)家居電子開關(guān)系統(tǒng)的本地和遠(yuǎn)程監(jiān)控。
Zigbee;單片機(jī);智能開關(guān)
隨著人們物質(zhì)生活水平的不斷提高和無線通訊技術(shù)的高速發(fā)展,人們對家電智能化和遠(yuǎn)程控制的需求強(qiáng)烈,希望能隨時(shí)隨地遠(yuǎn)程控制家用電器。基于此,本文開發(fā)了一種基于Zigbee技術(shù)的遠(yuǎn)程智能家居控制系統(tǒng)。
智能家居電子開關(guān)控制系統(tǒng)是當(dāng)前業(yè)界技術(shù)發(fā)展現(xiàn)狀和智能家居系統(tǒng)的應(yīng)用場景,選擇了基于IEEE802.15.4標(biāo)準(zhǔn)的低功耗個(gè)域網(wǎng)協(xié)議Zigbee。Zigbee是一種短距離、低功耗的無線通信技術(shù),其特點(diǎn)是近距離、低復(fù)雜度、自組織、低功耗、低數(shù)據(jù)速率、低成本,主要適合用于自動(dòng)控制和遠(yuǎn)程控制領(lǐng)域,可以嵌入各種設(shè)備,其作為一種近距離無線組網(wǎng)通訊技術(shù)具有成本低和功耗低的優(yōu)點(diǎn)。并通過GSM模塊實(shí)現(xiàn)遠(yuǎn)程控制。同時(shí)充分考慮經(jīng)濟(jì)性和可靠性而設(shè)計(jì)開發(fā)的,系統(tǒng)總體方案如圖1所示。
圖1 總體設(shè)計(jì)方案
系統(tǒng)組成:
AC/DC電源電路:將220V交流電變換成5V直流電。
電平轉(zhuǎn)換模塊:主要由MAX232芯片及輔助電路構(gòu)成,將5V電平轉(zhuǎn)成3.3V,ZIGBEE模塊的TTL電平是3.3v,CPU的TTL電平是5v,為了方便兩端通過兩個(gè)232芯片對接。
ZIGBEE模塊:順舟SZ05-STD,和GSM通信模塊網(wǎng)關(guān)實(shí)現(xiàn)無線通信。
CPU模塊: STC89C52單片機(jī)。
繼電器電路:CPU模塊控制繼電器開關(guān)狀態(tài),繼電器進(jìn)而控制開關(guān)類家電的工作狀態(tài)。
電源指示:指示電源。
工作原理:用戶通過手機(jī)等移動(dòng)設(shè)備向家庭GSM智能網(wǎng)關(guān)發(fā)送控制指令,智能網(wǎng)關(guān)解析控制指令,與相關(guān)Zigbee模塊通信。Zigbee模塊接收到指令后返回?cái)?shù)據(jù)給GSM智能網(wǎng)關(guān),并通過Zigbee模塊的I/O口將指令送給CPU控制模塊,CPU控制模塊通過繼電器電路控制開關(guān)類家電如洗衣機(jī)、微波爐、冰箱等的工作狀態(tài),且可以通過軟件來隨時(shí)控制家電的工作狀態(tài),達(dá)到節(jié)能的目的。
整體系統(tǒng)按功能模塊可分為信息接收模塊、信息解析模塊和家電控制模塊。
1)信息接收模塊。
此模塊將短信接收、網(wǎng)絡(luò)信息接收、本地Zigbee信息接收整合,通過信息解析,將這三種來源的信息轉(zhuǎn)換成系統(tǒng)中使用的統(tǒng)一格式的信息,方便之后的操作。
此程序在系統(tǒng)初始化模塊運(yùn)行完畢后開啟,此程序單獨(dú)開啟GSM線程和socket線程用來監(jiān)聽短信命令和網(wǎng)絡(luò)命令。
短信命令接收處理使用通用的GSM短信協(xié)議,包括GSM短信發(fā)送方法、短信接收方法。只負(fù)責(zé)短信內(nèi)容的接收和發(fā)送,不對短信中的內(nèi)容進(jìn)行解析,解析工作交由信息解析模塊完成。
網(wǎng)絡(luò)命令使用socket通信,為保證系統(tǒng)的安全性,首先要通過信息解析模塊進(jìn)行基于用戶名和密碼的登錄驗(yàn)證過程,然后通過socket通道交互控制信令。
本地Zigbee消息接收基于專用的Zigbee通信模塊。Zigbee模塊分為中心節(jié)點(diǎn)模式和終端節(jié)點(diǎn)模式。中心節(jié)點(diǎn)只有一個(gè),連接在GSM智能網(wǎng)關(guān)上,其他家電上嵌入的zigbee模塊均為終端節(jié)點(diǎn)模式。網(wǎng)絡(luò)ID是zigbee模塊所屬網(wǎng)段,zigbee必須設(shè)為同一網(wǎng)段才能相互通信。默認(rèn)網(wǎng)段為FF,為了防止與系統(tǒng)的信號相互干擾,智能家居相關(guān)設(shè)備的網(wǎng)段要設(shè)為其他值。中心節(jié)點(diǎn)的源地址輸出選擇為:輸出,這樣中心節(jié)點(diǎn)接收的zigbee數(shù)據(jù)中能看到發(fā)送源的mac地址;終端節(jié)點(diǎn)設(shè)置此項(xiàng)為不輸出,因?yàn)槊總€(gè)終端節(jié)點(diǎn)只和中心節(jié)點(diǎn)保持一對一通信,不需要對mac地址進(jìn)行判斷。
2)信息解析模塊。
此模塊通過短信解析驗(yàn)證、網(wǎng)絡(luò)信息解析驗(yàn)證、本地Zigbee信息解析驗(yàn)證,驗(yàn)證短信用戶是否為授權(quán)用戶;驗(yàn)證網(wǎng)絡(luò)指令密碼是否正確;驗(yàn)證家電信息。
短信解析驗(yàn)證過程:
(1)從短信號碼域獲得手機(jī)號碼字段。
(2)驗(yàn)證手機(jī)號碼字段是否和預(yù)存的手機(jī)號碼一致。
(3)一致則進(jìn)入家電控制模塊。
(4)不一致則拋棄數(shù)據(jù)。
網(wǎng)絡(luò)信息解析驗(yàn)證過程:
(1)從網(wǎng)絡(luò)信息中解析出用戶名和密碼字段
(2)驗(yàn)證用戶名和密碼字段是否和預(yù)存的用戶名和密碼字段一致
(3)一致則進(jìn)入家電控制模塊
(4)不一致則拋棄數(shù)據(jù)
本地Zigbee信息解析驗(yàn)證過程:
(1)從Zigbee信息中解析出家電名
(2)查找設(shè)備列表,獲取對應(yīng)的mac地址
(3)判斷是否找到mac地址,成功返回1,失敗返回0。
3)家電控制模塊。
此模塊接收用戶指令,進(jìn)入不同家電控制程序。
GSM智能網(wǎng)關(guān)發(fā)送命令信號字符串,寫入zigbee設(shè)備所在串口,目標(biāo)為zigbee模塊的mac地址。命令字符串包括實(shí)際操作命令,查看狀態(tài)命令;命令參數(shù),命令內(nèi)容和數(shù)據(jù)頭之間用分隔符區(qū)分。
此命令發(fā)送到終端節(jié)點(diǎn)后,因?yàn)榻K端節(jié)點(diǎn)設(shè)置源地址不輸出,所以終端節(jié)點(diǎn)收到的通用信號格式。
接下來單片機(jī)對此信號進(jìn)行解析,進(jìn)行家電控制。
以控制空調(diào)為例,mac地址為ABCDEF00的家電收到命令,此家電為空調(diào)。判斷00為查看狀態(tài)命令,則不進(jìn)行任何控制操作,直接返回家電狀態(tài)即可。
傳回家電信息信號,格式如:
&A1&1&+27&23&01&FF&0&0
上述信號中:每個(gè)狀態(tài)值之間用&分隔,A1代表家電類型,嵌入在不同家電中的單片機(jī)返回的值,參考家電類型定義表;1代表家電開關(guān)狀態(tài),+27代表當(dāng)前溫度,23代表用戶設(shè)定溫度、01代表當(dāng)前模式、FF為未獲取到的數(shù)據(jù),用F來補(bǔ)齊,后面的兩個(gè)0代表風(fēng)速和風(fēng)向。
以上數(shù)據(jù)格式是終端節(jié)點(diǎn)發(fā)送的格式,終端節(jié)點(diǎn)源地址設(shè)置為不輸出,默認(rèn)發(fā)送目標(biāo)即為中心節(jié)點(diǎn),只填寫后面的消息內(nèi)容即可,幀頭、長度、mac地址等數(shù)據(jù)zigbee模塊會自動(dòng)添加。此時(shí),智能網(wǎng)關(guān)會收到如下信號:
0136ABCDEF00&A1&1&+27&23&01&FF&0&0
如上文信號字符串,PC端接收到后回補(bǔ)全幀頭、mac地址等信息。即完成了對家電設(shè)備的控制和結(jié)果獲取。
本系統(tǒng)利用了先進(jìn)的計(jì)算機(jī)技術(shù)、無線網(wǎng)絡(luò)通訊技術(shù)、Zigbee物聯(lián)網(wǎng)通信技術(shù),將各種家電子系統(tǒng)有機(jī)地結(jié)合成智能家居系統(tǒng),通過統(tǒng)籌管理,讓家居生活更加舒適、安全、高效。
圖3 系統(tǒng)主程序歷程圖
2.1 語音模塊程序設(shè)計(jì)
在語音模塊程序設(shè)計(jì)時(shí),需要操控者自己添加關(guān)鍵詞,將操控者需要的功能詞語添加到寄存器中形成語音庫。工作時(shí),要先對內(nèi)部進(jìn)行初始化,完成之后,需要對操控者所使用的命令字符串進(jìn)行編號,并分別將字符串和字符串長度寫入相應(yīng)寄存器中,每次識別,可以添加一次字符串,從而可以實(shí)現(xiàn)語音模塊對命令的識別。
2.2 驅(qū)動(dòng)模塊程序設(shè)計(jì)
單片機(jī)控制驅(qū)動(dòng)模塊去驅(qū)動(dòng)電機(jī)正反轉(zhuǎn)時(shí),首先把麥克風(fēng)識別到的語音與語音庫中的識別碼進(jìn)行比對,達(dá)到最優(yōu)的效果時(shí),單片機(jī)會給驅(qū)動(dòng)模塊發(fā)出控制信號,驅(qū)動(dòng)模塊控制電機(jī)執(zhí)行相應(yīng)的操作。
本系統(tǒng)結(jié)合手動(dòng)搖動(dòng)護(hù)理床升降的工作原理,利用語音控制實(shí)現(xiàn)了聲控起降護(hù)理床的功能。設(shè)計(jì)了一個(gè)基于STM32單片機(jī)控制,由LD3320語音識別芯片和L298n驅(qū)動(dòng)電機(jī)所組成的語音控制護(hù)理床升降的系統(tǒng)。該系統(tǒng)通過操作人的語音命令可以控制L298n電機(jī)驅(qū)動(dòng),從而可以實(shí)現(xiàn)電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)用來控制護(hù)理床的升降。
[1]盛青.語音自動(dòng)識別技術(shù)(ASR)及其軟件實(shí)時(shí)實(shí)現(xiàn)[D].西安:西北工業(yè)大學(xué),2001.
[2]田犇,闕大順.基于LD3320的語音控制系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)[J].電腦與信息技術(shù),2011(6):6-9.
[3]孫兵.基于單片機(jī)的機(jī)械手聲控系統(tǒng)設(shè)計(jì)[J].機(jī)械工程與自動(dòng)化,2007(6):113-117.
TP3
A
1674-6708(2015)148-0154-02
張威,講師,碩士,青島職業(yè)技術(shù)學(xué)院機(jī)電一體化技術(shù)專業(yè)教師,研究方向:自動(dòng)控制、嵌入式系統(tǒng)