作者 / 張文、鄭文、田遠波,成都理工大學信息科學與技術學院
?
基于ARM和WIFI的家電智能控制系統設計
作者 / 張文、鄭文、田遠波,成都理工大學信息科學與技術學院
隨著智能家居逐漸走入人們的日常生活,我們提出了一套家電的智能控制系統方案。該方案采用Cortex-M4為控制核心,通過WIFI接收并處理用戶指令,控制轉向設備,進而發送控制特定家電的命令。同時,系統可以將室內的環境檢測數據發送到手機并顯示到APP上,用戶也可以通過手機APP實現對各種類型家電的實現智能控制。該系統設計工作穩定可靠,操作簡單方便,對市面上的各類遙控器協議進行了整合,并實現智能學習鍵碼功能,故能很好的支持各類家電設備。
Cortex-M4;WIFI;手機APP;紅外;轉向設備;通信協議
隨著人們的物質生活的水平提高,像電視、冰箱、空調等各類家電已經走進了千家萬戶,但是隨之也帶來了一些問題。家里有太多的家電設備,而它們的生產廠家不同,功能不一,往往紅外遙控器遙控界面是不一致的,而且使用的紅外通信協議也是各異的,無疑這會給用戶帶來找尋遙控器困難,分辨各類家電設備遙控器的煩惱。本設計即是基于此,設計一種整合各類家電遙控器協議的設備,用戶可以通過手機APP對家里的各種家電實行智能控制。這很好的解決了各類家電設備遙控器不兼容問題。
本系統通過設計一個ARM處理器為控制中樞,以WIFI、無線作為媒介,以轉向裝置和紅外發射裝置為遙控設備的智能控制系統來解決上述問題。如圖1所示。

圖1 家電智能控制系統
本系統設計以手機APP為系統輸入,用戶可以通過WIFI實現與該系統連接,通過手機APP界面上的指示,發送命令去控制家電。Cortex-M4控制器通過WIFI讀取用戶的命令并解析,調用內部整合的紅外通信協議,然后通過無線模塊發送給轉向裝置,并通過紅外發射管發射指令給各類待控制的家電(如空調、電視、機頂盒、DVD等)。
本系統設計使用一個中央控制器去控制多個轉向裝置,從而實現用戶所有房間的全覆蓋。一個房間僅需要一個轉向裝置,通過轉向裝置轉動,實現房間中360°無死角精確控制。其中轉向裝置內部是由控制板、兩個舵機和一個固定架組成。Cortex-M4可以向轉向裝置發送兩個舵機的轉動角度,讓紅外發射管始終處于正朝待控制設備的狀態。其中舵機的轉向角預先設定好,并通過儲存設備保存,防止設備意外掉電而丟失數據。
該系統除了實現了智能控制不同房間的家電遙控設備,還裝配了一些傳感器,來對用戶的室內情況實時監控。如對室內的溫濕度等環境信息的采集,然后自動控制空調的工作狀態,并將各個房間的采集信息顯示在中樞的OLED屏上和用戶APP上等。
該系統主要包括Cortex-M4微處理器,WIFI模塊,無線模塊,轉向裝置,液晶顯示模塊,溫濕度傳感器,儲存芯片,APP。
家電智能控制系統設計主要由WIFI交互數據、紅外發射、環境監測三個部分組成。其處理器采用STM-32F407ZGT6;其WIFI模塊使用HLK-RM04;無線模塊使用低廉的NRF24L01;使用紅外收發模塊來發射數據或者學習鍵碼;DHT11為環境的信息采集模塊。
■2.1 WIFI交互數據硬件設計
WIFI數據交互是本系統設計最核心部分之一。主控芯片STM32F407ZGT6通過UART與HLK-RM04通信。WIFI在正常通信前,需要通過WEB配置或者通過串口使用AT指令集進行配置。在配置好通信的各種參數(IP,gateway,mask,波特率等)之后,設為透傳模式,此時,主控芯片就可以與用戶APP進行數據交互(用戶需控制設備的命令信息,傳感器采集的室內環境信息等)。
■2.2 紅外發射的硬件設計
紅外發射是本系統的主要輸出部分,它通過無線模塊NRF24L01與主控芯片實現通信。閑置狀態下一直處于休眠模式(好處:低功耗,防止誤操作),當主控芯片發出信號需要遙控設備工作時,遙控設備才會被無線模塊的中斷腳喚醒,并控制舵機轉動和發送指令。隨后,再次進入休眠狀態。

