安全文庫(kù)網(wǎng)絡(luò)信息安全團(tuán)隊(duì) 曹宇寧 陳衍基
遠(yuǎn)程控制智能家居新思維及創(chuàng)新制造
安全文庫(kù)網(wǎng)絡(luò)信息安全團(tuán)隊(duì) 曹宇寧 陳衍基
隨著近幾年智能家居產(chǎn)品制造成本的降低及智能生活,智能家具的廣泛普及,在智能家居控制方面,控制的新思維及創(chuàng)新制造,愈來(lái)愈成為廣大智能硬件愛(ài)好者深入研究的方向。
智能硬件;智能家居控制;創(chuàng)新制造
目前很多智能家居產(chǎn)品均可實(shí)現(xiàn)在局域網(wǎng)內(nèi)通過(guò)局域網(wǎng)控制WIFI插座來(lái)進(jìn)行智能硬件的開(kāi)關(guān)及使用,但在遠(yuǎn)程控制在線服務(wù)操作控制方面實(shí)現(xiàn)較少。因此,在借閱相關(guān)的資料之后,提出將智能家居產(chǎn)品連接至“主控板”通過(guò)遠(yuǎn)程控制主控板,主控板與手機(jī)進(jìn)行數(shù)據(jù)交流對(duì)于智能家居產(chǎn)品進(jìn)行控制及使用。
圖1 主板構(gòu)成及原理
圖2 通信原理
圖3 詳細(xì)結(jié)構(gòu)
服務(wù)器端架構(gòu)條件及環(huán)境:Linux服務(wù)器+MySQL數(shù)據(jù)庫(kù)+-程序編譯。
1)可通過(guò)微信公眾平臺(tái)接口實(shí)現(xiàn)在客戶端進(jìn)行遠(yuǎn)程控制。具體思維導(dǎo)圖見(jiàn)圖4:
圖4 思維導(dǎo)圖
2)原理剖析:用戶手機(jī)通過(guò)連接2G/3G/4G流量網(wǎng)絡(luò)向微信測(cè)試賬號(hào)發(fā)出指令進(jìn)行相應(yīng)的控制。 微信測(cè)試賬號(hào)接受到用戶命令之后,立即通過(guò)平臺(tái)轉(zhuǎn)發(fā)數(shù)據(jù)信息給服務(wù)器端,再由服務(wù)器將命令轉(zhuǎn)發(fā)給家庭中的智能主控板,主控板受到命令之后開(kāi)始控制智能家居工作。執(zhí)行操作成功后,主控板將信息傳輸返回給用戶手機(jī)端。
3)功能介紹:由于在上文中提到了采用的是微信公眾平臺(tái)的接口,因此此處在服務(wù)器端導(dǎo)入智能機(jī)器人程序時(shí)候,就可以實(shí)現(xiàn)智能機(jī)器人微控。采用智能機(jī)器人服務(wù)。例如:當(dāng)“主控板”接入溫度報(bào)警器后,可以在線控制家庭溫度,當(dāng)溫度過(guò)高后,智能機(jī)器人自動(dòng)回復(fù)消息給手機(jī)微信端。隨時(shí)隨地,只要手機(jī)接入互聯(lián)網(wǎng)都能了解家中情況。
1)開(kāi)發(fā)環(huán)境:基于單片機(jī)開(kāi)發(fā)、微信開(kāi)發(fā)、服務(wù)器開(kāi)發(fā)、數(shù)據(jù)庫(kù)應(yīng)用。
單片機(jī)開(kāi)發(fā):利用類c的arduino語(yǔ)音對(duì)單片機(jī)mcu進(jìn)行編程,利用at指令操作wif i模式進(jìn)行http請(qǐng)求。
微信開(kāi)發(fā):利用php語(yǔ)言在服務(wù)器端做跟微信服務(wù)器通信的接口。
服務(wù)器環(huán)境:lnmp即linux、nginx、mpsql、php5.3.3。
2)關(guān)鍵技術(shù):熟悉單片機(jī)開(kāi)發(fā),熟悉wif i模式的at指令和相關(guān)固件開(kāi)發(fā)、網(wǎng)絡(luò)通信、服務(wù)器的搭建、利用php語(yǔ)言做下位機(jī)接口和微信服務(wù)器接口、微信相關(guān)開(kāi)發(fā),mysql數(shù)據(jù)庫(kù)操作。
3)技術(shù)難點(diǎn):要做到能夠遠(yuǎn)程微信控制,則必須會(huì)使用esp-8266wifi模塊,在使用此模塊前,必須對(duì)期內(nèi)部固件進(jìn)行編寫,少寫at固件才可跟單片機(jī)進(jìn)行串口通信;單片機(jī)要實(shí)時(shí)采集數(shù)據(jù)且通過(guò)wif i模式進(jìn)行http請(qǐng)求之后獲得反饋值再進(jìn)行相關(guān)操作,這要求單片機(jī)的io口要足夠多且運(yùn)行速率不能太低;要做到實(shí)時(shí)獲取數(shù)據(jù)和快速做出相關(guān)動(dòng)作則必須要不斷的進(jìn)行http請(qǐng)求。服務(wù)器端微信開(kāi)發(fā)必須熟悉微信開(kāi)發(fā)文檔,編寫的接口必須按照一定的協(xié)議才可與微信服務(wù)器交互,而且要實(shí)現(xiàn)自動(dòng)反饋提醒信息給用戶則必須要獲取微信用戶的openid和微信公眾號(hào)的access_token和對(duì)數(shù)據(jù)進(jìn)行json格式轉(zhuǎn)換。微信公眾號(hào)的access_token不是保持不變的,出于安全考慮,是每7200s更新一次,則要對(duì)此進(jìn)行相關(guān)操作才可以正常實(shí)時(shí)此功能。
4)創(chuàng)新點(diǎn):無(wú)需安裝額外的app;用微信實(shí)現(xiàn)多方式控制:按鈕、文字指令、語(yǔ)音指令;打破局域網(wǎng)限制,能夠遠(yuǎn)程控制;
5)不足之處:在查看我的魚缸模式下要觀看實(shí)時(shí)視頻則必須在手機(jī)安裝相應(yīng)的ADOBE FLASH PLAYER插件;通信方式為http請(qǐng)求,請(qǐng)求過(guò)于頻繁,不能很好的做到降低服務(wù)器負(fù)載,今后將會(huì)不斷完善,會(huì)采用tcp長(zhǎng)連接的方式替代http請(qǐng)求;微信控制頁(yè)面過(guò)于單調(diào),今后將會(huì)調(diào)用微信的jsapi,將web’端嵌入到微信,實(shí)現(xiàn)更美觀的、可視化的控制。