引言
目前的家用電器遠程控制系統一般是通過互聯網或公共交換網來實現遠程控制的。然而,隨著手機日益普及,使得利用GSM短信息實現家居環境和家電的遠程監控成為可能。它相對于遠程控制方式而言,擺脫了線對設備的束縛;相對于電腦遠程控制而言,降低了設備和使用成本。
利用GSM網絡來實現家居安防、溫室、路燈、自動售貨機等監控的研究已很多,這些研究大都是通過使用GSM網絡遠程控制繼電器而實現的。而本文設計的基于GSM的家用電器及家居環境監控系統主要是針對目前許多帶有紅外遙控器的家用電器(如熱水器、空調、電視、機頂盒等),通過GSM網絡和對家用電器遙控器的復制來實現家用電器的控制。
1、系統工作原理
基于GSM的家用電器及家居環境監控系統,由作為上位機的能收發短信的GSM短信模塊、智能控制器(單片機)、溫度傳感器和作為下位機的具有紅外遙控器的家用電器(如熱水器、空調、電視、機頂盒等)組成。
首先系統進行初始化,單片機從鍵盤讀入用戶所設定的溫度上限值和發送報警短信的目標號碼,并通過LCD顯示器顯示出來。當單片機檢測到用戶按下紅外學習鍵,則進入紅外線學習中斷服務程序,讀取外部家電遙控器發射的紅外信號,并將該紅外信號解碼,重定義碼長,分組,保存,從而學習該遙控器初始化工作完成后,單片機循環讀取
溫度傳感器DS1820數值,并將用戶事先設定的溫度上限值與之比較,一旦發現當前溫度超過溫度上限,則控制GSM模塊TC35i通過GSM網絡向用戶手機發送報警短信。
同時,單片機循環查詢串口是否收到信息,如果收到就將信息讀入單片機,解析出短信中的內容是要求單片機向家用電器發送何種指令,并將代表該指令的紅外信號通過紅外發射管發射出去,從而控制家用電器。該系統框圖見圖1。
圖1系統方框圖
2、系統硬件設計
基于GSM的家用電器及家居環境監控系統主要以AT89S52單片機為智能控制中心,4@4鍵盤和1602LCD顯示器作為人機交互設備,GSM通信模塊選用TC35i,DS1820溫度傳感器用于溫度采集;通過HS0038B紅外接收頭接收紅外信號,完成紅外信號的解調與放大;同時,利用AT89S52單片機P1.0口的方波發生器功能構成了紅外信號的調制裝置,并使用紅外LED作為紅外發射裝置。
2.1GSM模塊與單片機的連接
GSM模塊TC35i是3.3VCMOS元器件,要求對電源的啟動電流超過2A,啟動電壓達到4.2V.因此,采用zui大能提供3A電流的電源芯片LM2596.TC35i的1~5腳接LM2596的電源輸出管腳,6~10腳接地,25~27腳與SIM卡相連接。為了能顯示TC35i的工作狀態,在32腳接一個LED指示燈到地。
TC35i啟動之后就可以通過單片機由串口發送數據和命令到TC35i,TC35i的波特率是自適應的,這里采用9600的波特率,只要將TC35i的RXD和TXD分別和單片機的TXD和RXD相連接就可以了。電路圖見圖2.
圖2TC35i與單片機的連接
2.2紅外接收頭與單片機的連接
紅外接收頭HS0038B是一個集成解調、濾波、放大等功能的紅外接收芯片,它將調制在38kHz方波上的紅外信號解調出來,并通過OUT管腳將方波輸出。HS0038B平時輸出高電平,當有遙控信號輸入時,其輸出為高低電平脈沖,故接收時一個碼由一個低電平后跟一個高電平構成。利用不同長短高低電平的組合,可構成不同的碼。在本系統中將使用中斷的方式讀取紅外信號,因此將HS0038B的OUT管腳與單片機的外中斷0相連接。HS0038B與單片機的連接見圖3。
圖3紅外接收頭HS0038B與單片機的連接
3、系統軟件設計
TC35i可以發送中文短信或英文短信,本系統使用中文短信格式即PDU格式。先將短信的相關信息做到一個PDU數據包里,該包的開頭是短信中心號碼。其后的是目標,該號碼是將實際相鄰的奇數位與偶數位對調zui后加F得到。如原為12345678901,按上述方法得到2143658709F1。
然后是該號碼的長度0D,中國國家接入碼91,譯碼方式00,編碼方式08,再往后是短信在信息中心保留時間,一般選擇保存10天,即A0.zui后分別是短信內容長度和短信內容。如要發送/火警0,則短信長度為4個16進制為04,/火警0經過unicode碼轉換程序轉換得到16進制數據為706B8B66.
這樣整個PDU數據包的內容就是:0011000D91682143658709F130008A004706B8B66.
單片機對TC35i所有的控制都是通過串口發送AT指令進行的,TC35i的每一個動作都對應了一個AT指令,而且每一個指令之后都要有一個回車符以告訴TC35i該條命令已經發完。一些常用的AT指令如表1。
表1常用AT指令表
當UDP數據包打好后,要對TC35i進行聯機并通過TC35i發送短信。首先通過串口發送代表聯機的指令AT,然后設定TC35i發送UDP格式的短信,其次將該PDU數據包的長度發給TC35i,接著將做好的PDU發送給TC35i,zui后在后面加上ctrl+z的ASC碼0x1A和回車的ASC碼0x0D.這樣一條中文短信就發送出去了,發送短信程序流程見圖4。
圖4發送短信流程圖
紅外線遙控器所發射的紅外信號的信息是以不同時長的高低電平來表示的。以NEC編碼為例,從9ms高電平開始,以4.5ms低電平結束的是前導碼;從0.56ms高電平開始,以0.56ms低電平結束的是0碼;從0.56ms高電平開始,以1.69ms低電平結束的是1碼。而由于HS0038紅外接收頭接收紅外信號之后將把紅外信號取反,因此高低電平延遲時間正好相反。所以一旦紅外接收頭的輸出信號引發外中斷,延時9ms之后如果單片機從輸入腳讀到低電平則說明這是引導碼,系統需要啟動紅外碼采集程序:先延時4.5ms放掉引導碼的低電平,再延時0.56ms,放掉*個碼的低電平部分,zui后延時0.8ms,讀輸入管腳的電壓,如果為低,則說明該信號為0碼,將其保存,并使累加器加一,如果為高,則說明該信號為1碼,將其保存,并把累加器加一。依次類推循環32次后就是整個紅外信號的編碼。
根據上述思路,開啟1中斷,并設置其為下降沿觸發,同時開啟T0定時計數器,并設置其為16位重裝計時器。一旦紅外接收頭收到紅外信號就會引起單片機的1號中斷,隨即進入中斷服務子程序,在中斷服務子程序中關閉計數器并將計數器中的數值記錄下來;然后,判斷該數值是否在0碼、1碼或前導碼的時間范圍內,如果是,則將該數值記入存儲區。以此類推,當記錄完32個碼后,所有紅外信息已經記錄完畢。程序流程圖見圖5。
圖5紅外解碼流程圖
紅外遙控信號的發射需要將代表紅外信號的高低電平調制在一個38kHz的方波上通過紅外LED發射出去,因此一方面通過編程單片機T2定時器的T2MOD和T2CON兩個寄存器,使T2工作在可編程方波發生器模式下,在P1.0口輸出38kHz的方波,另一方面依據NEC編碼的格式通過延時程序在P1.4口產生代表紅外信號的不同時長的高低電平。兩個IO口輸出的信號在與門上相與就將紅外遙控信號調制在了38kHz的方波上。
4、結語
GSM作為公用陸地移動通信網,具有其他通信方式所不可比擬的*性,它通信范圍廣、傳輸數據可靠性高、短消息業務經濟實惠,是遠程無線數據傳輸系統比較好的一種數據傳輸方式。基于GSM的家用電器及家居環境監控系統,充分利用了現有的GSM網和相關的成熟技術,由單片機、GSM模塊TC35i、紅外接收裝置和溫度傳感器等構成的移動終端,可以很好地完成短信息的收發,適合遠程控制帶有紅外遙控器的家用電器,并可及時報告家中的火警信息。實驗證明,本系統可以成功地對華為C3100機頂盒、科龍KFR226GW/ND1空調、及長虹CHD29300電視機進行遠程控制。隨著手機的普及,本系統具有較好的推廣前景和實用價值。