安全文庫網(wǎng)絡(luò)信息安全團(tuán)隊(duì) 曹宇寧 陳衍基
遠(yuǎn)程控制智能家居新思維及創(chuàng)新制造
安全文庫網(wǎng)絡(luò)信息安全團(tuán)隊(duì) 曹宇寧 陳衍基
隨著近幾年智能家居產(chǎn)品制造成本的降低及智能生活,智能家具的廣泛普及,在智能家居控制方面,控制的新思維及創(chuàng)新制造,愈來愈成為廣大智能硬件愛好者深入研究的方向。
智能硬件;智能家居控制;創(chuàng)新制造
目前很多智能家居產(chǎn)品均可實(shí)現(xiàn)在局域網(wǎng)內(nèi)通過局域網(wǎng)控制WIFI插座來進(jìn)行智能硬件的開關(guān)及使用,但在遠(yuǎn)程控制在線服務(wù)操作控制方面實(shí)現(xiàn)較少。因此,在借閱相關(guān)的資料之后,提出將智能家居產(chǎn)品連接至“主控板”通過遠(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ù)庫+-程序編譯。
1)可通過微信公眾平臺(tái)接口實(shí)現(xiàn)在客戶端進(jìn)行遠(yuǎn)程控制。具體思維導(dǎo)圖見圖4:

圖4 思維導(dǎo)圖
2)原理剖析:用戶手機(jī)通過連接2G/3G/4G流量網(wǎng)絡(luò)向微信測試賬號(hào)發(fā)出指令進(jìn)行相應(yīng)的控制。 微信測試賬號(hào)接受到用戶命令之后,立即通過平臺(tái)轉(zhuǎn)發(fā)數(shù)據(jù)信息給服務(wù)器端,再由服務(wù)器將命令轉(zhuǎn)發(fā)給家庭中的智能主控板,主控板受到命令之后開始控制智能家居工作。執(zhí)行操作成功后,主控板將信息傳輸返回給用戶手機(jī)端。
3)功能介紹:由于在上文中提到了采用的是微信公眾平臺(tái)的接口,因此此處在服務(wù)器端導(dǎo)入智能機(jī)器人程序時(shí)候,就可以實(shí)現(xiàn)智能機(jī)器人微控。采用智能機(jī)器人服務(wù)。例如:當(dāng)“主控板”接入溫度報(bào)警器后,可以在線控制家庭溫度,當(dāng)溫度過高后,智能機(jī)器人自動(dòng)回復(fù)消息給手機(jī)微信端。隨時(shí)隨地,只要手機(jī)接入互聯(lián)網(wǎng)都能了解家中情況。
1)開發(fā)環(huán)境:基于單片機(jī)開發(fā)、微信開發(fā)、服務(wù)器開發(fā)、數(shù)據(jù)庫應(yīng)用。
單片機(jī)開發(fā):利用類c的arduino語音對(duì)單片機(jī)mcu進(jìn)行編程,利用at指令操作wif i模式進(jìn)行http請(qǐng)求。
微信開發(fā):利用php語言在服務(wù)器端做跟微信服務(wù)器通信的接口。
服務(wù)器環(huán)境:lnmp即linux、nginx、mpsql、php5.3.3。
2)關(guān)鍵技術(shù):熟悉單片機(jī)開發(fā),熟悉wif i模式的at指令和相關(guān)固件開發(fā)、網(wǎng)絡(luò)通信、服務(wù)器的搭建、利用php語言做下位機(jī)接口和微信服務(wù)器接口、微信相關(guān)開發(fā),mysql數(shù)據(jù)庫操作。
3)技術(shù)難點(diǎn):要做到能夠遠(yuǎn)程微信控制,則必須會(huì)使用esp-8266wifi模塊,在使用此模塊前,必須對(duì)期內(nèi)部固件進(jìn)行編寫,少寫at固件才可跟單片機(jī)進(jìn)行串口通信;單片機(jī)要實(shí)時(shí)采集數(shù)據(jù)且通過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ù)器端微信開發(fā)必須熟悉微信開發(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):無需安裝額外的app;用微信實(shí)現(xiàn)多方式控制:按鈕、文字指令、語音指令;打破局域網(wǎng)限制,能夠遠(yuǎn)程控制;
5)不足之處:在查看我的魚缸模式下要觀看實(shí)時(shí)視頻則必須在手機(jī)安裝相應(yīng)的ADOBE FLASH PLAYER插件;通信方式為http請(qǐng)求,請(qǐng)求過于頻繁,不能很好的做到降低服務(wù)器負(fù)載,今后將會(huì)不斷完善,會(huì)采用tcp長連接的方式替代http請(qǐng)求;微信控制頁面過于單調(diào),今后將會(huì)調(diào)用微信的jsapi,將web’端嵌入到微信,實(shí)現(xiàn)更美觀的、可視化的控制。