該系統(tǒng)通過手機短信不但可以遙控家居的電器設備,而且還可以對家居安防系統(tǒng)進行遠程監(jiān)視,具有結構簡單、運行穩(wěn)定可靠、成本低和易于推廣等特點。
1 引言
隨著生活節(jié)奏的加快,生活水平的提高,人們對現(xiàn)代家居的安全性、智能性、舒適性和便捷性提出了更高的要求。智能家居控制系統(tǒng)就是適應這種需求而出現(xiàn)的新事物, 正朝著智能化、遠程化、小型化、低成本等方向發(fā)展。如今手機已經(jīng)十分普及,如何讓普通百姓只需要增加少量投入便可以通過手機遠程遙控自己家中的電器設備,遠程查看設備或安防系統(tǒng)狀況。同時,一旦家中發(fā)生煤氣泄露、火災、被盜等安全事故時能夠立即獲知警報, 及時處理。為此本文提出了一種基于SMS 和Atmega128 的智能家居遠程監(jiān)控系統(tǒng)。
2 系統(tǒng)結構及工作原理
本文所設計的智能家居遠程監(jiān)控系統(tǒng)由CP U 模塊、短信收發(fā)模塊、電源模塊、時鐘模塊、LCD 顯示模塊、鍵盤模塊、驅(qū)動模塊、無線收發(fā)模塊、檢測模塊等模塊組成,如圖1 所示。系統(tǒng)的工作原理如下:用戶通過手機將控制或查詢命令以短信的形式通過GSM 網(wǎng)發(fā)送到短信收發(fā)模塊,CPU 再通過串口將短信讀入內(nèi)存,然后對命令分析處理后作出響應,控制相應電器的開通或關斷,實現(xiàn)了家電的遠程控制。CPU 定時檢測煙感傳感器、CO 傳感器、門禁系統(tǒng)的信號,一旦家中發(fā)生煤氣泄露、火災、被盜等險情時,系統(tǒng)立即切斷電源、蜂鳴器警報并向指定的手機發(fā)送報警短信,實現(xiàn)了家居的遠程監(jiān)視。為了達到更人性化的設計,當用戶在家時可通過手持無線遙控器控制各個家電的通斷,通過自帶的小鍵盤設定授權手機號碼、權限和設定系統(tǒng)的精確時間等參數(shù)。LCD 用來實時顯示各電器狀態(tài)和各個傳感器的狀態(tài)。
圖1 系統(tǒng)結構框圖
3 硬件系統(tǒng)設計
CPU 選用Atmega128 單片機,它是基于AVR RISC結構的8 位低功耗CMOS 微處理器,具有性價比高、功耗小、可靠性高等特點。短信收發(fā)模塊選擇廈門桑榮公司的Saro310 GSM Modem.傳感器選擇香港嘉永公司的SS-168 煙感探測報警器、HD-111 家用CO 探測報警器。它們在檢測到危險信號時輸出開關量信號,能及時準確地向CPU 發(fā)出報警信號。LCD 顯示模塊選用LCD12864 帶中文字符型液晶顯示屏,它自帶漢字字庫, 只用查詢中文字庫表便能實現(xiàn)LCD 的中文顯示, 占用CPU 管腳少, 只需三個管腳便能完成通訊和控制。
圖2 系統(tǒng)主要模塊原理圖。
鍵盤模塊采用了一個4 × 4 的小鍵盤。開關驅(qū)動模塊實現(xiàn)弱電對強電的控制。因為本系統(tǒng)中有較大功率電器,在啟動時電流會較大,可能會達到10A,因此采用了2JB0.5-1 型固態(tài)繼電器。時鐘模塊選用DS1302 時鐘芯片, 為CPU 提供實時時鐘。它采用串行數(shù)據(jù)傳輸, 可為掉電保護電源提供可編程的充電功能,并且可以關閉充電功能, 編程簡單, 功耗小。無線收發(fā)模塊選用超外差雙向無線接收模塊JL-RT01A.電源模塊由插頭引入220V 交流電源,經(jīng)過220V/36V/12V 變壓器降壓,整流橋整流, 二級電容濾波, 三端穩(wěn)壓芯片7 8 L 0 5 和78L24 穩(wěn)壓后,分別為核心板和接口驅(qū)動模塊提供5V和24V 供電。
圖3 主程序流程圖。
4 軟件系統(tǒng)設計
Atmega 128 芯片集成的指令功能豐富,內(nèi)存等資源也都比較豐富, 為了提高編程效率、代碼的可讀性、可移植性和可維護性, 本系統(tǒng)使用C 語言開發(fā)系統(tǒng)軟件。
4.1 主程序流程
系統(tǒng)上電后, 首先初始化各底層硬件(包括LCD 設備、串口參數(shù)等)和系統(tǒng)I /O, 然后并通過RS- 2 3 2 端口向短信模塊發(fā)送AT E 命令查詢短信模塊是否正常工作? 若收到應答后, 則順序發(fā)送"A T + CMG F "、"A T + C NM I "、"AT+CSCA"等AT 命令(可參考AT 命令集),設置或獲取相關參數(shù), 完成短信預處理。然后進入循環(huán)等待狀態(tài),定時查詢短信模塊是否收到新短信,檢測各個傳感器的信號輸入以及鍵盤操作等。若查詢到有新短信, 則判斷它是否來自授權手機? 若是, 核查該手機號碼的權限后, 對該短信進行分析, 根據(jù)具體命令( 見表1-3)作出響應。一旦檢測到煙感、CO 傳感等傳感器有異常,則立即切斷主要電器的電源,輸出報警信號并向指定手機發(fā)送短信。
4.2 GSM 短信息設計
4.2.1 短信收發(fā)模式選擇
Saro 310 GSM Modem 模塊使用AT 命令集控制短信的收發(fā),它支持TEXT 和PDU 兩種短信收發(fā)模式。
前者不支持非ASCII 碼字符,不能收發(fā)中文短信,而后者支持多種不同的編碼格式, 因此在本系統(tǒng)采用PDU 模式來收發(fā)短信息。手機中文字顯示使用國標碼,在CPU中需要先將U C S 2 編碼轉(zhuǎn)換為國標碼以便于輸出。
UCS2 編碼與國標碼之間轉(zhuǎn)換不能依靠算法完成,只能通過查表來實現(xiàn)轉(zhuǎn)換。
4.2.2 短信命令格式(控制協(xié)議)
短信命令分為傳感器查詢命令、基本控制命令、高級管理命令。各種命令格式和說明分別如表1、表2 和表3 所示。
表1 傳感器查詢命令
表2 基本控制命令
表3 高級管理命令
例如, 執(zhí)行打開電燈的命令:
uint8 ExecuteSMS Cmd(void) // 執(zhí)行命令
{ case SMS_DD :RELAY_PORT|=BIT(RELAY_DD
) ; / / 打開電燈
DvcSt t|=0x02; break; / / 電燈的命令代碼為0000 0010B
}
短信命令以U n i c o d e 碼的形式存儲在數(shù)據(jù)緩沖區(qū)中。
4.2.3 短信命令解析
當系統(tǒng)接收到短信命令后, 按順序從傳感器查詢、基本命令、高級管理命令匹配掃描。掃描代碼如下:
wh i l e ( - - i &&! (mh = s t r s t r (UART0 _RxBu f ,DefDetCmd[i])));
i f( ! i ) / / 若非傳感命令
wh i l e ( - - j&&! (mh = s t r s t r (UART 0 _RxBu f ,DefBasicCmd[j])));
i f( ! j ) / / 若非基本命令
wh i l e ( - - k&&! (mh = s t r s t r (UART 0 _RxBu f ,DefAdvanceCmd[k]));
其中, U A R T 0 _ R x B u f 指向接收數(shù)據(jù)緩沖區(qū),DefDetCmd 是系統(tǒng)中預定義的傳感器命令,DefBasicCmd是基本控制命令,DefAdvanceCmd 是高級管理命令。掃描完成后,對不同類型命令進一步細化處理,返回對應的命令編號。系統(tǒng)根據(jù)不同的命令編號完成不同的操作。
4.2.4 發(fā)送短信
當系統(tǒng)接收到帶有"?"的短信命令時, 完成相應操作后,將給該授權號碼發(fā)送報告短信。短信息格式定義如下:
typedef struct Shor tMessage // 短信息結構
{uint8 CSCA[19]; / / 短信中心號碼
uint8 FirstOctet[3];
uint8 TP_MR[3]; / / 消息參考值
uint8 RecvPhoneNo[19]; / / 對方號碼字段
ui n t8 TP_PID[3] ; / / 協(xié)議標識
ui nt8 TP_DCS[3] ; / / 編碼方式
uin t8 TP_VP[3]; / / 有效期
uint8 TP_UDL[3]; / / 用戶數(shù)據(jù)長度
uint8 TP_UD[255]; / / 消息內(nèi)容
}SHORTMESSAGE;
系統(tǒng)上電時,先執(zhí)行短信息預處理,將信息結構中的常量賦值并存入Flash 中,要發(fā)送短信時再將信息結構補充完整。發(fā)送過程是(: 1)向短信模塊發(fā)送"AT+CMGS"命令(; 2)短信模塊回應后,發(fā)送短信息結構串(; 3)等待發(fā)送完成。
4.2.5 短信安全設計
為了提高系統(tǒng)的安全性, 本系統(tǒng)設置了授權號碼庫,只有在授權號碼庫中的授權手機對系統(tǒng)發(fā)送的命令才是有效的。當系統(tǒng)接收到一條新短信時,先判斷號碼是否包含在授權號碼庫中,如短信來自非授權手機則將此信息刪除。執(zhí)行完授權號碼發(fā)送的命令后,系統(tǒng)再通過短信模塊向用戶發(fā)送命令執(zhí)行情況的信息。授權號碼庫是可以修改的,管理號碼的手機可以發(fā)送短信命令將陌生號碼加入到授權號碼庫中或刪除授權號碼,也可以通過鍵盤添加、刪除授權號碼。
5 實物測試
該系統(tǒng)的實物測試結果如圖4 所示, 通過授權手機向系統(tǒng)發(fā)送短信"打開電燈?",系統(tǒng)完成短信命令的解析、打開電燈后,在LCD 顯示當前操作,并按要求回復一條短信。
圖4 LCD 控制命令顯示及手機查詢命令顯示。
6 結束語
本文所設計的智能家居遠程監(jiān)控系統(tǒng)只須對原有的電源、安防等系統(tǒng)的布線做很少的調(diào)整,便可通過手機實現(xiàn)遙控家電。該系統(tǒng)實用性強、操作簡單、成本低、性價比高。還很容易推廣到戶外廣告牌監(jiān)控、水庫水位監(jiān)控、電梯安全運行監(jiān)控等眾多領域。
作者:宋紹劍 方鵬 黃如疊 薛春偉 來源:《自動化技術與應用》
免責聲明:本文僅代表作者個人觀點,與C114中國通信網(wǎng)無關。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實,對本文以及其中全部或者部分內(nèi)容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關內(nèi)容。