,,,,,
(西安工程大學 電子信息學院,西安 710048)
智能家居[1]在具備傳統家居舒適、安全等特點的同時,還將家居環境變得更加智能化、人性化,可以實時地提供全方位的信息,便于家庭與外部保持信息交流,增強家居生活的安全性、舒適性,實現遠程操控、實時監測、合理控制各種能源的使用,從而優化人們的生活方式,改善人們的生活條件。隨著社會信息化的不斷發展,人們的生活、工作、通信之間的關系變得日益密切[2-4]。
目前在智能家居市場上,大多數的智能家居系統依然采用控制主機的方式。國內的智能家居行業開始在全IP技術上做進一步的研究,并且開發了功能更全面的智能家居系統[8-11]。
本系統采用STM32F103作為核心處理器,對室內環境各項數據進行分析處理以及通過WiFi模塊向終端設備發出命令執行一系列的操作;外設電路包括電源電路、數據存儲電路、JTAG調試電路、復位電路等;數據采集終端實現對溫濕度、PM2.5、CO2濃度、光照、聲音、煤氣等室內環境因子的采集;視頻采集端實現室內的安防功能;語音識別模塊實現了用戶通過語音指令即可完成對室內終端設備的操控功能[12];執行設備終端主要包括空調、電視機、電腦、燈、冰箱、窗簾、門等;溫濕度模糊控制器主要處理室內空氣溫濕度,根據采集到的數據進行分析,從而實現用4路繼電器自動控制室內執行設備進行升溫、降溫、加濕、除濕等操作;遠程監測端基于Android操作系統搭建客戶端,可以實時監測室內環境是否處于一個安全的狀態,出現問題時可以進行遠程操控[13]。智能家居系統總體結構圖如圖1所示。

圖1 智能家居系統總體結構圖

圖3 HLK-RM04模塊電路圖設計
STM32F103片內外設資源豐富,存儲容量較大,用戶開發環境較好;內核是32位的ARM Cortex-M3控制器,片內外資源豐富,最高工作頻率可達72 MHz,內置大容量高速嵌入式存儲器,很輕易地容納智能家居系統所需要的空間;擁有2個I2C總線接口、2個12位D/A轉換器、10個三通用16位定時器、1個PWM定時器、9個通信接口;1個WiFi WLAN無線寬帶網絡通信接口,最大轉換時間可以達到1 μs。
系統需要采集大量的外部數據,比如空氣溫濕度、光照強度、CO2濃度等,需要數據采集接口負責系統數據的采集和傳輸,本系統采用的數據采集接口為RS485信號類型。RS485采用差分信號邏輯,遵循MODBUS協議,實施簡單方便,支持的傳感器多,滿足了本設計的要求。RS485采集接口電路如圖2所示,UART2連接——MAX485芯片組成RS485接口,采用線控方式進行控制。

圖2 RS485采集接口電路圖
本系統采用夏普公司推出的光學灰塵濃度檢測傳感器GP2Y1010AU0F。其技術參數如下:工作電壓為4.5~5.5 V;工作電流為10 mA;工作電流為最大20 mA;工作溫度為-10~65 ℃。
采用海凌科公司開發的HLK-RM04模塊作為WiFi無線通信模塊[14]。該模塊基于802.11n/g/b無線標準,無線傳輸速率最高可達150 Mbps;模塊支持WEP、WPA/WPA2安全加密機制,支持無線安全功能開關,支持AP/Router工作模式;支持WiFi協議、TCP/IP協議,可以實現串口、以太網、無線網接口之間的數據傳輸,同時可以實現網絡參數以及串口轉網絡參數的配置;模塊內集成串口轉無線TCP/UDP傳輸功能,最大連接數超過20個;在網絡管理方面可以實現遠程Web管理;增加3個0603封裝的LED指示燈顯示電源(POWER)、WLAN、WiFi三者的工作狀態。WiFi模塊電路圖設計如圖3所示。
安防是智能家居系統最重要的功能之一,確保用戶在外出時室內安全,遭到不明入侵時能夠及時報警并處理。傳統的有線視頻監控容易遭到不良人員的損壞,而且用戶只能回到家調取視頻監控錄像,不能及時地發現問題并解決。本文結合WiFi技術設計了一款可遠程登錄、實時監控室內環境系統,可提高智能家居系統的實時性。
本系統采用具有圖像采集和處理功能的OV2640攝像頭完成室內的采集工作[15]。
OV2640攝像頭體積小、工作電壓低、兼容I2C總線接口,即使在低照度的環境下仍能保持高靈敏度。數據輸出方式設置為多種格式的圖片,在保證圖像質量的前提下,減小對網絡寬帶的占用。OV2640通過SCCB總線接口和STM32F103微控制器連接通信。OV2640攝像頭需要2.8 V及1.3 V兩個供電電壓,在本設計中,選用RT9193-2.8電源芯片和XC6219B132MR電源芯片分別提供2.8 V和1.3 V電壓。設計的OV2640攝像頭電路及其外圍電路如圖4所示。

