余 夢,李慧敏
(東華大學 機械工程學院,上海 201620)
近年來,隨著社會的發(fā)展,科技的進步,人們的生活質量有了很大提升,大型超市日益增多,市場上對于制冷壓縮機的需求量也逐漸增加。為了提高服務質量,冷鏈節(jié)能設備企業(yè)逐漸開始重視對制冷壓縮機運行情況的監(jiān)測。
傳統(tǒng)的監(jiān)測方式主要依靠技術人員親臨現場,對制冷壓縮機的運行參數進行采集,然而這種人工監(jiān)測的方式已經不能滿足現代企業(yè)的需求。同時,企業(yè)的設備維護人員在現場進行調試時,無法方便、有效地查看設備運行情況。對此,有必要開發(fā)設計一種基于移動終端的無線數據監(jiān)測系統(tǒng)。該系統(tǒng)不僅能移動、便攜地實現各項數據的監(jiān)測,減少監(jiān)測人員的工作量,而且便于對分散的超市冷鏈系統(tǒng)實現集中化管理,并能及時預警,提高系統(tǒng)的安全性。
在移動終端普及度極高的今天,手機或平板電腦上網已經成為人們生活的一部分。Android由于其開源、市場占有率高等優(yōu)勢成為移動端軟件開發(fā)的熱門平臺[1]。在此,利用Android平臺推出的SDK,藍牙傳輸技術、Tomcat服務器和SQL Server數據庫,進行超市冷鏈設備數據監(jiān)測系統(tǒng)的開發(fā),實現數據的遠程監(jiān)控、信息管理和藍牙現場調試等功能。
圖 1 超市冷鏈設備數據監(jiān)測系統(tǒng)總體架構Fig.1 Overall structure of supermarket cold chain equipment data monitoring system
圖3 各模塊界面Fig.3 Interface of each module
基于Android的超市冷鏈設備數據監(jiān)測系統(tǒng)總體架如圖1所示。該系統(tǒng)由4部分構成:Android移動終端、現場藍牙傳輸模塊、Tomcat服務器和SQL Server數據庫。
現場調試模式下,Android移動終端通過調用藍牙串口,與現場藍牙模塊進行配對,使用Socket連接來進行數據傳輸,主要用于維護人員進行現場調試,也可實現監(jiān)測人員由無線網絡切換為藍牙進行現場實時監(jiān)測。
遠程監(jiān)控模式下,系統(tǒng)采用C/S架構,Android移動終端通過HTTP協議和服務器進行通信,Tomcat服務器通過JDBC——一種用于執(zhí)行SQL語句的Java API——連接數據庫,對數據庫進行增刪查改等操作[2],SQL Server數據庫存儲著從下位機發(fā)送來的超市冷鏈設備各項數據和用戶信息。當用戶遠程手持Android移動終端,通過前臺APP進行相關操作,移動終端便可通過HTTP協議與后臺服務器建立連接,連接建立后前臺發(fā)送請求,服務器響應請求,通過JDBC對數據庫進行增刪查改等操作,并返回相關數據到前臺移動終端,將結果顯示在APP界面上。
該監(jiān)測系統(tǒng)前臺客戶端共有10大模塊,如圖2所示。
前臺客戶端的信息管理、實時數據監(jiān)測、現場藍牙實時數據、硬件調試等模塊的界面如圖3所示。
客戶端應用程序啟動后,顯示用戶登錄界面,當用戶輸入正確的用戶名和密碼后,即可進入主界面。該界面有門店選擇模塊、用戶管理模塊和現場藍牙調試模塊可供選擇。在門店選擇界面中,當用戶選擇了城市之后,可看到該城市的所有門店,此時用戶可通過點擊任意門店,進入相應門店的實時數據監(jiān)測模塊和歷史數據查詢模塊。在其實時數據監(jiān)測模塊中,用戶可監(jiān)測到壓力值、電能值、開關、繼電器和報警燈的實時數據與狀態(tài);在歷史數據查詢模塊中,用戶還可以通過選擇日期和器件來查看該元器件當日的所有歷史數據。
在用戶管理界面中,用戶可進行注冊用戶和查詢用戶信息的操作。在注冊用戶界面,管理人員可以注冊新員工(或門店)的姓名(門店名稱)、部門(門店地址)、電話、郵箱、賬戶、密碼等信息,提交之后存儲到數據庫中;在信息查詢界面,企業(yè)管理人員可以查詢所有員工和門店的相關信息。
在現場藍牙調試模塊中,用戶可以打開藍牙,選擇掃描到的附近藍牙設備進行配對。配對成功后,用戶可以進入該藍牙設備所在的超市門店實時數據監(jiān)測界面和硬件調試界面。在實時數據監(jiān)測界面中,用戶可以下拉刷新界面,監(jiān)測到當前現場設備的最新實時數據,便于設備維護人員了解設備的運行情況;在硬件調試界面,維護人員可以通過藍牙來設置硬件的各項參數。同時,現場用戶可將界面跳轉至藍牙調試模塊界面,進行配對連接,配對成功后,數據傳輸方式由無線網絡傳輸轉換為藍牙傳輸,用戶可以監(jiān)測到當下實時的數據,減少了遠程監(jiān)控模式下由于時間差導致的數據誤差。
圖4 遠程監(jiān)控流程Fig.4 Remote monitoring flow chart
遠程監(jiān)控的流程如圖4所示。前臺客戶端的任意遠程監(jiān)控activity打開后,先初始化控件,顯示界面布局。當客戶端接收到點擊事件后,隨即向服務器端發(fā)送請求,如果請求成功則接收服務器端的響應,獲取到JSON格式的數據,然后客戶端再解析JSON數據,并將數據顯示在界面中;如果請求服務器失敗則回復客戶端請求失敗的信息,提醒用戶。
設計中,采用HTTP協議以實現Android客戶端與后臺服務器的通信,選用HttpURLConnection方式發(fā)送POST請求。具體步驟如下:
步驟1創(chuàng)建1個URL,知道連接服務器的地址。
步驟2 設置HTTP協議的內容。
步驟3 使用流寫入內容。
步驟4 獲取響應的輸入流。
要使用Android客戶端的網絡功能,必須在AndroidManifest.xml文件中增加訪問互聯網的權限[3],其代碼如下:
由于Android程序不允許在主線程中訪問網絡,所以必須開啟1個子線程,在子線程中實現客戶端與后臺的通信。開啟子線程的方法是:在主程序中創(chuàng)建Thread對象,然后調用Thread類的start方法啟動。
系統(tǒng)后臺服務器的流程如圖5所示。服務器開啟后,等待前臺客戶端的連接,當有請求到達后,服務器端設置編碼格式,接收用戶請求,隨即連接數據庫,根據請求操作數據庫,最后獲取數據,響應用戶請求。
圖5 后臺服務器流程Fig.5 Background server flow chart
系統(tǒng)選用Tomcat作為服務器,在eclipse軟件上進行程序的編寫。服務器主要實現與客戶端的交互,以及對數據庫的增刪查改等操作。為了使與客戶端交互的數據傳輸效率更高,系統(tǒng)采用了JSON格式的數據,Android提供JSON的API,故使用起來非常方便。
服務器程序包的構成如下:①Dao包 對數據庫的操作類即增刪查改等;②DBUtil包 用于連接數據庫;③entity包 封裝了數據表的實體類;④JsonUtil包 將數據轉換成JSON格式;⑤servlet包實現服務器與數據庫的交互;⑥DBConfig.Properties包含SQL Server數據庫的JDBC驅動、數據庫URL、數據庫的用戶名和密碼。
服務器通過request.getParameter()獲取客戶端請求參數,response.getOutputStream()響應客戶端內容。
連接數據庫的部分關鍵程序如下:
數據庫采用了Microsoft SQL Server 2008數據管理系統(tǒng),其主要功能是存儲并管理超市冷鏈設備遠程實時監(jiān)測系統(tǒng)的相關數據。根據功能需求,數據庫需要建立1張用戶信息表、1張城市門店表、n張門店數據表。用戶信息表包含了門店和員工的具體信息;城市門店表包含各個城市的所有門店;門店數據表則包含該門店冷鏈設備的所有監(jiān)測數據。
門店數據表的結構見表1。
表1 門店數據表結構Tab.1 Structure of store data
系統(tǒng)服務器應用程序與后臺數據的鏈接采用JDBC接口。它由1組用Java語言編寫的類和接口組成,提供了標準API,可向相應數據庫發(fā)送SQL調用[5]。系統(tǒng)中DBUtil包用于連接數據庫。
現場藍牙監(jiān)控流程如圖6所示。進入藍牙監(jiān)控界面后,先判斷移動端藍牙是否開啟,如果沒有開啟則跳轉至打開藍牙;藍牙開啟后進行搜索配對,然后建立socket連接,如果連接失敗則顯示“連接失敗”以提醒用戶。如果連接成功則創(chuàng)建輸入流,進行數據接收與解析,并顯示到用戶界面,同時創(chuàng)建輸出流,為需發(fā)送的數據創(chuàng)建數據格式,然后發(fā)送到后臺藍牙模塊中。當用戶退出藍牙監(jiān)測界面時,斷開socket連接。
圖6 現場藍牙監(jiān)控流程Fig.6 Field bluetooth monitoring flow chart
Android進行藍牙開發(fā),必須在Android Manifest.xml文件中加入以下權限[4]:
基于Android的超市冷鏈設備數據監(jiān)測系統(tǒng),不僅能移動、便攜地實現各項數據的采集監(jiān)測,減少監(jiān)測人員的工作量,還能方便地對分散的超市冷鏈系統(tǒng)進行集中化管理,且能夠及時預警,大大提高系統(tǒng)的安全性。相較于傳統(tǒng)現場監(jiān)測模式,移動互聯網平臺下的數據監(jiān)測管理系統(tǒng),將使數據監(jiān)測變得更加便捷高效,同時利用無線藍牙通信技術進行現場數據監(jiān)測會使維護人員更方便、有效地進行設備的調試。
該系統(tǒng)客戶端遠程監(jiān)測通過無線互聯網絡,訪問系統(tǒng)Web服務器以獲取后臺數據信息,所采用的C/S結構在較大程度上透明化數據的儲存管理功能,同時又降低了客戶端運行負荷,減少對于本機資源的占用。短距離現場調試通過藍牙和現場藍牙模塊進行數據通信,可以獲取當下實時的數據,減少了遠程監(jiān)測由于時間差造成的數據誤差,極大地方便了維護人員的調試工作。系統(tǒng)運行穩(wěn)定可靠,且不需高昂的建設和維護成本,非常適用于企業(yè)管理人員對于超市冷鏈設備數據的監(jiān)測和管理。
[1]孫麗娟.基于Android的物聯網數據采集監(jiān)測系統(tǒng)開發(fā)[D].南京:南京理工大學,2016.
[2]劉勝前,陳立定.基于Android平臺的車輛導航系統(tǒng)設計與實現[J].自動化與儀表,2012,27(4):1-4.
[3]于嘯天.基于Android+Java EE的設備監(jiān)測和臺站設備信息管理系統(tǒng)[D].石家莊:河北師范大學,2014.
[4]侯新琦,李佳.基于Android藍牙通訊的研究[J].電子世界,2012,34(11):84-85.
[5]宋恒力.基于Android平臺與Web服務器的課程管理信息系統(tǒng)[J].電子技術,2014,43(12):59-63.