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