方鑠,張帥東,周辰宇,劉亞煒,麻廣霖
(鄭州輕工業(yè)大學計算機與通信工程學院,鄭州450002)
隨著城市化進程的加快,樓宇也趨于智能化[1]。但居住的環(huán)境數據不能實時地展示在住戶面前,這帶來了很多安全隱患。針對這個安全現狀,也為了給住戶提供更加便捷、舒適、安全的生活環(huán)境,迫切需要解決如何讓用戶輕松便捷地管理居住環(huán)境數據的問題。
本文提出了一種基于Web 服務器[5]的智能樓宇傳感網絡系統(tǒng)[3],以Web 瀏覽器做監(jiān)控終端,以低功耗、體積小、壽命長的ZigBee 技術[2]以及各種傳感和控制模塊構建智能樓宇的內網,該系統(tǒng)具有操作簡單、成本低、功耗低、功能強大的特點。
該系統(tǒng)包括下位機、上位機桌面應用程序和Web端軟件三大部分。下位機部分中,各個傳感器分別要完成:門禁功能、節(jié)能功能、天氣檢測功能、火災報警功能、室內防盜功能、車輛測距功能、環(huán)境監(jiān)測功能。上位機桌面應用程序作為中間環(huán)節(jié)。實現從CC2530 芯片獲取環(huán)境數據,再與Web 服務器連接,然后把數據傳入Web 服務器以供顯示。從而形成一條完整的數據鏈,保證環(huán)境數據的實時性與準確性。CC2530 芯片搭載Z-Stack 協議棧[4]以及各種傳感與控制等模塊構成。完成本系統(tǒng)的傳感控制功能,CC2530 具有高性能和低功耗的8051 微控制器核,微控制器核是將微型計算機的主要部分集成在一個芯片上的單芯片微型計算機。CC2530 支持ZigBee、ZigBee PRO 等標準,其無線射頻模塊兼容IEEE 802.15.4,硬件支持CSMA/CA 功能,帶有符合IEEE 802.15.4 規(guī)范的定時器,接收器靈敏度高、抗干擾性強,集成AES 安全協處理器。Web端軟件由用戶模塊、實時數據顯示模塊、歷史數據查詢模塊構成。用戶模塊可完成權限校驗、用戶登錄、用戶注銷等功能。實時數據顯示模塊可完成模塊狀態(tài)顯示、溫濕度顯示、PM2.5 數據查詢功能。歷史數據查詢模塊可完成環(huán)境數據的歷史查詢功能。為了使三大部分形成一套具有采集,處理,顯示功能的完整系統(tǒng),本系統(tǒng)利用ZigBee 技術,把各個傳感器獲取的信息發(fā)送至協調器,再通過協調器把信息提交至Web 服務器,用戶可通過Web 瀏覽器、手機監(jiān)控節(jié)點等方式獲取環(huán)境數據,同時,也可以對各節(jié)點進行控制。系統(tǒng)整體設計方案如圖1 所示。
圖1 系統(tǒng)整體設計方案
本系統(tǒng)的下位機部分是以CC2530 單片機為核心,由RFID、電磁鎖、光照傳感器、雨滴傳感器、煙霧報警器、紅外傳感器、超聲波傳感器與該單片機連接組成的門禁模塊、節(jié)能控制模塊、防火模塊、天氣監(jiān)測模塊、室內防盜模塊、車距模塊組成。各個終端節(jié)點與協調器之間采用ZigBee 技術組成無線傳感網絡。ZigBee 技術是IEEE 802.15.4 協議的代名詞,是一種近距離、低復雜度、低功耗、低速率、低成本的雙向無線通訊技術。主要用于距離短、功耗低且傳輸速率不高的各種電子設備之間進行數據傳輸以及典型的有周期性數據、間歇性數據和低反應時間數據傳輸的應用。
下位機各功能的實現是由各個傳感器分工完成的。如圖2 所示門禁模塊由RFID 模塊進行控制,系統(tǒng)采集RFID 卡片中攜帶的信息,將其與數據庫中的數據相匹配,匹配成功后向下位機發(fā)送指令,打開電磁鎖。節(jié)能控制模塊由光照傳感器進行控制,當光照值達到一個預設的最高值后,燈泡熄滅,以達到節(jié)能效果。反之,光照達到預設的最低值時,燈泡點亮。天氣監(jiān)測模塊由雨滴傳感器控制,當檢測到有雨滴落下時,系統(tǒng)關閉窗簾。室內防盜模塊由紅外傳感器控制,室內有人時蜂鳴器會報警。車距模塊有超聲波傳感器控制,主要檢測車與傳感器的距離,距離過小時蜂鳴器會報警。各傳感器狀態(tài)更新后同時更新Web 端狀態(tài)。
系統(tǒng)上位機是基于Tomcat 搭建的Web 服務器,Tomcat 服務器是一個免費的開放源代碼的Web 輕量級應用服務器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用。Web 后端采用Java 語言開發(fā),使用MVC 設計模式。采用Servlet 容器處理信息,同時采用多線程解決方案,通過Socket 通信技術獲取下位機的環(huán)境數據,采用MySQL 存儲歷史數據。Web 前端主要采用HTML5 開發(fā)主界面,同時采用JavaScript、JSP動態(tài)處理界面。采用CSS3 組件以及Bootstrap 框架技術美化增加用戶體驗,采用AJAX 技術異步處理頁面信息,減輕服務器負擔。
圖2 下位機功能實現圖
上位機設計思路如圖3 所示,當上位機接收到下位機數據后,首先要實現環(huán)境數據的讀取與存儲。之后,開始實現上位機部分的三大模塊,分別為用戶模塊、實時數據顯示模塊、歷史記錄查詢模塊。用戶模塊具有用戶的登錄與注銷、用戶的添加與刪除等的功能。該模塊控制用戶權限,未登錄狀態(tài)下禁止訪問其他模塊,提高了系統(tǒng)的安全性。實時數據顯示模塊主要負責實時顯示由下位機硬件采集到的數據,采用心跳機制,每隔一秒采集一次數據,以確保連接的有效性的機制。心跳機制是定時發(fā)送一個自定義的心跳包,心跳包則是按一定時間間隔發(fā)送的數據包,頻率是固定的。網絡中的接收和發(fā)送數據都是使用操作系統(tǒng)中的Socket 進行實現。但是如果此套接字已經斷開,那發(fā)送數據和接收數據的時候就一定會有問題,所以需要在本系統(tǒng)采用心跳機制,確保數據的連續(xù)性。系統(tǒng)在整點的時候將溫度、濕度、PM2.5 值進行存儲。歷史記錄查詢模塊能夠根據用戶選擇的時間進行精確查詢,并將查詢到的數據用三種不同顏色的折線圖在網頁上顯示。
圖3 Web設計流程圖
本系統(tǒng)采用Java 多線程技術,分別控制Socket 與上位機通信和上位機發(fā)送的數據插入數據庫,確保了系統(tǒng)的穩(wěn)定性。上位機與下位機交互的數據格式為:String[]data={起始位,設備編號,數據位,結束位}。如圖4 所示,系統(tǒng)啟動ServerSocket,系統(tǒng)監(jiān)聽客戶端的Socket。如果Socket 已經連接,則開啟數據接收的線程,否則繼續(xù)監(jiān)聽Socket。數據交互進程被啟動后,即能進行數據交互,通過創(chuàng)建輸入輸出流對象,可進行數據的輸入與輸出。線程可向客戶端傳遞狀態(tài)碼,用來打開電磁鎖。另外,門禁模塊是由RFID 模塊進行控制的,所以RFID 卡的信息需要保存到數據庫中,上位機需要發(fā)送由硬件讀取的RFID 卡號到服務器,再由服務器查詢數據庫比對后返回結果給上位機。線程可接收數據(數據由線程接受),Web 通過Servlet 把此數據進行實時顯示,并且經過封裝后存入數據庫以便歷史信息功能的調用。
如圖5 所示,在用戶成功登錄后,進入到智能樓宇傳感網絡系統(tǒng)的主頁面。在頁面左邊欄,分別有全部信息,歷史信息,賬號設置,用戶注銷等功能。全部信息是向用戶展示系統(tǒng)實時信息。包括門禁、天氣、防火、防盜、溫濕度等環(huán)境數據。歷史信息是向用戶展示歷史的環(huán)境數據。賬號設置可對賬戶進行修改密碼,更改密保等設置。用戶注銷用于安全退出系統(tǒng)。圖5所展示的主體界面就是全部信息,向用戶直觀的展示所有傳感器此時獲得的數據。
圖4 系統(tǒng)數據交互流程圖
圖5 環(huán)境數據實時顯示
如圖6 所示,通過點擊左邊欄的歷史信息,可以進入到歷史信息欄。主界面上方可選擇歷史時間。中間則根據數據信息繪制三個折線圖。分別描述溫度、濕度與PM 值。用戶可根據歷史信息折線圖直觀地了解居住的環(huán)境走向。
圖6 歷史數據查詢
本文設計實現的基于Web 服務器的智能樓宇傳感網絡系統(tǒng),經過試驗測試能夠很好地完成項目預期要求。較好地實現了數據的采集、傳輸、顯示和存儲等功能。本系統(tǒng)能夠將樓宇中設備的狀態(tài)和環(huán)境數據通過瀏覽器實時展示在用戶面前,具有安全可靠、無需下載客戶端、可隨時隨處訪問等優(yōu)點。稍加改良,即可用于辦公樓、學校、居民樓、工廠等場所,給用戶提供了更加便捷、舒適、安全的生活或生產環(huán)境,具有良好的發(fā)展前景。