(長春工程學(xué)院 機(jī)電工程學(xué)院,吉林 長春 130000)
科技使人們的生活更加的便捷和多樣化。人們都希望更加舒適安全智能的居住環(huán)境,于是在這些需求的推動下,智能電子技術(shù)實(shí)現(xiàn)了快速發(fā)展,并且在家居生活中得到了廣泛的應(yīng)用[1-2]。
隨著網(wǎng)絡(luò)技術(shù)、物聯(lián)網(wǎng)技術(shù)和人工智能技術(shù)的發(fā)展,智能化家具的發(fā)展已經(jīng)起步,智能化技術(shù)與家具產(chǎn)品有了初步的結(jié)合[3]。智能家居與手機(jī)APP結(jié)合已經(jīng)開始應(yīng)用,因此家庭信息化管理可能是未來人們生活發(fā)展的重要方向之一。本文設(shè)計(jì)了基于家庭信息化管理體系的APP,其通過對手機(jī)操作來控制調(diào)節(jié)家居設(shè)備。
本設(shè)計(jì)通過爬蟲技術(shù)爬取云端參數(shù)的方式完成單片機(jī)和APP的數(shù)據(jù)同步。APP通過訪問特殊網(wǎng)址來改變參數(shù),單片機(jī)的數(shù)據(jù)時(shí)時(shí)刻刻和云端同步,其原理如圖1所示。
圖1 系統(tǒng)原理
本設(shè)計(jì)基于智能移動設(shè)備,被控制方是智能家居,本系統(tǒng)包括軟件系統(tǒng)和硬件系統(tǒng),結(jié)構(gòu)框架如圖2、圖3所示。
圖2 軟件框架
圖3 硬件框架
軟件框架由APP本身和改變數(shù)據(jù)部分組成。組件控制和語音控制是E4A十分成熟的功能,而不跳轉(zhuǎn)訪問網(wǎng)頁從而改變數(shù)據(jù)是E4A一個特殊的功能,這些功能的配合使軟件端變得簡而精。
硬件框架由云端、單片機(jī)和傳感器組成,圖3表達(dá)了它們的關(guān)系和相互之間的聯(lián)系。
本設(shè)計(jì)使用的云端為aREST框架,它可以為一些常見的嵌入式開發(fā)板提供 RESTful接口,支持通過串口、WiFi、以太網(wǎng)、藍(lán)牙等硬件發(fā)送命令至開發(fā)板,激發(fā)特定的操作,并將數(shù)據(jù)以JSON的格式返回給控制端用戶。
在cloud.arest.io上部署著云端版本的aREST框架,可以綁定用戶聯(lián)網(wǎng)設(shè)備,并通過MQTT協(xié)議以消息訂閱和發(fā)布的模式在客戶端設(shè)備和服務(wù)器之間傳輸數(shù)據(jù),最終完成對遠(yuǎn)程設(shè)備的控制。
在云服務(wù)的選擇上本設(shè)計(jì)選用aREST框架,它有參數(shù)同步功能、可視化界面,于是開始構(gòu)思是否可以通過爬蟲技術(shù)來爬取網(wǎng)頁的參數(shù)。在查閱資料后,成功尋找到了APP的爬蟲模塊,可有效緩解云端服務(wù)器計(jì)算速度緩慢的問題。
為了對家居生活的溫度、濕度、光等進(jìn)行智能調(diào)節(jié)[4],保證系統(tǒng)在后期應(yīng)用中比較容易升級、并具有低功耗、操作簡便以及容易安裝維護(hù)等優(yōu)點(diǎn),本設(shè)計(jì)使用Arduino2560和Arduino Wemos D1 mini。
本文系統(tǒng)使用無線布控技術(shù),使用相對于有線布控技術(shù)而言,該技術(shù)類型滿足智能家居遠(yuǎn)程控制的多數(shù)需求[5]。其中核心控制Arduino2560需要配合,而Arduino Wemos D1 mini最大的特點(diǎn)是自帶ESP8266和尺寸模型小巧。ESP8266 Station有兩種工作模式,分別是Station模式以及AP模式。其中:模式用來連接無線路由器進(jìn)行工作;AP模式中ESP8266為熱點(diǎn)由手機(jī)連接對應(yīng)設(shè)備(或者無線路由器)進(jìn)行工作。本設(shè)計(jì)的通信方式為局域網(wǎng),主控為AP和Station雙模式,而分控為Sta模式;總控需要WiFi來提供網(wǎng)絡(luò)與云端所連接,還需要讓分控加入自己的局域網(wǎng)。
近幾年我國智能手機(jī)市場發(fā)展迅速,為了能夠簡單方便地對家居信息和電器設(shè)備進(jìn)行把握與控制,本設(shè)計(jì)使用手機(jī)APP客戶端作為移動終端。
該系統(tǒng)上位機(jī)采用E4A開發(fā)環(huán)境,相對Java,E4A編程簡易、語言簡潔[6]。因此本軟件的安卓APP代碼編寫非常符合國人的編程思維習(xí)慣,極易上手,且易安卓也支持發(fā)布與代碼共享,可以進(jìn)行程序模塊重復(fù)利用[7]。
本設(shè)計(jì)中核心的兩個功能是跳轉(zhuǎn)功能和取網(wǎng)頁源碼功能。跳轉(zhuǎn)功能使用戶訪問一個網(wǎng)頁而不會出現(xiàn)這個網(wǎng)頁。本模塊中使用于APP改變參數(shù)。取網(wǎng)頁源碼功能就是爬蟲功能,本設(shè)計(jì)中使用這個功能去爬取數(shù),以便于APP和單片機(jī)的數(shù)據(jù)同步,其爬蟲代碼如圖4所示。
圖4 爬蟲模塊的應(yīng)用
本設(shè)計(jì)還可以使用一個小技巧,將參數(shù)調(diào)為頭為9尾為7的參數(shù),方便于文本的分割,使用的前提是在賬號中沒有9和7。如圖5所示為跳轉(zhuǎn)部分的代碼。
圖5 跳轉(zhuǎn)代碼
遠(yuǎn)程控制使用aREST 框架,部分代碼如圖6~圖8所示。
圖6 硬件第一部分
圖7中void setup(void)是制執(zhí)行一次的函數(shù),本部分包括了WiFi的連接、變量的連接和名字的定義。
圖7 硬件第二部分
圖8所示部分包括一直循環(huán)的函數(shù)和一個自定義的數(shù)據(jù)處理函數(shù),循環(huán)函數(shù)用于數(shù)據(jù)的同步。
圖8 硬件第三部分
圖6所示部分為初始化部分,前3行為庫文件,第4,5行為定義用戶,第7行創(chuàng)建實(shí)例,第8~11行為定義變量,最后一行是定義函數(shù)。
用戶通過APP登入控制界面,軟件使用版本單獨(dú)對應(yīng)的密碼來解鎖,且一套系統(tǒng)只能被一個相對應(yīng)的APP所驅(qū)動。
APP使用黑盒思想進(jìn)行封裝,使得用戶在使用時(shí)簡單明了,又因?yàn)槭褂靡装沧窟M(jìn)行開發(fā),所以內(nèi)部修改相對比較簡單[8]。
本設(shè)計(jì)穿插使用云端的aREST框架和爬蟲技術(shù),實(shí)現(xiàn)了智能家居的基本控制,后續(xù)的研究中還會加入大量的機(jī)械結(jié)構(gòu)與之配合,完成一套完整的智能家居[9]。
本設(shè)計(jì)中的智能家居遠(yuǎn)程控制系統(tǒng)在原有智能家居控制系統(tǒng)上增加了一種新思路,可以和其他控制方式配合使用,更加方便對智能家居進(jìn)行實(shí)時(shí)了解和操作。對本文設(shè)計(jì)的APP稍加改裝,便可應(yīng)用于其他智能家居控制系統(tǒng)中[10]。