圖4 OV2640攝像頭電路設計
為了提高語音模塊的靈敏度,設計了相關的輔助電路。喇叭音量外部控制電路如圖5所示,R6和R2的阻值分別為33 kΩ、15 kΩ,聲音被放大了2倍,若想實現手動調節音量,可以將R6設計成滑動變阻器。本文設計的麥克風偏置輔助電路如圖6所示,其中引腳12是麥克風偏置,為了確保給麥克風輸入一個浮動的電壓,需要接一個RC電路。

圖5 喇叭音量外部控制電路設計

圖6 麥克風偏置輔助電路設計
采用SLA-12VDC-SL型6腳轉換型繼電器的通斷來實現對室內終端設備的控制[16]。如圖7所示,通過P12接口使用跳線帽來實現常開和常閉的轉換。用跳線帽連接P12中2、3引腳實現常開,通過PE10引腳給出高電平,三極管Q16導通,繼電器磁鐵吸合,使得繼電器輸入RLY1_IN與RLY1_OUT導通實現供電,通過PE10引腳給出低電平來實現斷電。

圖7 繼電器驅動電路圖
智能家居系統主要是對室內環境進行監測以及自我調節,對終端設備進行智能化控制。軟件設計方案包括WiFi無線通信模塊、視頻采集模塊、語音識別模塊、繼電器模塊、數據采集模塊、模糊控制算法模塊、遠程客戶端的軟件設計[17]。
系統軟件總體設計流程為:系統進行上電初始化,包括時鐘初始化、輸入/輸出端口初始化、子模塊初始化。系統數據采集模塊開始工作并顯示采集到的部分信息,中央處理器對數據進行分析處理,對部分如溫濕度等對室內環境影響較大的數據進行模糊控制算法分析,與室內指標進行對比,輸出控制指令,完成對室內終端設備的相應操作。總體軟件實現流程如圖8所示。
為了減少電量的消耗,實現節能,在WiFi模塊沒有信號需要發送時,設置其進入休眠狀態,使其節能環保,優化智能家居系統。當控制器發來信號時,啟動處于休眠狀態的WiFi模塊開啟接收指令,WiFi模塊將接收到的指令發送到終端設備端口,通過終端設備上的節點完成對執行機構的操作。設備端工作流程如圖9所示。

圖8 系統主程序流程圖

圖9 設備端工作流程圖
為了設計方便,本文所采用的傳感器均使用RS485總線通信。軟件設計開始初始化,然后主控制器給傳感器配置參數,包括傳感器地址、存儲地址等。傳感器一直等待主機幀發送過來,有幀發送至傳感器時,傳感器首先查看地址是否正確。若地址不正確,則丟棄此幀重新等待主機幀的到來;地址正確,則傳感器接收主機幀進行CRC16校驗,查看數據是否正確,數據不正確則丟棄此幀數據,校驗正確則查看功能碼判斷進行哪種命令操作。當設置傳感器地址時則重設地址值,當查詢傳感器采集數據值時則根據數據流中寄存器長度要求采集傳感器數據。之后將重設地址,或將數據存入數據流中將返回幀發送回去,若都不是則丟棄此幀重新等待主機幀。
視頻采集模塊的軟件設計流程首先是OV2640模塊、WiFi模塊的初始化以及TCP協議棧的初始化,OV2640模塊獲得圖像數據發送給主控制器,調用TCP協議棧接口,WiFi模塊的路由功能以TCP客戶端方式連接服務器。軟件實現流程如圖10所示。
服務器將視頻監控節點傳輸的數據轉換成JPEG圖片,在PictureBox控件上實時更新顯示,形成視頻,通過手機客戶端登錄服務器實現在線監測。

圖10 視頻采集流程圖
該模塊的軟件設計主要包括:主控板程序和語音識別程序,其核心就是實現語音識別程序設計。本軟件設計中采用中斷方式,首先是系統程序的初始化,包括通用初始化、語音識別初始化,主要完成芯片軟復位、模式設定、時鐘頻率等相關操作;其次是識別寫入,主要完成對寄存器的設置。最后是響應中斷,當麥克風采集到聲音就會產生中斷信號,中斷程序根據寄存器的值進行分析結果(BA寄存器的值為候選識別個數,C5寄存器的值為識別出的最佳結果)。語音識別主程序流程如圖11所示。

