朱 明,肖 松,黃 潔
(江西理工大學 電氣工程與自動化學院,江西 贛州 341000)
隨著當前計算機網絡技術、AR技術、語音圖像識別等智能科技的不斷更新發展與相互交融,智能家居也日趨多元化,并且多次實現新的突破。
由于目前很大一部分家居工作未完全脫離人為控制,或沒有很好地被人為控制。在實際應用場景中,需要每個被控節點間相互聯系,構成一個信息交換網絡,以實現實時家居參數測定顯示、設備便捷控制、網絡遠程通信等具體功能,這也是一個難題。系統的控制范圍增加后,控制系數也會增加,并且會出現更多不可預測的問題。通信與接入方式也需要根據實際情況進行調節,所以近距離的通信、組網技術成為了研究熱點;WiFi作為組網技術中的一種,在近距離通信中占主導。
基于此,文中提供面向智能家居的物聯網操作系統應用方案,通過STM32單片機,結合OneNET物聯網平臺與手機APP以及外圍傳感器檢測電路,構成一套家居控制系統,多方面地提升家居智能化、便捷化、人性化、舒適化,并可以實現環保控制。
智能家居系統總體架構如圖1所示。系統選用面向智能家居的物聯網操作系統,搭載STM32F4嵌入式微控制器為主控下位機,采集多種環境參數,如PM、溫濕度、可燃/有害氣體濃度等傳感器數據;通過ESP8266 WiFi芯片連接無線局域網并使用HTTP協議接入中移物聯網云平臺;然后利用PHP服務器從OneNET平臺上獲取控制器上傳的環境參數信息發送到手機APP上;最后可以將APP作為上位機實時觀測環境信息或直接上傳控制數據,以實現諸如遠程控制電機啟停或其他被控對象工作等功能。系統控制方案流程如圖2所示。

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

圖2 智能家居控制方案流程
簡易的智能家居可以實現功能如下:當人們回到家中時,門口的人體紅外感應會檢測到有人到來,并播放語音“歡迎回家”。進入家門,智能報警系統項目全面啟動,屋外進行雨量檢測,如果下雨,實時播報,并進行RGB三色雨量警告;如果室內或者周邊有害氣體含量超標,蜂鳴器會發出報警聲;如果室內溫度較高,控制風扇的電機便會工作,并根據溫度高低自動調節轉速等。
文中設計應用系統的核心是云平臺,以實現移動終端對智能家居中的諸多設備進行實時控制。搭載云平臺的是基于Cortex-M4體系結構的32位標準RISC(精簡指令集)STM32F4微處理器,擁有極其豐富的資源。本系統主要組成情況如下:
(1)為了采集環境質量參數,在室內和室外布置多個采集節點、數據傳輸節點。由于系統上傳數據的速度很頻繁,所以對于數據的穩定性要求不高。考慮設計精簡性,采用ESP8266+OneNET+手機APP控制。
(2)設計采用RT-Thread操作系統,系統需要預留充足的I/O口用于擴展更多的數據采集設備及通信設備,并且將數據同步到服務器中,綜合考慮采用STM32微處理器作為總控制器。
(3)采用ATK-VS1053MP3語音模塊,支持兩種格式的WAV錄音:PCM格式或者IMA ADPCM格式。其中PCM(脈沖編碼調制)是最基本的WAVE文件格式,這種文件直接存儲采樣的聲音數據,沒有經過任何的壓縮;而IAM ADPCM則是使用了壓縮算法,壓縮比率為4:1。
(4)采用的DHT11溫濕度傳感器是一款含有已校準數字信號輸出的溫濕度復合傳感器,包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。
文中設計系統采用RT-Thread操作系統,在搭建好的BSP工程基礎上添加所需的模塊函數。圖3是ESP8266模塊程序控制溫濕度信號的流程。

圖3 ESP8266模塊程序控制流程
首先在裸機開發下正確讀取DHT11溫濕度數據;然后了解RT-Thread的sensor框架,將DHT11對接到sensor框架上并創建一個線程,通過其讀取溫濕度數據,并通過FinSH控制臺實時打印數據;通過ENV工具獲取NRF24L01軟件包后加載到MDK工程頁面中,實現DHT11線程與NRF24L01線程之間的數據通信;通過修改NRF24L01軟件包,實現多點通信功能;在接收節點中使用RT-Thread文件系統存放節點數據,接收節點根據上位機中的數據幀格式,通過串口發送溫度數據到上位機;最后再配置RT-Thread的OneNET云軟件包和AT組件,并使用它們實現將接收節點的數據通過ESP8266 WiFi模塊上傳至OneNET服務器,云端通過圖形可視化處理實現實時溫度遠程監控。
通過ESP8266 WiFi芯片連接無線局域網并使用HTTP協議接入中移物聯網的設備云開放平臺,將采集到的傳感器數據上傳。同時,利用PHP服務器從OneNET平臺上獲取環境信息,并下發到手機APP上。
APP將接收到的數據進行處理并顯示到用戶界面上,用戶便可以遠距離實時獲取與控制室內的溫度、濕度等參數,極大地擺脫了短距離遙控的限制。
本Android客戶端的開發環境基于Android Studio3.3,開發語言為面向對象的編程語言JAVA。客戶端的設計主要包括UI界面、通信模塊搭建、數據庫設計、語言功能設計四個方面。
安裝好APP后首先進入設計的登錄界面如圖4所示,通過提供的登錄賬號和密碼進入智能家居管理系統,如圖5所示。

圖4 登錄界面

圖5 智能家居管理系統
本系統調試有如下兩個步驟:
(1)通過STM32控制器采集與顯示數據;
(2)通過服務器實時傳輸與顯示數據。
STM32控制器繼續通過各個傳感器采集數據后,經過處理顯示到LCD液晶屏上。經過多次調試,結果符合要求,最終數據采集界面如圖6所示。

圖6 數據采集調試界面
遠程數據顯示需要STM32單片機借助ESP8266 WiFi模塊,并通過HTTP協議將數據傳送給服務器,然后再從服務器中實時查詢和顯示數據,如圖7所示。

圖7 數據查詢、顯示界面
本系統設計的應用框架,目的是盡可能多地將家具集中化,然后再進行智能化管理。資源豐富的STM32嵌入式控制器作為主控機,根據不同家具的實際情況與其建立聯系,通過物聯網平臺與手機APP可以實現人為實時監控的功能。雖然現在部分檢測與控制功能未進行多次的實地試驗,無法完全準確地提供智能家居相關設備的參數,但是基本具備了預期的能力。通過不斷調試優化與更新迭代,增設新的功能,會逐漸完善智能家居控制系統。
同時,本設計突出特點是節能環保,利用低成本的設備構建所需的居家條件;并且可以通過自動檢測進入低功耗模式,降低使用成本。