基于藍(lán)牙的Android平臺(tái)機(jī)電設(shè)備運(yùn)行數(shù)據(jù)監(jiān)控
發(fā)布日期:2016-11-16 來源:《上海設(shè)備管理》
點(diǎn)擊數(shù):26290
一、引言
建筑機(jī)電設(shè)備的監(jiān)控主要由數(shù)據(jù)采集、顯示、數(shù)據(jù)輸出等部分構(gòu)成。霍尼韋爾、江森、施耐德等國(guó)際一線企業(yè)的專用樓宇自動(dòng)化設(shè)備已經(jīng)占據(jù)了主流市場(chǎng),這些監(jiān)控設(shè)備的數(shù)據(jù)主要通過WiFi、USB 通用串行總線等通信方式,將機(jī)電設(shè)備運(yùn)行信息通過數(shù)據(jù)采集器發(fā)送至工業(yè)控制計(jì)算機(jī),進(jìn)行數(shù)據(jù)采集和監(jiān)視,此類設(shè)備移動(dòng)性差,而且成本非常高。
以手機(jī)為主的移動(dòng)終端在全球都已經(jīng)非常普及,在移動(dòng)智能終端上安裝APP 應(yīng)用軟件,實(shí)現(xiàn)數(shù)據(jù)采集、顯示、數(shù)據(jù)傳輸?shù)裙δ埽鸩饺〈鷤鹘y(tǒng)的專用監(jiān)控設(shè)備,已經(jīng)成為智能化設(shè)備監(jiān)控應(yīng)用的重要發(fā)展方向和研究熱點(diǎn)。Android 系統(tǒng)是基于Linux 操作系統(tǒng)的開源平臺(tái),在Android 系統(tǒng)上擁有大量的共享性開放應(yīng)用,相關(guān)軟件產(chǎn)品開發(fā)非常方便高效,因而受到應(yīng)用技術(shù)開發(fā)工作者的普遍歡迎。本文研究的數(shù)據(jù)監(jiān)控系統(tǒng)是通過在Android 移動(dòng)終端上運(yùn)行App 應(yīng)用軟件,通過藍(lán)牙通信,實(shí)現(xiàn)對(duì)建筑機(jī)電設(shè)備運(yùn)行數(shù)據(jù)的移動(dòng)監(jiān)控。該系統(tǒng)不再依賴昂貴的專用工業(yè)控制計(jì)算機(jī)和專業(yè)數(shù)據(jù)采集器, 而是利用Android 移動(dòng)終端實(shí)現(xiàn)專用工業(yè)采集器的現(xiàn)場(chǎng)數(shù)據(jù)查詢和遠(yuǎn)程數(shù)據(jù)傳送等主要功能。和專用系統(tǒng)相比,藍(lán)牙移動(dòng)終端在遠(yuǎn)程數(shù)據(jù)傳輸、云端數(shù)據(jù)存儲(chǔ)、移動(dòng)數(shù)據(jù)監(jiān)控等方面具有更大的優(yōu)勢(shì)。
二、 Android 系統(tǒng)下藍(lán)牙控制方式的選擇與分析
該系統(tǒng)主要由現(xiàn)場(chǎng)數(shù)據(jù)采集器、遠(yuǎn)程移動(dòng)終端兩大部分組成,F(xiàn)場(chǎng)數(shù)據(jù)采集器用于采集建筑機(jī)電設(shè)備運(yùn)轉(zhuǎn)的各種實(shí)時(shí)狀態(tài)數(shù)據(jù),并經(jīng)由藍(lán)牙通信端口,實(shí)時(shí)將數(shù)據(jù)傳送至遠(yuǎn)程移動(dòng)終端。移動(dòng)終端上運(yùn)行App 應(yīng)用軟件,完成數(shù)據(jù)的實(shí)時(shí)顯示、存儲(chǔ)、回放、轉(zhuǎn)發(fā)等功能。
Android 操作系統(tǒng)是免費(fèi)共享的,各行各業(yè)的應(yīng)用開發(fā)者都可以方便地取得自己所需的源程序,系統(tǒng)具有良好的開放性、優(yōu)秀的兼容性, 從而可以大大節(jié)約開發(fā)者的產(chǎn)品研制時(shí)間。隨著Android 技術(shù)的日趨成熟并迅速發(fā)展,國(guó)際主流的移動(dòng)終端操作系統(tǒng)中,除了近年來蘋果公司獨(dú)家推出了IOS 操作系統(tǒng)之外,國(guó)際主流的移動(dòng)終端制造巨頭,包括三星、華為、聯(lián)想等,都在自己制造的移動(dòng)終端上應(yīng)用了Android 操作系統(tǒng)。毫無疑問,Android 操作系統(tǒng)是近年來移動(dòng)終端上應(yīng)用最廣泛的操作系統(tǒng)。
采集機(jī)電設(shè)備運(yùn)行數(shù)據(jù)的專用儀器或通用的移動(dòng)終端設(shè)備之間,可以選用藍(lán)牙、WiFi 等無線通信方式或者USB、RS232、RS485 等有線通信方式。如果采用傳輸速率最高的USB 通用串行數(shù)據(jù)總線,則USB 總線需要設(shè)置主從工作模式;贏ndroid 操作系統(tǒng)的移動(dòng)設(shè)備通常從制造成本考慮,只配置了從工作模式,并不具備主工作模式。即便選用少數(shù)能夠設(shè)置數(shù)據(jù)采集模式為USB Host 主工作模式的采集設(shè)備,也會(huì)導(dǎo)致數(shù)據(jù)采集端的成本大幅度增加。因此,把USB 通信方式作為設(shè)備運(yùn)行數(shù)據(jù)的傳輸方式顯然不符合系統(tǒng)的經(jīng)濟(jì)性要求。如果采用當(dāng)前普遍應(yīng)用的WiFi 無線通信方式,首先要在移動(dòng)終端和數(shù)據(jù)采集端之間建立WiFi 網(wǎng)絡(luò)覆蓋的工作環(huán)境,這會(huì)增加運(yùn)行成本;而且WiFi 信號(hào)會(huì)隨著工作環(huán)境中登錄設(shè)備的增加、環(huán)境的變化可能變得不夠穩(wěn)定;此外普通用戶在登錄時(shí),首先需要匹配數(shù)據(jù)采集端與移動(dòng)終端之間的WiFi 信號(hào)。顯然選擇WiFi 作為建筑機(jī)電設(shè)備運(yùn)行數(shù)據(jù)的通信方式并不合理。藍(lán)牙2.0 標(biāo)準(zhǔn)傳輸半徑為10m,傳輸速率為1Mbit/s,運(yùn)行穩(wěn)定可靠,而且具有一對(duì)一匹配特性,完全可以滿足本系統(tǒng)的使用要求。通過上述選型,確定以藍(lán)牙無線通信作為數(shù)據(jù)采集與移動(dòng)終端之間的通信方式。
三、Android 移動(dòng)終端藍(lán)牙控制軟件設(shè)計(jì)
1、獲取藍(lán)牙工作狀態(tài)和搜索配對(duì)設(shè)備信息
本控制軟件中的藍(lán)牙控制模塊主要功能是建立Android 移動(dòng)終端和藍(lán)牙數(shù)據(jù)采集設(shè)備之間的數(shù)據(jù)聯(lián)系。Android 操作系統(tǒng)中提供了開放源代碼的通用藍(lán)牙數(shù)據(jù)包,可以用于藍(lán)牙設(shè)備的搜索和連接。Android 移動(dòng)終端作為客戶端,主動(dòng)發(fā)起鏈接,搜索藍(lán)牙數(shù)據(jù)采集設(shè)備。
軟件的通信程序流程如下:
(1)運(yùn)行broadcastreceiver 子程序,搜索周邊的藍(lán)牙設(shè)備,并接收藍(lán)牙設(shè)備的狀態(tài)信息;
(2)運(yùn)行blueadatper 函數(shù),獲取藍(lán)牙設(shè)備的匹配信息;
(3)從broadcastreceiver 子程序的onreceive() 函數(shù)里,讀取獲取到的藍(lán)牙數(shù)據(jù)采集設(shè)備信息;
(4)根據(jù)藍(lán)牙數(shù)據(jù)采集設(shè)備的mac地址,建立藍(lán)牙設(shè)備對(duì)象bluetoothdevice;
(5)根據(jù)藍(lán)牙設(shè)備對(duì)象bluetoothdevice,解析出藍(lán)牙交換數(shù)據(jù)包bluetoothsocket,準(zhǔn)備用藍(lán)牙交換數(shù)據(jù)包來讀寫藍(lán)牙數(shù)據(jù)采集設(shè)備;
(6)通過藍(lán)牙交換數(shù)據(jù)包bluetoothsocket子程序中的createrf commsocket to service record() 函數(shù),選擇鏈接的協(xié)議/服務(wù);
(7)在建立鏈接之后,使用藍(lán)牙交換數(shù)據(jù)包的getinput stream() 輸入數(shù)據(jù)流函數(shù)和getoutput stream() 輸出數(shù)據(jù)流函數(shù),來讀寫藍(lán)牙數(shù)據(jù)采集設(shè)備。
通過調(diào)用以上程序流程,Android移動(dòng)終端與藍(lán)牙數(shù)據(jù)采集設(shè)備之間建立了藍(lán)牙通信聯(lián)系,并且實(shí)現(xiàn)了數(shù)據(jù)通信。
2、設(shè)備運(yùn)行數(shù)據(jù)的波形顯示
該軟件模塊用來提供直觀的波形,實(shí)時(shí)解析和顯示機(jī)電設(shè)備運(yùn)行數(shù)據(jù)。
波形轉(zhuǎn)換算法:
在Android 移動(dòng)終端的顯示屏上,將藍(lán)牙通信模塊采集到的動(dòng)態(tài)數(shù)據(jù),實(shí)時(shí)轉(zhuǎn)換為相應(yīng)的波形顯示出來。首先按屏幕顯示的量程及采樣的坐標(biāo)點(diǎn)位,對(duì)采樣數(shù)據(jù)進(jìn)行坐標(biāo)變換,然后在屏幕顯示的量程及采用的坐標(biāo)點(diǎn)位顯示出來。經(jīng)過波形轉(zhuǎn)換,將通信模塊傳送的實(shí)時(shí)數(shù)據(jù)轉(zhuǎn)化為移動(dòng)終端屏幕上的波形。
3、設(shè)備運(yùn)行數(shù)據(jù)的動(dòng)態(tài)存儲(chǔ)
該軟件模塊的功能是把藍(lán)牙通信接收到的設(shè)備運(yùn)行數(shù)據(jù)存儲(chǔ)到移動(dòng)終端的SD卡上。 Android 操作系統(tǒng)為嵌入式軟件設(shè)計(jì)專門提供了輕量級(jí)的數(shù)據(jù)庫(kù)sqlite。通過sqlitedatabase 函數(shù)創(chuàng)建新的數(shù)據(jù)庫(kù),或者打開已經(jīng)建立的數(shù)據(jù)庫(kù)。運(yùn)行sqlitedatabase 函數(shù)時(shí),系統(tǒng)會(huì)自動(dòng)創(chuàng)建一個(gè)data_monitor.db數(shù)據(jù)庫(kù)文件,接收藍(lán)牙通信模塊傳送來的數(shù)據(jù)時(shí),軟件都會(huì)用開始接收數(shù)據(jù)的時(shí)間作為數(shù)據(jù)表文件的名稱,自動(dòng)生成一個(gè)數(shù)據(jù)表文件。
4、查看設(shè)備運(yùn)行的歷史記錄
點(diǎn)擊App軟件界面上的 “查看歷史”,軟件將跳轉(zhuǎn)至“回放文件列表”界面,可以瀏覽Sqlite 數(shù)據(jù)庫(kù)中存儲(chǔ)的所有以存儲(chǔ)起始時(shí)間和存儲(chǔ)周期命名的歷史數(shù)據(jù)文件。點(diǎn)擊相應(yīng)數(shù)據(jù)表文件名,可以選擇查看該歷史數(shù)據(jù)的波形。歷史記錄可選擇數(shù)據(jù)導(dǎo)出,存儲(chǔ)空間滿時(shí),軟件會(huì)提醒更換SD卡,或者發(fā)揮移動(dòng)系統(tǒng)的優(yōu)勢(shì),將數(shù)據(jù)推送到云平臺(tái)處理。在查看歷史記錄時(shí),系統(tǒng)可以繼續(xù)在后臺(tái)執(zhí)行動(dòng)態(tài)存儲(chǔ)程序,接收藍(lán)牙通信模塊傳來的數(shù)據(jù)。
四、結(jié)束語(yǔ)
本系統(tǒng)使用具有藍(lán)牙功能的Android 移動(dòng)終端,在建筑機(jī)電設(shè)備現(xiàn)場(chǎng)配置藍(lán)牙數(shù)據(jù)采集設(shè)備,從而以低成本實(shí)現(xiàn)了建筑機(jī)電設(shè)備運(yùn)行數(shù)據(jù)的在線顯示、移動(dòng)存儲(chǔ)、遠(yuǎn)程監(jiān)控等功能。此外,本系統(tǒng)利用Android 操作系統(tǒng)自帶的輕量級(jí)數(shù)據(jù)庫(kù),建立了運(yùn)行數(shù)據(jù)的動(dòng)態(tài)存儲(chǔ),不僅在Android 移動(dòng)終端上可以顯示機(jī)電設(shè)備運(yùn)行的實(shí)時(shí)波形和歷史記錄,而且還發(fā)揮了Android 移動(dòng)終端的優(yōu)勢(shì),把建筑機(jī)電設(shè)備的監(jiān)控?cái)?shù)據(jù)推送到云平臺(tái)進(jìn)行處理。
作者:陳鋼 容訊智能科技( 上海) 有限公司