管小明,王孚貴,李士龍
(贛東學院 機械與電子工程系,江西撫州,344000)
近年來,生活水平的提高以及人們對美好生活的追求不斷提升,使得舒適且便利的智能家居成為一種流行趨勢,互聯網和物聯網的技術又促進了智能家居系統的應用快速擴展,推動了傳統的家居模式的革新。智能家居系統是以家庭住宅為平臺,采用音視頻處理、自動控制、網絡通信等技術將家居設施綜合布線集成一體,構建成便捷高效的住宅設施事務管理系統[1]。配置各類傳感器,構建物聯網平臺,各類信息通過傳感設備進行接收、傳遞、判斷和識別信息,同時,將各種安全設備、家用電器通過互聯網技術有效連接起來,構建起集設備控制、安全防護、家庭通信等功能為一體化系統[2]。具體應用時,可以根據用戶的不同需求,提供照明控制、窗簾自動遙控、安防報警、遠程家電控制等功能[3],以安全性為基礎,以便利性為核心,以舒適性為目標,以藝術性為特色,為用戶提供一個便捷、舒適、安全、環保的居住環境。
系統設計的總體結構圖如圖1 所示,主要由STM32 微處理器作為主控單元、語音識別模塊和手機APP 為前端,煙霧傳感器模塊、溫濕度傳感器、光敏傳感器模塊等數據作為智能家居判斷與決策的重要依據[4],LED 液晶顯示模塊作為智能人機交互顯示。

圖1 智能家居控制系統框圖
STM32F103C8T6 是以ARM Cortex-M3 架構為核心的微控制器,其高速的數據處理能力可進一步提高數據的采集和語音識別能力;LD3320 語音識別模塊具有非特定人(SI)的語音識別特性[5],該模塊識別技術應用較為成熟,可同時識別中文與英文;0.96 寸的OLED 屏通過SPI 協議及端口與STM32 通信及驅動;高性能處理器、語音識別前端、顯示屏三者共同構建了人機交互的家庭控制終端。STM32 處理器采集處理各類傳感器回傳的數據,如環境的溫濕度和煙霧濃度、光照強度,經過分析處理后利用OLED 屏顯示,形成直觀、精確的人機交互界面,利用語音控制模塊來識別各種控制指令以實現各類電器的開關控制以及顯示環境參數,通過ESP8266 無線WiFi 模塊,連接家里的各種智能家居設備,或者連接到路由。收集APP 則通過連接服務器來控制各類智能家居設備,同時采集上來的信息可通過ESP8266傳送到手機APP 進行相關的操作,完成相關操作。
本設計選用了基于ARM Cortex-M3 內核的STM32 系列處理器,充分利用處理器的功耗低、速度快等優勢特點,主要任務是完成各類傳感器的信息采集,數據的傳送、處理以及篩選甄別,并根據居住環境實際情況實現對控制對象的相關操作。可以這么說,STM32F103C8T6 是整個系統的核心主控模塊。
智能語音主要指通過語音合成技術和語音識別技術,為用戶提供智能化服務。一般來說,用戶只需要用說話的方式給服務終端發送命令,就能實現相應的操作控制。設計采用了LD3320 芯片作為語音交互模塊,主要功能是采集語音信息轉換為相應的操作指令,并與主控模塊實現交互。使用時,用戶先要喊出系統設定的語音控制代碼“小智同學”,則可進入語音控制模式,LD3320 語音識別模塊對用戶喊出操作命令指令進行識別,與數據庫內語音指令對比分析,匹配完成后即可實現語音操控功能,省去用戶到處尋找遙控器的麻煩。
信息采集模塊主要是通過各類傳感器完成室內溫濕度、照明強度、煙霧等有毒氣體的采集、處理及傳輸,為主控模塊的各種控制做判斷依據。比如,溫濕度采集模塊通過采集室內溫濕度信息,將室內溫度信息發送給主控系統;主控系統分析判斷室內溫濕度是否正常,并通過指令控制家電設備來調節室內溫度,同時在顯示器上實時顯示溫度和濕度。光敏信息采集模塊通過檢測房間內的照明強度,完成預處理、信號轉換等功能,并將信號傳輸給主控系統;主控系統根據室內光強分析判別是晚上還是白天,然后通過繼電器組控制室內燈光的亮度。煙霧傳感器模塊利用其電路特性,將電導率變化和氣體濃度轉換為對應的信號,傳給傳輸給主控系統;主控系統依據檢測室內空氣是否清潔,是否有火災的情況,綜合判別,并采取報警、自動開窗等相應的措施。
ESP8266 具有能耗低、傳輸數據快等優勢,支持AT 語言的同時,只要通過智能云物聯網平臺提供的開源通信協議,就可以完成與云服務器的連接。這是選用ESP8266WiFi 模塊作為橋接與云服務器通信的設計依據。遠程控制模塊主要完成從主控系統獲取的信息上傳到云端服務器,同時也可以接收手機APP 的控制指令發送給主控系統。為確保系統的高效運行,WiFi 模塊需要實時與服務器保持聯系。電路調試時,只需要將智能云開發平臺提供的固件刷到ESP8266 串口WiFi 模塊的Flash 中即可實現網絡連接功能。
基于STM32 智能家居管理系統軟件設計包括室內溫濕度、照明強度、煙霧等有毒氣體的數據采集、液晶屏的數據顯示等程序的編寫。主程序設計為循環執行結構,可根據語音指令和手機APP 指令產生的中斷響應,STM32 芯片會進入相應中斷子程序中完成信息處理。
該系統啟動后,首先需要完成包括WiFi 模塊、語音模塊等外部硬件的初始化。主函數主要是實現采集煙霧模塊的數據,通過STM32 完成對溫濕度模塊數據的讀取,并對數據進行處理和轉換,然后驅動OLED 液晶屏在相應位置顯示相關數據,WiFi 通信模塊會自動將相關數據上傳到威途云平臺服務器;手機APP 接入智能云平臺服務器實時遠程通訊獲取相關信息。中斷處理主要是通過智能云平臺將控制指令從手機APP 發送到STM32 單片機;不斷查詢WiFi 模塊,查看智能云是否有新的指令發送;當接收到新的指令時,輸入中斷處理子函數,根據不同的指令STM32 控制系統的相關功能模塊。同時在智能終端上設置相應的界面供用戶查看,從而實現對環境信息的監控。主程序流程圖如圖2 所示。