圖2 傳統NEC編碼格式
■2.3 環境監測硬件設計
環境狀態監測采用DHT11模塊,它內部集成了溫濕度傳感器,通過它實現對室內的溫濕度的信息采集,并通過無線模塊NRF24L01的ACK將采集數據回傳至中央處理器,并通過WIFI模塊,將數據發送至用戶APP上顯示。
■3.1 紅外通信協議
市面上的紅外協議多樣,但主要是NEC通信協議。但是由于家電的廠商不同,它們并不是原封不動的直接使用NEC通信協議,而是自己稍作修改。所以各種遙控器雖然不兼容,但是使用的最基本協議仍是NEC通信協議。故下面介紹NEC通信協議和幾種常用的修改方式。
3.1.1 NEC紅外通信協議
NEC協議的一幀數據包括5個部分,共32bits的數據,分別是引導碼、用戶碼、用戶碼反碼、數據碼、數據碼反碼。所有碼值均是通過發送0或者1實現的,而邏輯1與邏輯0的有序組合被稱之為編碼。通常情況下,邏輯1是560μs有載波和1690μs的無載波;邏輯0是560μs的有載波與560μs的無載波。
其中引導碼的作用是提示將有數據要發送。其次是用戶碼,它是用來分辨發出信號者身份的碼值,隨后的用戶碼反碼是用來檢驗用戶碼是否正確。數據碼是發送者發送的數據,最后的數據碼反碼同理是用來校驗數據碼。其編碼格式如圖2所示。
3.1.2 NEC的修改方式
不同的商家基于NEC協議變種出多種協議。例如空調,它的功能比較多,而傳統的NEC一次就僅僅能發送一位有效數據,故傳統的NEC就不再適用。所以廠家一般會改變一次發送的數據量,一幀的數據由若干位有效數據組成,把每一位賦予一定的含義,或者把某些固定位設為固定數據,從而來校驗數據。此外,還有些商家為了一次傳輸更多的數據,把一次需要發送的數據,分成兩段或者更多,一段一段的發送,段與段之間由連接碼連接。總之,它們都基本滿足傳統的NEC的編碼格式。
■3.2 紅外碼值的存儲
正是由于商家的紅外協議不一致這一問題,我們整合了各種紅外協議,但是它仍然不能全部適用,故該系統設計還增加了一個裝置來學習不同遙控器鍵值的功能,實現雖然通信協議未知,仍然可以達到智能控制的目的。因此我們必須開辟一個空間專門來儲存我們的整合的紅外通信協議和學習的鍵值數據。該部分使用一個EEPROM來存儲數據。即是在掉電情況下,數據仍然不會丟失。
本設計實現了家電的智能控制并通過室內環境數據的采集,反饋,自動控制。僅僅通過一個APP即可控制室內所有的家電紅外遙控設備,很好的解決了遙控器不兼容的問題。同樣,這一套系統可以很好的應用于智能家居上,對室內的家電的集中控制,遠程智能控制等。
* [1]張召.基于STM32的智能家居控制系統設計[D].南昌航空大學.2014
* [2]李靈.基于STM32的家居環境檢測和家電控制系統[D].杭州電子科技大學.2014
* [3]王佳.基于STM32的智能家居控制系統的設計與開發[D].長安大學.2013
* [4]杜德飛.智能家居無線系統設計及實現[D].華南理工大學.2012
* [5]侯海濤.國內外智能家居發展現狀[J].建材發展導向.2004.05
* [6]吳建軍.智能家居系統軟件設計與實現[D].電子科技大學.2014