王超+林百順+馮開屏+李清清



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