(長春工程學院 機電工程學院,吉林 長春 130000)
科技使人們的生活更加的便捷和多樣化。人們都希望更加舒適安全智能的居住環境,于是在這些需求的推動下,智能電子技術實現了快速發展,并且在家居生活中得到了廣泛的應用[1-2]。
隨著網絡技術、物聯網技術和人工智能技術的發展,智能化家具的發展已經起步,智能化技術與家具產品有了初步的結合[3]。智能家居與手機APP結合已經開始應用,因此家庭信息化管理可能是未來人們生活發展的重要方向之一。本文設計了基于家庭信息化管理體系的APP,其通過對手機操作來控制調節家居設備。
本設計通過爬蟲技術爬取云端參數的方式完成單片機和APP的數據同步。APP通過訪問特殊網址來改變參數,單片機的數據時時刻刻和云端同步,其原理如圖1所示。

圖1 系統原理
本設計基于智能移動設備,被控制方是智能家居,本系統包括軟件系統和硬件系統,結構框架如圖2、圖3所示。

圖2 軟件框架

圖3 硬件框架
軟件框架由APP本身和改變數據部分組成。組件控制和語音控制是E4A十分成熟的功能,而不跳轉訪問網頁從而改變數據是E4A一個特殊的功能,這些功能的配合使軟件端變得簡而精。
硬件框架由云端、單片機和傳感器組成,圖3表達了它們的關系和相互之間的聯系。
本設計使用的云端為aREST框架,它可以為一些常見的嵌入式開發板提供 RESTful接口,支持通過串口、WiFi、以太網、藍牙等硬件發送命令至開發板,激發特定的操作,并將數據以JSON的格式返回給控制端用戶。
在cloud.arest.io上部署著云端版本的aREST框架,可以綁定用戶聯網設備,并通過MQTT協議以消息訂閱和發布的模式在客戶端設備和服務器之間傳輸數據,最終完成對遠程設備的控制。
在云服務的選擇上本設計選用aREST框架,它有參數同步功能、可視化界面,于是開始構思是否可以通過爬蟲技術來爬取網頁的參數。在查閱資料后,成功尋找到了APP的爬蟲模塊,可有效緩解云端服務器計算速度緩慢的問題。
為了對家居生活的溫度、濕度、光等進行智能調節[4],保證系統在后期應用中比較容易升級、并具有低功耗、操作簡便以及容易安裝維護等優點,本設計使用Arduino2560和Arduino Wemos D1 mini。
本文系統使用無線布控技術,使用相對于有線布控技術而言,該技術類型滿足智能家居遠程控制的多數需求[5]。其中核心控制Arduino2560需要配合,而Arduino Wemos D1 mini最大的特點是自帶ESP8266和尺寸模型小巧。ESP8266 Station有兩種工作模式,分別是Station模式以及AP模式。其中:模式用來連接無線路由器進行工作;AP模式中ESP8266為熱點由手機連接對應設備(或者無線路由器)進行工作。本設計的通信方式為局域網,主控為AP和Station雙模式,而分控為Sta模式;總控需要WiFi來提供網絡與云端所連接,還需要讓分控加入自己的局域網。
近幾年我國智能手機市場發展迅速,為了能夠簡單方便地對家居信息和電器設備進行把握與控制,本設計使用手機APP客戶端作為移動終端。
該系統上位機采用E4A開發環境,相對Java,E4A編程簡易、語言簡潔[6]。因此本軟件的安卓APP代碼編寫非常符合國人的編程思維習慣,極易上手,且易安卓也支持發布與代碼共享,可以進行程序模塊重復利用[7]。
本設計中核心的兩個功能是跳轉功能和取網頁源碼功能。跳轉功能使用戶訪問一個網頁而不會出現這個網頁。本模塊中使用于APP改變參數。取網頁源碼功能就是爬蟲功能,本設計中使用這個功能去爬取數,以便于APP和單片機的數據同步,其爬蟲代碼如圖4所示。

圖4 爬蟲模塊的應用
本設計還可以使用一個小技巧,將參數調為頭為9尾為7的參數,方便于文本的分割,使用的前提是在賬號中沒有9和7。如圖5所示為跳轉部分的代碼。

圖5 跳轉代碼
遠程控制使用aREST 框架,部分代碼如圖6~圖8所示。

圖6 硬件第一部分
圖7中void setup(void)是制執行一次的函數,本部分包括了WiFi的連接、變量的連接和名字的定義。

圖7 硬件第二部分
圖8所示部分包括一直循環的函數和一個自定義的數據處理函數,循環函數用于數據的同步。

圖8 硬件第三部分
圖6所示部分為初始化部分,前3行為庫文件,第4,5行為定義用戶,第7行創建實例,第8~11行為定義變量,最后一行是定義函數。
用戶通過APP登入控制界面,軟件使用版本單獨對應的密碼來解鎖,且一套系統只能被一個相對應的APP所驅動。
APP使用黑盒思想進行封裝,使得用戶在使用時簡單明了,又因為使用易安卓進行開發,所以內部修改相對比較簡單[8]。
本設計穿插使用云端的aREST框架和爬蟲技術,實現了智能家居的基本控制,后續的研究中還會加入大量的機械結構與之配合,完成一套完整的智能家居[9]。
本設計中的智能家居遠程控制系統在原有智能家居控制系統上增加了一種新思路,可以和其他控制方式配合使用,更加方便對智能家居進行實時了解和操作。對本文設計的APP稍加改裝,便可應用于其他智能家居控制系統中[10]。