王超+林百順+馮開(kāi)屏+李清清



DOI:10.16644/j.cnki.cn33-1094/tp.2016.07.004
摘 要: 針對(duì)目前智能窗戶發(fā)展不夠成熟以及產(chǎn)品成本過(guò)高的問(wèn)題,在國(guó)內(nèi)光纖以太網(wǎng)和云計(jì)算技術(shù)迅猛發(fā)展、無(wú)線局域網(wǎng)普及的背景下,開(kāi)發(fā)了物聯(lián)網(wǎng)智能窗戶系統(tǒng)。設(shè)計(jì)采用arduino控制芯片以及各種傳感器芯片組建智能窗戶,并通過(guò)ESP8266WIFI芯片接入互聯(lián)網(wǎng);利用偽造序列號(hào)的方式完成TCP協(xié)議的NAT穿越,實(shí)現(xiàn)手機(jī)終端到智能窗戶的點(diǎn)對(duì)點(diǎn)連接;通過(guò)云虛擬主機(jī)平臺(tái),實(shí)現(xiàn)對(duì)智能窗戶的管理。該智能窗戶系統(tǒng)具備實(shí)時(shí)監(jiān)測(cè),遠(yuǎn)程控制,智能安防等功能,滿足了用戶對(duì)智能生活的要求。
關(guān)鍵詞: 智能家居; P2P連接; 物聯(lián)網(wǎng); 遠(yuǎn)程監(jiān)控
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2016)07-12-04
Design and implementation of intelligent window system base on Internet of Things
Wang Chao, Lin Baishun, Feng Kaiping, Li Qingqing
(School of computer science and technology, Jilin University, Changchun, Jilin 130000, China)
Abstract: Presently, the intelligent window is under developing and its cost of production is too high. For this problem, in the background of the rapid development of fiber Ethernet and cloud computing technology, and the popularization of Wi-Fi, the intelligent window system based on Internet of Things is developed. In this design, the intelligent window is built with Arduino control chip and a variety of sensor chips, through ESP8266WIFI chip connects to the Internet; uses the faking serial number to complete NAT crossing of TCP protocol, which makes the Peer-to-Peer connection between the mobile terminals and the intelligent window possible; and through the cloud virtual host machine platform implements the management of the intelligent window. The intelligent window has the functions of real-time monitoring, remote control and intelligent security, and meets the user's requirements for intelligent life.
Key words: smart home; Peer-to-Peer connection; Internet of Things; remote monitoring
0 引言
目前智能家居領(lǐng)域發(fā)展火熱,智能窗戶的出現(xiàn)滿足了人們對(duì)智能生活的要求。智能窗戶種類很多,但是現(xiàn)有智能窗戶大多數(shù)僅僅是本地智能,即根據(jù)環(huán)境溫度的變化,實(shí)現(xiàn)自動(dòng)開(kāi)關(guān)。只有少數(shù)智能窗戶具備遠(yuǎn)程控制的功能,但也都是利用了移動(dòng)通訊GSM模塊,這種方式傳輸?shù)臄?shù)據(jù)量小,而且根本不具備實(shí)時(shí)性[2]。綜上所述,現(xiàn)有智能窗戶主要有以下幾點(diǎn)不足:①數(shù)據(jù)傳輸量很小,不具備實(shí)時(shí)監(jiān)控的功能;②不具備智能安防的功能;③窗體驅(qū)動(dòng)模塊設(shè)計(jì)不好,導(dǎo)致只能用較高電壓驅(qū)動(dòng)窗體,存在較大的安全隱患。為了克服這些不足,本文設(shè)計(jì)并實(shí)現(xiàn)了一種操作簡(jiǎn)單,具備智能安防與遠(yuǎn)程監(jiān)控功能的新一代智能窗戶。
1 系統(tǒng)設(shè)計(jì)
1.1 需求分析
從整體來(lái)看,智能窗戶系統(tǒng)應(yīng)劃分為兩個(gè)部分:遠(yuǎn)程通訊部分和本地智能部分,如圖1所示。其中,遠(yuǎn)程通訊部分負(fù)責(zé)手機(jī)客戶端到智能窗戶的通訊,并且負(fù)責(zé)將環(huán)境數(shù)值以及窗戶的狀態(tài)發(fā)送到手機(jī)的客戶端上。本地智能部分負(fù)責(zé)檢測(cè)各種環(huán)境數(shù)據(jù),并根據(jù)預(yù)先的設(shè)定,進(jìn)行窗戶的開(kāi)關(guān)控制[4]。
1.2 技術(shù)分析
1.2.1 遠(yuǎn)程監(jiān)測(cè)及遠(yuǎn)程控制分析
小到可穿戴設(shè)備,大到智能家居,交通工具等。未來(lái)智能設(shè)備的數(shù)量將是數(shù)以億計(jì)的。在本設(shè)計(jì)中,數(shù)據(jù)存儲(chǔ)于智能窗戶的SD卡中,而不必上傳到服務(wù)器,數(shù)據(jù)的分布式存儲(chǔ)緩解了服務(wù)器硬盤的壓力。
另外,由于我們平時(shí)接入互聯(lián)網(wǎng)的設(shè)備絕大部分都處于NAT防火墻之后,外網(wǎng)中的設(shè)備無(wú)法直接訪問(wèn)局域網(wǎng)內(nèi)的終端。傳統(tǒng)解決方案是通過(guò)服務(wù)器轉(zhuǎn)發(fā)數(shù)據(jù)。但是物聯(lián)網(wǎng)設(shè)備數(shù)目龐大,服務(wù)器將無(wú)法承受巨大的轉(zhuǎn)發(fā)壓力。而且中央服務(wù)器使得網(wǎng)絡(luò)中的數(shù)據(jù)流量集中到一點(diǎn),不能夠充分利用空閑的線路[3]。本設(shè)計(jì)利用集中式對(duì)等網(wǎng)絡(luò)實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)通訊,在不需要服務(wù)器轉(zhuǎn)發(fā)數(shù)據(jù)的情況下就能將手機(jī)連接到智能窗戶。
1.2.2 NAT穿越分析
如圖2所示,本設(shè)計(jì)通過(guò)偽造序列號(hào)的方式完成TCP協(xié)議的NAT穿越。
Phone向MiddleServer建立TCP請(qǐng)求連接,MiddleServer獲得host_p_addr和host_p_port映射后的nat_p_addr和nat_p_port的信息,并通告給Window。
Phone第二次發(fā)起TCP請(qǐng)求時(shí),設(shè)定TTL值,使得數(shù)據(jù)包剛好到達(dá)NATA ,Phone抓包獲得剛發(fā)出的TCP序列號(hào),通過(guò)UDP協(xié)議直接通告給Window, Window便可以偽造一個(gè)TCP SYN包,其中源地址:nat_p_addr,端口號(hào):nat_p_port,目標(biāo)地址:host_w_addr,端口號(hào):host_w_port。Window收到自己偽造的TCP包,于是產(chǎn)生了一個(gè)SYN_ACK的包。
NATB為
1.3 硬件實(shí)現(xiàn)
1.3.1 智能窗戶機(jī)械結(jié)構(gòu)分析
所述智能窗戶結(jié)構(gòu)如圖3所示,包含窗框(1)、滑動(dòng)窗扇(2),安裝于底層窗框中的驅(qū)動(dòng)裝置,安裝于窗體和窗框中的各種傳感器、控制模塊(17)以及聯(lián)網(wǎng)模塊(14)。
驅(qū)動(dòng)裝置包括:驅(qū)動(dòng)電機(jī)(13),離合器(11),與離合器配合的傳動(dòng)裝置。離合器(11)實(shí)現(xiàn)傳動(dòng)齒輪與電機(jī)(13)之間的脫離,這樣,用戶可以隨意開(kāi)關(guān)窗戶,不至于帶動(dòng)電機(jī)反向運(yùn)轉(zhuǎn)。
智能窗戶部件編號(hào):
1、窗框 2、窗體 3、溫濕度傳感器 4、煙霧傳感器 5、雨滴傳感器 6、PM2.5傳感器 7、超聲波傳感器 8、齒輪 9、齒輪 10、齒輪 11、電磁離合器12、齒條 13、電機(jī) 14、聯(lián)網(wǎng)模塊 15、LCD顯示器 16、蝸桿 17、單片機(jī)控制芯片 18、齒輪 19、齒輪
1.3.2 本地智能效果
用戶通過(guò)手機(jī)設(shè)定溫度值,當(dāng)溫度低于關(guān)窗溫度時(shí),單片機(jī)(17)控制電磁離合鎖死后驅(qū)動(dòng)電機(jī)運(yùn)轉(zhuǎn),窗戶關(guān)閉。同樣當(dāng)溫度高于開(kāi)窗溫度時(shí),單片機(jī)(17)控制電磁離合鎖死后驅(qū)動(dòng)電機(jī)反向運(yùn)轉(zhuǎn),窗戶打開(kāi)[5]。
煙霧傳感器檢測(cè)到起火時(shí),窗戶自動(dòng)打開(kāi),雨滴傳感器檢測(cè)到下雨時(shí),窗戶自動(dòng)關(guān)閉。
單片機(jī)控制器(17)中存儲(chǔ)有自動(dòng)切換智能與手動(dòng)模式的算法,在智能模式下,只要用戶手動(dòng)滑動(dòng)窗扇,就會(huì)觸發(fā)切換算法,從而使單片機(jī)切換到手動(dòng)模式[6]。
2 軟件實(shí)現(xiàn)
服務(wù)器端系統(tǒng)采用hibernate和spring框架開(kāi)發(fā),利用了mysql數(shù)據(jù)庫(kù),搭建在tomcat上。
2.1 功能描述
2.1.1 注冊(cè)與登錄模塊
模塊功能:用戶在服務(wù)器注冊(cè)并登錄賬戶,綁定智能窗戶,便于對(duì)智能窗戶的管理。同時(shí)方便以后再添加和管理設(shè)備。
用戶打開(kāi)手機(jī)客戶端,進(jìn)入登錄頁(yè)面。如果沒(méi)有帳號(hào)則選擇注冊(cè)。客戶端將用戶登錄信息提交到服務(wù)器,Tomcat收到Post請(qǐng)求,將數(shù)據(jù)轉(zhuǎn)發(fā)到LoginServlet處理。LoginServlet對(duì)數(shù)據(jù)做初步驗(yàn)證,檢查用戶名密碼是否合法,之后將數(shù)據(jù)封裝成一個(gè)JavaBean對(duì)象,轉(zhuǎn)發(fā)給業(yè)務(wù)邏輯層處理。業(yè)務(wù)邏輯層Service通過(guò)Dao對(duì)象中封裝的函數(shù)訪問(wèn)數(shù)據(jù)庫(kù),如果數(shù)據(jù)庫(kù)中沒(méi)有賬戶信息,則拋出異常信息:登錄失敗,上層的LoginServlet捕獲到異常信息后,頁(yè)面跳回到登錄狀態(tài)。反之,如果存在賬戶則登陸成功,跳轉(zhuǎn)到智能窗戶控制頁(yè)面[8]。同樣,注冊(cè)頁(yè)面通過(guò)查詢數(shù)據(jù)庫(kù)檢驗(yàn)賬戶是否存在,若賬戶合法則將賬戶寫入到數(shù)據(jù)庫(kù),并跳轉(zhuǎn)到登錄頁(yè)面。其功能流程圖如圖4所示。
2.1.2 綁定模塊
模塊功能:用戶賬戶與智能窗戶進(jìn)行綁定,便于對(duì)智能窗戶的管理。
前提業(yè)務(wù):注冊(cè)與登錄。
手機(jī)客戶端登錄賬戶后,點(diǎn)擊添加設(shè)備選項(xiàng)。用手機(jī)掃描智能窗戶上的二維碼,獲得智能窗戶的ID值,點(diǎn)擊綁定后,數(shù)據(jù)提交到服務(wù)器上。其效果圖如圖5所示。
查詢數(shù)據(jù)庫(kù),如果數(shù)據(jù)庫(kù)中存在該智能窗戶的ID值并且沒(méi)有其他用戶綁定該窗戶,則向客戶端發(fā)送確認(rèn)消息,用戶點(diǎn)擊確認(rèn)后,服務(wù)器上用戶賬戶的數(shù)據(jù)表中便寫入了智能窗戶的ID值,從而實(shí)現(xiàn)綁定。
如果數(shù)據(jù)庫(kù)中不存在該智能窗戶的ID值,或者該ID已經(jīng)被其他用戶綁定,則向客戶端發(fā)送錯(cuò)誤信息,由用戶選擇是否繼續(xù)綁定。
2.1.3 監(jiān)測(cè)與控制模塊
模塊功能:服務(wù)器根據(jù)用戶綁定的智能窗戶的編號(hào)查找IP地址,并將IP通告給客戶端。這樣,兩端的NAT防火墻都建立了映射表,從而實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)連接[4]。
前提業(yè)務(wù):注冊(cè)登錄與綁定。
用戶打開(kāi)手機(jī)客戶端,登錄賬戶后,點(diǎn)擊我的設(shè)備,進(jìn)入監(jiān)測(cè)與控制模塊。其效果圖如圖5所示。
監(jiān)測(cè)模塊包括:智能窗戶狀態(tài)圖,室外溫度、室內(nèi)溫度、室外空氣質(zhì)量、火災(zāi)報(bào)警警示。智能窗戶通過(guò)傳感器收集的數(shù)據(jù)會(huì)通過(guò)互聯(lián)網(wǎng)傳送到手機(jī)客戶端,智能窗戶狀態(tài)圖動(dòng)態(tài)顯示窗戶開(kāi)關(guān)的大小。由于智能窗戶和手機(jī)之間采用的是點(diǎn)對(duì)點(diǎn)連接,降低了服務(wù)器轉(zhuǎn)發(fā)數(shù)據(jù)的壓力,同時(shí)降低了傳輸延遲。
控制模塊包括:智能窗戶開(kāi)關(guān)控制條、手動(dòng)模式與自動(dòng)模式切換按鈕。控制條中包含20個(gè)不同的位置信息,滑動(dòng)控制條,客戶端便會(huì)封裝位置數(shù)據(jù),利用JXTA協(xié)議向智能窗戶端發(fā)送控制命令,實(shí)現(xiàn)實(shí)時(shí)控制[9]。
3 結(jié)束語(yǔ)
目前,4G網(wǎng)絡(luò)逐漸普及,5G網(wǎng)絡(luò)的研究也在進(jìn)行中。我國(guó)光纖以太網(wǎng)發(fā)展迅速,網(wǎng)絡(luò)通訊速度正在飛快地提升,物聯(lián)網(wǎng)的概念必將深入人心。
就本設(shè)計(jì)所應(yīng)用的技術(shù)來(lái)說(shuō),面對(duì)數(shù)目龐大的物聯(lián)網(wǎng)智能設(shè)備,本設(shè)計(jì)所采用的數(shù)據(jù)分布式存儲(chǔ)是緩解服務(wù)器壓力的有效方式。同時(shí),當(dāng)前人們所用的互聯(lián)網(wǎng)接入工具無(wú)非就是智能手機(jī)、電腦等用來(lái)瀏覽網(wǎng)頁(yè)的設(shè)備,連接方式僅限于客戶端—瀏覽器模型,本設(shè)計(jì)所應(yīng)用的TCP NAT穿越技術(shù),實(shí)現(xiàn)了點(diǎn)對(duì)點(diǎn)連接。不同于某些傳統(tǒng)的P2P下載軟件或者視頻軟件,本設(shè)計(jì)所應(yīng)用的P2P連接技術(shù)所實(shí)現(xiàn)的是實(shí)時(shí)控制與監(jiān)測(cè)。當(dāng)物聯(lián)網(wǎng)設(shè)備普及時(shí),點(diǎn)對(duì)點(diǎn)連接將是緩解服務(wù)器轉(zhuǎn)發(fā)壓力的有效方式。
另外,僅就本設(shè)計(jì)來(lái)說(shuō),智能窗戶具備實(shí)時(shí)監(jiān)測(cè)、遠(yuǎn)程控制的功能。相比于傳統(tǒng)的通過(guò)GSM模塊發(fā)送消息的智能窗戶,本設(shè)計(jì)的數(shù)據(jù)傳輸速度更快,而且實(shí)時(shí)監(jiān)控能力更強(qiáng),窗戶工作電壓為5V,更安全,且功耗低。
參考文獻(xiàn)(References):
[1] 蔡康.P2P對(duì)等網(wǎng)絡(luò)原理與應(yīng)用[M].科學(xué)出版社,2011.
[2] 桂勁松.物聯(lián)網(wǎng)系統(tǒng)設(shè)計(jì)[M].電子工業(yè)出版社,2013.
[3] 諶璽,張洋.思科CCNA認(rèn)證詳解與實(shí)驗(yàn)指南[M].電子工業(yè)出
版社,2014.
[4] W.Richard Steven.TCP/IP詳解[M].機(jī)械工業(yè)出版社,2000.
[5] Dale Wheat. ARDUINO技術(shù)內(nèi)幕[M].人民郵電出版社,
2013.
[6] Robert Faludi. Arduino無(wú)線傳感器網(wǎng)絡(luò)實(shí)踐指南[M].機(jī)械
工業(yè)出版社,2013.
[7] Matthew S.Gast. 802.11無(wú)線網(wǎng)絡(luò)權(quán)威指南[M].清華大學(xué)出
版社,2002.
[8] 科夫勒.MySQL5權(quán)威指南[M].人民郵電出版社,2006.
[9] 李剛.瘋狂Android講義[M].電子工業(yè)出版社,2011.