中心議題:
- 智能家居系統(tǒng)控制的工作原理
- 智能家居系統(tǒng)的設(shè)計(jì)方案
解決方案:
- GSM 通信模塊設(shè)計(jì)
- 紅外無線通信模塊設(shè)計(jì)
- 模擬控制設(shè)計(jì)
- 單片機(jī)主程序設(shè)計(jì)
- 中斷程序設(shè)計(jì)
本文研究和設(shè)計(jì)了一種應(yīng)用于智能家居環(huán)境中的遠(yuǎn)程自動(dòng)控制系統(tǒng)方案。它將操作指令由GSM 手機(jī)經(jīng)GSM網(wǎng)絡(luò)傳至家中的值守GSM 模塊,再由該GSM 模塊通過由單片機(jī)控制的紅外無線局域網(wǎng)傳輸紅外信息來控制家電動(dòng)作,完成對(duì)信息家電的控制意圖,并可將信息家電的信息反饋回來, 以便進(jìn)行下一步的控制。系統(tǒng)安全可靠,性能穩(wěn)定。同時(shí)該系統(tǒng)除用于家庭設(shè)備遠(yuǎn)程自動(dòng)控制外,也可用于家庭通信、家庭安全防范,共同組建智能家居控制系統(tǒng)。
1 智能家居系統(tǒng)控制的工作原理
本系統(tǒng)是基于紅外和GSM 網(wǎng)絡(luò)的用于智能家居環(huán)境中的一種遠(yuǎn)程自動(dòng)控制系統(tǒng)。其工作原理為:用戶通過自身的手機(jī)發(fā)出命令短消息,在家值守的GSM模塊接收到命令后發(fā)送給主機(jī)(單片機(jī)),主機(jī)通過對(duì)命令的處理,把命令通過紅外傳輸?shù)较鄳?yīng)的分機(jī)(單片機(jī))上,分機(jī)對(duì)命令處理后,啟動(dòng)相應(yīng)設(shè)備,完成用戶給出的命令并向主機(jī)回復(fù)應(yīng)答,主機(jī)收到應(yīng)答后,通過GSM 模塊發(fā)出回復(fù)短消息,報(bào)告用戶完成命令。若在規(guī)定的時(shí)間內(nèi)(這里定時(shí)60s)主機(jī)沒有接收到分機(jī)的回復(fù)信息,即把該操作認(rèn)為無效,回復(fù)操作無效短消息給用戶手機(jī),要求用戶重新發(fā)出命令。若收到的短信息有誤,主機(jī)便立刻回復(fù)用戶該操作無效,請(qǐng)求重新發(fā)出命令。系統(tǒng)構(gòu)成如圖1所示。
圖1 系統(tǒng)構(gòu)成圖
[page]
2 硬件設(shè)計(jì)
2.1 MCU與GSM 通信模塊
本單片機(jī)通過RS232串行通信接口與GSM 模塊通信,提取GSM 設(shè)備的短信,發(fā)送相關(guān)的信息,并通過串行通信接口與紅外模塊相連,利用紅外模塊,達(dá)到主、分機(jī)之間的通信,因此,選用AT89S52芯片??刂粕闲枰玫絻蓚€(gè)串行接口,但89S52只有一個(gè)串口,故還需要在程序中進(jìn)行模擬串行接口通信。其最簡(jiǎn)外部接線電路如圖2所示。
圖2 AT89S52外部接線
89S52與TC35之間通過異步串行接口進(jìn)行通信,通信速率為9 600b/s,具有1位起始位、8位數(shù)據(jù)位、1位停止位,無奇偶校驗(yàn)。
單片機(jī)啟動(dòng)后,便發(fā)出AT+CMGD一2指令,清除第二存儲(chǔ)空間的數(shù)據(jù),然后不斷地發(fā)出指令讀取第二存儲(chǔ)空間。若有數(shù)據(jù),即表示接收到數(shù)據(jù),并開始對(duì)數(shù)據(jù)進(jìn)行處理,處理完畢后再把該空間數(shù)據(jù)刪除。當(dāng)單片機(jī)向手機(jī)發(fā)出短消息時(shí),單片機(jī)會(huì)向GSM 模塊發(fā)出AT、AT+CMGF=0、AT+CMGS=X一系列的指令,當(dāng)接收到回復(fù)信息后,最后發(fā)出短消息的內(nèi)容。
2.2 紅外無線通信模塊
紅外發(fā)送器電路如圖3所示包括38kHz晶體振蕩器、反相器、與非門、驅(qū)動(dòng)門Q1和紅外發(fā)射管D1等部分。其中38kHz晶體振蕩器、電阻R3和反相器組成脈沖振蕩器,用以產(chǎn)生38kHz的脈沖序列作為載波信號(hào),紅外發(fā)射管D1選用Vishay公司生產(chǎn)的TSAL6238,用來向外發(fā)射950nm 的紅外光束。
圖3 紅外發(fā)射器電路圖。
[page]
紅外接收器電路如圖4所示,當(dāng)接收器收到數(shù)位"O"時(shí),Q2管導(dǎo)通,使得RXD接收到低電平,收到數(shù)位"1"時(shí),Q2管截至,RXD接收到高電平。
圖4 紅外接收器電路圖
2.3 模擬控制
本系統(tǒng)將以不同的電機(jī)做出不同的動(dòng)作,來模擬說明智能家居對(duì)系統(tǒng)控制的響應(yīng)。如圖5所示,當(dāng)分機(jī)的單片機(jī)收到本機(jī)的地址信息,便提取信息中的數(shù)據(jù),根據(jù)數(shù)據(jù)的命令,若把P0.0,P0.1腳置成低電平,其他為高電平,則Q3、Q4管導(dǎo)通,電機(jī)便正向旋轉(zhuǎn),若把P0.2,P0.3腳置成低電平,其他為高電平,則Q5、Q6管導(dǎo)通,電機(jī)便反向旋轉(zhuǎn)(以前一情況為正向時(shí))。若一臺(tái)分機(jī)上連多個(gè)電機(jī),有多臺(tái)分機(jī),便可以實(shí)現(xiàn)在智能家居環(huán)境中對(duì)家庭各個(gè)設(shè)備的同步控制。
圖5 電機(jī)驅(qū)動(dòng)電路
[page]
3 軟件設(shè)計(jì)
3.1 單片機(jī)主程序設(shè)計(jì)
主機(jī)上電復(fù)位后進(jìn)行初始化,然后不斷地對(duì)GSM模塊進(jìn)行掃描查詢。當(dāng)查詢到GSM 模塊接收到用戶發(fā)送的短信時(shí),便對(duì)短信進(jìn)行處理,提取相關(guān)信息,然后通過紅外模塊相分機(jī)發(fā)送相應(yīng)的命令數(shù)據(jù)。接著就在一定時(shí)間(可根據(jù)用戶需要調(diào)整,這里設(shè)為60s)內(nèi)等待分機(jī)的回復(fù)信息。當(dāng)接收到回復(fù)信息或規(guī)定時(shí)間內(nèi)沒有接收到分機(jī)的回復(fù)信息,主機(jī)都返回到掃描查詢狀態(tài)。主機(jī)主程序流程圖如圖6所示。
圖6 主程序流程圖。
分機(jī)上電復(fù)位后進(jìn)行初始化,然后等待接收主機(jī)發(fā)送的命令信息。接收到命令信息后,從中提取地址和數(shù)據(jù)信息,若為本分機(jī)地址,則對(duì)數(shù)據(jù)進(jìn)行處理并作出響應(yīng),同時(shí)向主機(jī)發(fā)送確定信息;若非本分機(jī)地址,則返回,繼續(xù)等待主機(jī)發(fā)送的命令信息。分機(jī)主程序流程圖如圖6(b)所示。
3.2 中斷程序設(shè)計(jì)
本系統(tǒng)需要模擬串行數(shù)據(jù)發(fā)送和接收,所以需要用上外部中斷來接收數(shù)據(jù),確保數(shù)據(jù)傳輸?shù)耐叫院蛯?shí)時(shí)性。每接收一位數(shù)據(jù),中斷都會(huì)響應(yīng)一次,接收8位為一個(gè)有效數(shù)據(jù),接收8個(gè)數(shù)據(jù)為一個(gè)數(shù)據(jù)幀。外部中斷流程圖如圖7(a)所示。
圖7 中斷程序流程框圖。
為了確保主機(jī)正常工作。加入主機(jī)等待分機(jī)回復(fù)的等待時(shí)間。而為了時(shí)間的實(shí)時(shí)性和準(zhǔn)確性,用到單片機(jī)內(nèi)部的定時(shí)器1.設(shè)定其工作模式為模式1,初值為Ox4bff(5Oms)。中斷20次為1s,60次循環(huán)為60s,當(dāng)60s到時(shí),標(biāo)志位置位后返回。時(shí)間中斷流程圖如圖7(b)所示。
4 結(jié)論
本系統(tǒng)安全可靠,性能穩(wěn)定。同時(shí)本系統(tǒng)除用于家庭設(shè)備遠(yuǎn)程自動(dòng)控制外,也可用于家庭通信、家庭安全防范,共同組建智能家居控制系統(tǒng)。