2021-4-9 | 電子電器論文
作者:鄧昀 程小輝 單位:桂林理工大學信息科學與工程學院
電話模塊設計報警時需要撥打用戶電話。考慮到已經使用了單片機,因此電話的摘掛機都由單片機控制繼電器來完成。電話模塊主要是一個音頻變壓器,它的作用是將電話線上的語音交流信號耦合到功放電路,同時也將撥號信號與語音提示信號耦合到電話線路上。變壓器的另外一個線圈連接到了主板的聲卡上,作用是將聲卡的音頻信號耦合到電話線上,同時也將電話線上的聲音耦合到了聲卡的線路輸入端。通過軟件聲音合成,方便地實現電話撥號、對輸入的音頻信號進行識別就可以知道對方電話按鍵音的數字信號。
家電控制模塊設計大部分電器只要控制它的開和關就可以了,通過設計一個智能開關就可控制它。還有一部分電器不僅需要控制開和關,還需要控制量,如空調的溫度和濕度、電視的音量和頻道等,這些電器可以通過紅外遙控器來控制。因此設計一個無線轉紅外協議轉換器,將網絡控制指令轉化為相應電器的紅外遙控指令來實現控制。協議轉換器的結構如圖4所示。無線紅外協議轉換器主要由無線接收模塊、紅外接收頭、單片機和紅外發射管組成。無線模塊用于接收無線遙控指令,控制協議轉發。紅外接收頭用于接收用戶的遙控器指令,“學習”后存到EEPROM里[4]。發射時,根據無線遙控指令,從EEPROM讀出紅外數據,并產生38kHz的調制信號,以調幅的方式發射出去,從而還原紅外遙控指令。家電控制模塊集成了單片機、電力載波X10協議模塊,還集成了315M射頻無線模塊。通過電力載波或無線遙控,可以控制智能開關。家電控制模塊模型如圖5所示。
系統軟件設計
整個軟件系統由幾部分組成:單片機里的單片機軟件、智能家居主機里的視頻監控與智能家居控制軟件、手機里的手機觀看軟件、客戶端的遠程觀看軟件等,其中運行在主機里的視頻監控與智能家居控制軟件是主要部分。視頻監控與智能家居控制軟件主要實現的功能有:視頻采集與錄像;將視頻按需要傳送到客戶端軟件或手機軟件那里;控制單片機模塊輸出控制信號;接收單片機模塊采集的報警信號;處理電話撥號、報警、控制等;設置各種參數。
1視頻監控模塊的設計視頻監控模塊主要包括視頻采集與編碼模塊、視頻錄像與視頻遠程傳輸模塊。(1)視頻采集模塊,利用philips7130芯片的視頻采集卡來完成的。利用Windows的VFW接口,可以完成視頻采集的功能。(2)視頻編碼模塊,采用了MPEG4視頻壓縮格式,主要流程為:調用回調函數獲得視頻數據→數據緩存→調XVIDcode編碼。(3)視頻錄像模塊,經過編碼后的MPEG4數據流可保存到硬盤中,主要流程為:從MPEG4數據緩沖區讀數據→檢查硬盤空間→將數據寫入到硬盤。(4)視頻遠程傳輸模塊,編碼后的視頻數據是通過Internet網絡以TCP/IP協議傳輸到手機軟件或客戶端軟件。主要流程為:創建套接字,監聽,接受連接,連接成功,從MPEG4數據緩沖區讀數據,傳送數據,最后斷開連接。
2報警模塊設計報警信息來自各種探測器,如紅外探測器、煙霧探測器、煤氣探測器等。這些報警信號都可以看成是一個開關量:開或關狀態。模塊將緊急情況發生的狀態定義為開,正常狀態定義為關,那么只要某個探測器處于開狀態,就認為有報警發生了。為了區分不同的報警點信號,將探測器進行了地址編碼。地址碼分為兩部分:第一部分是主機地址碼,用來區分不同智能家居主機,以免相互干擾;第二部分是探頭的地址碼,用來區分不同的探測器地址。地址結構:主機地址碼+探測器地址碼。地址編碼采用臺灣產的PT2262和深圳產的1527編碼,直接寫在芯片內部。報警模塊由報警錄入、報警器修改、報警處理等部分組成。上位機從串口接收到報警信號后,進行主機地址碼核對,如果是本機的地址碼就進一步處理,否則就放棄。探頭在生產時隨機生成不同的地址,在第一次使用時先讓探頭發出一個測試信號,主機接收到后就記錄到數據庫里,該探頭就屬于該主機了。探頭錄入流程如圖6所示。報警處理模塊收到報警信號后,首先查找數據庫,是否為已錄入的探頭地址,如果是,就看是否在布防狀態,然后發出報警信號,否則,簡單提示收到信號就可以了。這一過程如圖7所示。
3智能家居控制模塊設計該模塊實現對家電設備的遠程控制,控制流程為:遠程客戶端軟件先將控制命令使用TCP/IP協議通過Internet發送到智能家居主機,主機將控制信號轉化為X10協議,由電力載波傳送到智能開關,從而實現對家用電器的控制,或者將控制信號轉發為遙控信號控制無線遙控智能開關。智能家居控制模塊主要由控制協議轉換、控制軟件等部分組成,它們之間的通信協議定義為:波特率9600,數據位8,無校驗,停止位1。控制指令格式:起始碼1字節(@)+1字節長度(不包括@和長度字節本身)+1字節指令+若干字節數據。起始碼“@”的ASCII值的10進制值是64,16進制值是40,可以用“#”號與16進制值40來表示,“@”與#40都是同一個意思,都是1個字節。1字節長度字段緊跟在起始字節后面,指出后面內容的長度,不包括@和長度字節本身,長度字節使用2進制值。指令字段只有1字節長度,采用16進制的值。為了便于記憶和敘述,使用了助記符,由于連接線很短,通訊可靠,所以指令沒有加校驗碼。現以無線遙控協議轉換為例進行介紹,控制軟件將無線智能開關的地址碼通過串口發送到協議轉換模塊,智能遙控開關的地址碼與無線探測器的地址碼一樣,如2節所示。協議轉換模塊在接收到無線遙控指令后,根據智能遙控開關的地址碼,控制315M無線發射模塊輸出調幅的波形,智能開關收到波形碼后解碼。智能開關一般是單片機解碼,具有自學習功能,可以記憶遙控器的碼波形。當學習成功后,下次接收到相同波形的碼,就打開或關閉電器,完成遙控操作。
系統測試
以下是對智能家居系統進行部分測試的結果。探測器的錄入和修改如圖8所示。使用遠程客戶端登錄到智能家居系統,可進行視頻觀看、布防撤防、電器控制等,其界面如圖9所示。報警功能的測試:觸發一個門磁,智能家居主機立即拉響了警報,原來設置的電話已經撥打成功,從電話里聽到了報警發生的時間地點。此時打開手機,就可以看到家里的畫面,手機客戶端軟件基于J2ME平臺開發,其界面如圖10所示。表1為不同網絡帶寬下客戶端接收數據的測試情況。
結束語