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