圖11 語音識別主程序流程圖
本設計涉及對終端設備啟停的控制,使用繼電器完成對終端設備的開啟與關閉功能。繼電器控制方式包括兩種:一種是人工控制,是在用戶主觀意愿下對家電啟停做出的操作;另一種是控制器對室內環境的智能調節發出的指令操作。在軟件設計時,主要實現“開”和“關”的邏輯,為了提高程序的通用性,便于開發人員進行后期修改,采用宏定義替代簡單的函數。將高電平定義為繼電器開,低電平定義為繼電器關,繼電器工作流程圖如圖12所示。

圖12 繼電器工作流程圖
移動端界面是實現人機交互的主要方式。從用戶界面出發,用直觀的、簡易性的功能以及監測界面加以展現。界面采用身份驗證的方式,需要輸入用戶名和密碼才能登錄系統,軟件實現流程圖如圖13所示。若用戶之前未注冊賬號,可以根據系統提示完成注冊,并返回主頁面進行登錄。

13 客戶端登錄流程圖
用戶成功登錄后,客戶端會出現系統功能圖。功能界面主要分為4個板塊:環境監測、能耗監控、視頻監控、功能設置后期維護及需求建議。其中,環境監測板塊可以實現對室內溫濕度的實時監測;能耗監控板塊可以查詢室內家電設備所處的開啟狀態;視頻監控可以實時監測室內的安全狀況;功能設置板塊可以對客戶端的個性化界面調整。
本系統的測試主要分為硬件部分和軟件部分,首先將各個模塊進行單獨測試,在各個模塊功能穩定的情況下再進行總體測試,為了保證系統的功能穩定性,測試之前要考量各個模塊之間的兼容性。系統的硬件測試主要是電路的測試;軟件測試主要包括功能性按鍵、人機交互界面、WiFi無線模塊的通信功能。讓系統保持上電狀態,觀察系統長時間下的運行狀態是否穩定。通過對整個系統進行現場環境的模擬,對WiFi組網進行測試,驗證WiFi網絡的可行性、可靠性及穩定性。另外,對無線模塊可傳輸距離及丟包率進行定性測試。最后完成對遠程登錄、移動端實時監測等其他模塊的功能測試。進行系統測試要用到如下幾個部分:WiFi無線傳輸模塊、主控制板、PC機、手機移動端APP、TCP調試助手。
用TCP調試助手對無線模塊進行數據通道測試,用戶筆記本在無線網絡上連接到無線模塊之后,設置模式為UDP;設置遠程主機為:192.168.1.107;本地端口設為8081,遠程端口設為8088;點擊“開啟UDP”按鈕,顯示綠燈。數據通道打通,可以交互數據,為確保傳輸數據的完整性,平衡接收與發送兩端的“速率壓力”平衡,故采取TCP方式向WiFi模塊發送數據。
由于本系統的適用范圍僅限于室內,所以測試的環境可以改變的條件也相對有限。對WiFi無線網絡傳輸丟包率的測試,可以將影響因素設置為無墻和有墻。測試平臺由WiFi模塊(終端節點、協調器節點)和兩臺PC機組成。
選取學校實驗室作為測試地點,選取了具有代表性的6個值作為測試距離,得到的測試數據如表1、表2所列。

表1 實驗室無障礙情況下的丟包率測試結果

表2 實驗室有障礙情況下的丟包率測試結果
從表1中的測試數據可以看出,在實驗室內無障礙物的情況下,數據傳輸的丟包率在0.2%以下。從表2中可以看出,在實驗室有障礙物的情況下數據傳輸的丟包率雖然比無障礙有所增加,但仍能控制在0.4%以下。為了克服這種情況的發生,可以通過調整組網結構和改變節點方位的方法進行優化,同時利用軟件校驗的方法降低丟包率。
對語音模塊功能的測試主要分為在安靜環境和嘈雜環境下進行,考慮到男女音色的不同,所有測試環境分為以下4種:安靜環境下男性、安靜環境下女性、嘈雜環境下男性、嘈雜環境下女性。由于本設計主要針對室內語音控制,所以不再做距離上的測試,故測試距離均選取5 m。分別記錄不同情況下識別指令的準確率,如表3所列。

表3 語音識別準確率測試結果
可以看出,本文設計的語音控制模塊的識別準確率在安靜狀態下可達92%,滿足了用戶需求,嘈雜環境對語音識別的準確率造成了一定的影響。
在智能家居系統遠程登錄與遠程實時控制并監測測試中,主要測試遠程是否登錄穩定并能夠實時地對室內家電設備進行控制,監測室內能量功耗、溫濕度情況。在移動端APP中,信息界面實現在線監測智能家居的網絡連接情況、終端節點信息查詢、修改設置等功能,針對以上功能對智能家居系統人機交互界面進行測試[18]。