圖2 主程序流程圖
溫濕度傳感器數據采集程序設計是STM32 和DHT11 單總線通信完成,在MCU 發出一次啟動信號后,DHT11 由低功率向高速度轉變,并將40 比特的傳感器內濕度和溫度數據以 I/O 形式傳送至單片機,進行數據采集和校驗。DHT11 在等待主啟動信號完成后,發出應答信號,并獲取一次信號,使用者可以獲取部分數據。DHT11 在沒有收到STM 的啟動信號下,不能收集溫濕度,流程圖如圖3 所示。煙霧傳感器數據采集程序設計思路可參考溫濕度傳感器數據采集程序設計。

圖3 溫濕度數據采集流程圖
語音識別模塊LD3320 和STM32 通過串口通信,對LD3320 芯片進行喚醒詞和標志詞設定,在STM32 編寫程序進行串口通信。通過語音(一級指令)喚醒詞喚醒LD3320,傳達具體操作指令(二級指令)后再通過STM32進行完成控制,流程圖如圖4 所示。

圖4 語音識別程序流程圖
單片機和ESP8266 之間采用串口中斷方式進行通信,為方便主函數調用,需先將命令進行解碼并存儲在相應的二維數組中。WiFi 串口在接收數據的時候,首先是檢測串口有沒有發生中斷,如果發生了中斷,就開始啟動接收數據到緩存;接收完畢后通過程序算法解析或者有效的控制指令。設計時需注意,為避免數據信號重復,一旦運行通訊子程序,則需要關閉中斷響應。
本設計選用集成度高、易開發的機智云物聯網開發平臺,來實現手機用戶APP 和互聯網服務器的搭建開發。機智云AIoT 為APP 與設備間數據交換提供一個良好的物聯網開發平臺,從而縮短了開發時間,提高設計效率,也降低系統設計的難度。設計任務是用戶可以通過該APP 實時查詢家電狀態和居家環境,同時也可以發送控制信號至服務器,隨時隨地操控家用電器設備。
在制作出實物之后并安裝好各個配件之后進行配網操作。打開電腦并連接網絡,開啟個人熱點(個人熱點頻段選擇2.4GHz),手機連接電腦熱點,開始進行配置操作,在機智云的“我的設備”頁面中選擇一鍵配置,輸入電腦熱點賬號及密碼,進行下一步操作,對設備通電之后進入到搜索連接設備的頁面,搜索完成后就出現了本設備——智能家居監測系統。如圖5 所示。

圖5 已連接設備圖
各傳感模塊利用WiFi 模塊將家中的溫度、濕度等數據傳送到機智云云端,通過手機APP 可以查看溫度、濕度等數據,也可以通過手機APP 遠程控制房間的設備,例如廚房燈、客廳燈、臥室燈、電扇等電器,模塊調試顯示界面,如圖6 所示。

圖6 智能語音系統APP 軟件界面圖
點擊進入智能家居監測系統,就出現了具體的控制家居設備的操作頁面、設置閾值頁面以及環境中各項監測數據顯示頁面。如圖7 和圖8 所示。

圖7 控制家居設備操作頁面

圖8 設置閾值、數據監測顯示頁面
本文的智能家居管理系統以STM32F103C8T6 為主控制器,基于信號采集、無線通信等技術,完成了室內溫濕度、照明強度、煙霧等有毒氣體的數據采集,語音智能識別和報警處理等模塊軟硬件設計及調試。綜合應用機智云物聯網開發平臺,實現了家用電器通過WiFi 模塊與手機APP 的互聯互通。系統具有非特定人的語音識別系統識別、手機遠程操作等功能,對居家環境進行實時監測和家用電器進行實時調控,實現了智能家居的網絡智能化控制。